A Perl programozási nyelv

Megjegyzések

Ami hiányzik a nyelvből

Jótanácsok, ötletek

Itt csak néhány ötletet mondok el, amik eddigi programjaimban jól jöttek:

Perl 6

A Perl 6 lesz a következő verziója a nyelvnek. Larry Wallt idézve: "A Perl 5 úgy született, hogy újraírtam a[z eredeti] Perlt. Azt szeretném, ha a Perl 6 a Perl és a közösség újraírása lenne a közösség által.".

2004 Decemberében specifikálták ezt a verziót, de ez még nem a végleges specifikáció; bőven változhatnak benne apróságok. A PUGS az egyetlen elfogadható megvalósítása egyelőre az írás idejében (2007 december), ami mutatja, hogy mennyire bonyolultra sikerült előírni a nyelv követelményeit. Egyébként érdekesség, hogy a PUGS Haskell-ben készült, ami egy elég jól használható funkcionális nyelv.

Többek közt a következők indokolták az új verzió létrejöttét:

Érdekesség az, hogy a Perl 6 fordító/értelmezőt a specifikáció szerint Perl 6-ban kell írni (de nem egyedi eset, például a Haskell/GHC táján is ez a helyzet). Ezt a kört úgy törik meg, hogy bizonyos kulcsfontosságú funkciókat implementálnak más nyelvben (pl. a PUGS esetében Haskell-ben), majd a félig működő értelmező segítségével (mostmár Perl 6-ban) újraírják, és kiterjesztik ezeket a funkciókat. Eredetileg Perl 5-ben akarták megírni ezeket a funkciókat, de hamar rájöttek, hogy nem elég érett a nyelv hozzá.

Végül pár szó a PUGS-ról: portolhatóság szempontjából nem áll rosszul; amilyen platformra van GHC (Haskell fordító), arra van PUGS is. Természetesen lehet benne használni Perl 5 illetve Haskell könyvtárakat (library-ket), a C interface egyelőre még kicsit problémás (olvasd: nem működik), de a Haskell-esek már dolgoznak a problémán. Az értelmező rész látványosan gyors, viszont a kiértékelő körülbelül 100szor lassabb a Perl 5 kiértékelőknél; igaz, semmiféle optimalizáció nincs beépítve a PUGS-ba. A projekt mögött álló aktivitásról jó képet alkot az, hogy gyakorlatilag a specifikáció után egy héttel elkészült az első verzió, három hét múlva már volt használható tesztmodul, amivel lehetett tesztelni; a lendület azóta sem lankadt, sőt...