Dar vieno analitiko svetainė

Petras Kudaras

Projektas „Ponie“

Ne per seniausiai (liepos 16) vyko O’reilly Open Source
konferencija (OSCON), kuri yra labai populiari tarp atviro kodo
programuotojų. Jos metu tradiciškai Larry Wall (na gi tas pats Perl
autorius) perskaito pranešimą apie tai kaip sekasi Perlui. Šis
pranešimas visad vadinasi „State of the Onion“
(pašaipa iš Amerikos prezidento metinio pranešimo, kuris vadinasi
„State of the Union“). Šįmet tai jau septintasis
pranešimas (jį galima rasti čia). Kaip
ir visada, jis buvo juokingas, bet kartu atvėrė ir Larry Perlo viziją.

Šiuo pranešimu Larry paskelbė projektą PONIE (sakoma, kad prie
pavadinimo prisidėjo Londono Perlo bendruomenė, kuri yra sukūrusi modulį
ACME::Pony,
kuris paverčia Perl programas į ponio paveiksliukus ASCII formate). O
šiaip Ponie yra santrumpa, reiškianti „Perlas naujoje Vidinėje
Platformoje“ (Perl On New Internal
Engine). Ta nauja platforma yra ne kas kita kaip Parrot.

Trumpai apie Parrot. Tai nauja virtuali platforma, ant kurios veiks
perl6. Ir ne vien Perl6, o ir Perl1, Perl5, PHP, Ruby, Python, Scheme,
COBOL, Java, Befunge, TECO, REXX… Virtuali platforma tai kažkas
panašaus į .NET, tik Parrot rašoma Perl stiliumi – reiškia
apribojimų programuotojo laisvei bus maža ;) Parrot rašo būrys
programuotojų, tačiau pagrindinis yra Dan Sugalski. Beje, šios
OSCON metu Dan susilažino su Python autoriumi Guido van Rossum, kad
Python kodas sukonpiliuotas Parrot platformai veiks greičiau nei Python
kodas kompiliuotas į Python platformą. O Parrot tikrai greitas daiktas
– mano P120 laptope su FreeBSD juo sugebėjau prasukti 1-2 mln
turčių ciklo iteracijų per sekundę (kaip virtualiai platformai ta tikrai
labai geras rezultatas)

Žodžiu Ponie yra Perl5 portas į Parrot. Perl5.10 turėtų vienodai
atrodyti tiek ant C, tiek ant Parrot (kol kas paskutinė
„stable“ medžio versija yra 5.8.1RC2, o
„development“ – 5.9.0) Manoma, kad Perl5.12 bus
paskutinis Perl5 serijoje (jame turėtų būti tik riktų pataisymai iš 5.10
versijos).

Bet kam reikia Perl5 ant Parrot? Iš dalies tam, kad būtų lengviau
žmonėms migruoti nuo Perl5 prie Perl6. Bet svarbiausia ne tai. Pati
Perl6 gramatika bus aprašyta Perl6 įpraiškomis. Kol nėra Perl6 įpraiškų,
tol nėra pačio Perl6, kol nėra pačio perl6, tol nėra Perl6 įpraiškų. Čia
į pagalbą skubės Damian Conway, kuris parašys Perl5 modulį, kuris
galės konvertuoti Perl5 įpraiškas į Perl6 įpraiškas ir atvirkščiai. O
jau turint šį modulį, bus galima aprašyti Perl6 gramatiką naudojantis
tik Perl5. Tik mums reikia kad Perl5 sukompiliuotas kodas būtų
pritaikytas Parrot virtualiai platformai, todėl pradžiai reikia Perl5
nuportint į Parrot. Sudėtingoka ;)

Ponie tikimasi turėti ne vėliau kaip po 2 metų (stable versiją), tad
pirmąsias normalias Perl6 alpha versijas gal būt jau bus galima pamatyti
už metų pusantrų.