UTVIKLING

– Perl kan brukes til alt

Les intervjuet med Damian Conway.

Damian Conway kalles både Perl-rockestjerne og «the Mad Scientist of Perl». Han er spesielt kjent for sine festlige foredrag.
Damian Conway kalles både Perl-rockestjerne og «the Mad Scientist of Perl». Han er spesielt kjent for sine festlige foredrag. Bilde: Harald Brombach
Harald BrombachHarald BrombachNyhetsleder
24. apr. 2012 - 13:48

Damian Conway, én av de mest framtredende medlemmene av fellesskapet omkring programmeringsspråket Perl, besøkte mandag GoOpen-konferansen i Oslo. Etter å ha holdt sitt foredrag, noe digi.no omtaler om her, satte Conway seg ned med digi.no for å snakke om blant annet Perl.

Conway er kjent for å ha utviklet mange Perl-moduler og konsepter. Han har også samarbeidet tett med Larry Wall, som skapte Perl i 1987.

Australske Conway har en doktorgrad i informatikk og var inntil i fjor ansatt i en undervisningsstilling ved Monash University i Australia i mange år. Etter hvert fikk han stadig flere spørsmål om å undervise for bedrifter og å holde foredrag. I dag gjør han det på heltid. Han lærer bort blant annet tekniske kunnskaper, særlig innen Perl og redigeringsverktøyet Vim, men også kunnskaper om presentasjonsteknikk. Conway har også skrevet flere bøker, de fleste om Perl.

Hvor og når brukes Perl i dag?

– Perl kan brukes til alt. Det er et «general purpose»-språk. Det brukes mye innen systemadministrasjon, utvikling innen forskning og det er mye brukt innen analyse på Wall Street. Det er så mye Perl-programvare som er tilgjengelig i CPAN (Comprehensive Perl Archive Network – arkiv med Perl-moduler, red. anm). Jeg kommer ikke på noe annet språk som er tilgjengelig i programvare på så mange ulike områder. Dessuten er det veldig raskt til å være dynamisk, ikke-kompilert språk, forteller Conway.

Hvordan står det til med rekrutteringen til Perl?

– Jeg ser mange stillingsannonser hvor det kreves Perl-kunnskaper – særlig innen de feltene hvor Perl allerede brukes mye. Men jeg vet ikke hvor mange av de som ansettes som er helt nye Perl-utviklere. Det må du nesten spørre bedriftene om. Men jeg ser stadig nye navn i mailinglistene, sier Conway.

Hvem leder utviklingen av Perl i dag?

Larry Wall har trådt tilbake fra den daglige utviklingen, men er tilsynsmannen for prosjektet. De siste årene har Perl blitt designet av en gruppe folk, som roteres. Det er ikke lenger én person som har ansvar for hele versjonsutgivelsen. Den mer gruppeorienterte tilnærmingen er mer pålitelig og fører i mindre grad til utbrenthet. Men det er også folk som ser på hva kan komme i Perl i framtiden, som for eksempel analyserer hva som virker og ikke.

Hvilken rolle spiller du i utviklingen av Perl?

Jeg har aldri vært én av utviklerne. Jeg er talsmann og et eksempel på bruken. En entusiast som ønsker å gjøre folk interesserte og oppmerksomme på kraften i Perl.

Conway har jobbet sammen med Larry Wall under designen av Perl 6, som som Conway beskriver som et søsterspråk til Perl 5.

– Jeg jobbet blant annet som virkelighetstester for Larry. Men har i stor grad trukket meg fra det også.

Perl 6

– Perl 6 var opprinnelig tenkt å være etterfølgeren til Perl 5. Men etter hvert, under de mer enn ti årene med design, fant man ut at Perl 5 ikke trenger å erstattes. Noen forbedringer kunne det derimot være behov for.

– I stedet bestemte man seg for at man heller kunne designet et annet språk, optimalisert for andre ting. En annen type Perl, med andre styrker og med annet som er enkelt å gjøre. Men det ikke finnes noe detaljert typesystem i Perl 5, er dette på plass i Perl 6, som dessuten er fundamentalt objektorientert.

Conway mener at forholdet mellom Perl 5 og Perl 6 er omtrent som mellom C og C++.

– De er optimalisert for forskjellige ting. C har vokser fortsatt, lenge etter at C++ kom på banen. Vi ønsker også at både Perl 5 og Perl 6 fortsatt skal brukes. Men samtidig har en del ting blitt kopiert over fra Perl 6 til Perl 5 dersom de har passet inn, sier Conway.

Selv om Perl 5 og Perl 6 har mye felles, er det ifølge Conway to relativt separate fellesskap.

Artikkelen fortsetter etter annonsen
annonse
Innovasjon Norge
Store muligheter for norsk design i USA
Store muligheter for norsk design i USA

– Det er ikke mange som er aktive i begge, sier han.

Når digi.no stiller spørsmålet om hvorfor det tar så lang tid å gjøre Perl 6 ferdig – designet ble påbegynt i 2000 – svarer Convey at dette er en illusjon.

– Fra C kom med klasser til C++ ble brukbart, tok det omtrent ti år. Python begynte å bli brukbart omkring versjon 2.6 (som kom 14 år etter Python 1.0, red. anm). Java ble stabilt omtrent ti år etter at prosjektet startet. Du må også huske på at utviklerne av Perl lager dette på fritiden, sier Conway.

Noen dato for når Perl 6 er «ferdig», har Conway ikke. Han sier at omtrent 90 prosent er stabilt og kan brukes i dag. Om det vil bli noen stor lansering av Perl 6, vet han ikke. – Vi er ikke så gode på markedsføring.

– Alt vi hadde i starten var et designteam som møtte hver uke. Forlaget O’Reilly støttet dette i årevis. Senere har det oppstått en rekke implementeringsprosjekter. Det første ble bygget på toppen av programmeringsspråket Haskel. Andre lager implementering på andre underliggende plattformer, inkludert .NET og Perl 5.

– For fem-seks år siden fant man ut at Perl trengte sin egen runtime, siden ingen av de andre var optimalisert for dynamiske språk. Med dette bleParrot laget, en virtuell maskin som også støtter andre dynamiske språk og bindinger til enda flere. For eksempel gjør den det mulig å benytte CPAN-moduler i for eksempel Python. Implementing av Perl 6 i Parrot kalles for Rakudo.

– Selv om det er konkurranse mellom de ulike prosjektene, er det også samarbeid. Blant annet har man begynt å dele på testsuiter. Perl har en lang historie med tester og defineres av testsuiter. Da er det verre med C++. Trolig er det ingen som implementerer hele spesifikasjonen. Med Perl 6 må alle bestå testsuiten, avslutter Conway.

    Les også:

Les mer om:
Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.