Perl 6 Podstawy per6po


IDZ DO
IDZ DO
PRZYKŁADOWY ROZDZIAŁ
PRZYKŁADOWY ROZDZIAŁ
Perl 6. Podstawy
SPIS TRE CI
SPIS TRE CI
KATALOG KSIĄŻEK
KATALOG KSIĄŻEK
Autorzy: Allison Randal,
Dan Sugalski, Leopold Totsch
KATALOG ONLINE
KATALOG ONLINE
Tłumaczenie: Rafał Szpoton
ISBN: 83-7361-299-8
Tytuł oryginału: Perl 6 Essentials
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
Format: B5, stron: 216
TWÓJ KOSZYK
TWÓJ KOSZYK
Książka  Perl 6. Podstawy jest krótkim przeglądem projektu Perl 6, będącego
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
powszechnie oczekiwaną, zupełnie nową wersją języka programowania Perl. Projekt
ten znajduje się wciąż w fazie rozwoju i jest efektem wysiłku całej społeczno ci Perla,
mającym na celu utrzymanie go po ród języków programowania XXI wieku.
CENNIK I INFORMACJE
CENNIK I INFORMACJE
Wiele osób wciąż zaangażowanych jest w rozwój Perla 5; w tym samym czasie główna
grupa programistów Perla rozpoczęła pracę nad językiem Perl 6, nową, napisaną
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
O NOWO CIACH
zupełnie od podstaw wersją języka. Chociaż w wersji tej wciąż utrzymana zostanie
filozofia Perla oraz jego powszechnie znana składnia, to jednak wszystkie inne
ZAMÓW CENNIK elementy języka są ponownie analizowane i tworzone od podstaw.
ZAMÓW CENNIK
Książka  Perl 6. Podstawy to przegląd bieżącego stanu rozwoju języka Perl dla
wszystkich dotychczasowych jego użytkowników, jak również dla początkujących
CZYTELNIA
CZYTELNIA
programistów, którzy swoje pierwsze programistyczne do wiadczenia wiążą z Perlem.
Napisana przez członków głównego zespołu programistów języka książka prezentuje
FRAGMENTY KSIĄŻEK ONLINE
FRAGMENTY KSIĄŻEK ONLINE
wyja nienie różnych etapów projektu, stanowiąc jednocze nie materiał referencyjny
dla programistów, którzy są zainteresowani planowanymi zmianami, jak również dla
tych, którzy chcieliby przyłączyć się do projektu. Książka ta z pewno cią zaspokoi ich
ciekawo ć i ukaże, w jaki sposób zmiany wprowadzone do języka uczynią z Perla
jeszcze potężniejsze i łatwiejsze do stosowania narzędzie.  Perl 6. Podstawy stanowi
pierwszą książkę oferującą możliwo ć wejrzenia w kolejną główną wersję języka Perl.
Stanowi ona niezbędną lekturę dla wszystkich osób zainteresowanych przyszło cią
tego doskonałego narzędzia.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Przedmowa........................................................................................................................ 5
Rozdział 1. Przegląd projektu.......................................................................................9
Narżdziny języka Perl 6 .........................................................................................................................9
Pżczątek& ...............................................................................................................................................10
Trwająca misja........................................................................................................................................12
Rozdział 2. Rozwój projektu.......................................................................................17
Rżzwój języka.........................................................................................................................................17
Rżzwój maszyny Parrżt........................................................................................................................19
Rozdział 3. Filozofia projektu.....................................................................................25
Czynniki lingwistyczne żraz pżznawcze ..........................................................................................25
Prżblemy architektury ..........................................................................................................................32
Rozdział 4. Składnia .....................................................................................................35
Zmienne...................................................................................................................................................36
źperatżry................................................................................................................................................43
Struktury żkreślające przeplyw kżntrżli ...........................................................................................59
Prżcedury................................................................................................................................................66
Klasy żraz żbiekty .................................................................................................................................71
Gramatyki żraz reguly..........................................................................................................................74
4 Spis treści
Rozdział 5. Struktury wewnętrzne.............................................................................83
Reguly prżjektu struktur wewnętrznych...........................................................................................83
ęrchitektura maszyny wirtualnej Parrżt ...........................................................................................84
Interpreter ...............................................................................................................................................89
źperacje wejścia-wyjścia, zdarzenia, sygnaly żraz wątki...............................................................95
źbiekty ..................................................................................................................................................101
unkcje zaawansżwane ......................................................................................................................104
Kżnkluzja ..............................................................................................................................................108
Rozdział 6. Język symboliczny maszyny Parrot ...................................................109
Przygżtżwanie dż pracy.....................................................................................................................109
Pżdstawy...............................................................................................................................................111
Praca z żbiektami PMC.......................................................................................................................127
Przeplyw sterżwania...........................................................................................................................131
Stżsy żraz ramki rejestrów.................................................................................................................134
Zmienne leksykalne żraz glżbalne ...................................................................................................137
Prżcedury..............................................................................................................................................141
Twżrzenie testów.................................................................................................................................149
Krótki pżdręcznik PęSM ...................................................................................................................151
Rozdział 7. Pośredni kompilator kodu....................................................................175
Przygżtżwanie dż pracy.....................................................................................................................175
Przygżtżwanie dż pracy.....................................................................................................................176
Przeplyw sterżwania...........................................................................................................................186
Prżcedury..............................................................................................................................................189
Parametry wiersza pżleceń kżmpilatżra IMCC .............................................................................194
Krótki pżdręcznik IMCC....................................................................................................................197
Skorowidz...................................................................................................................... 205
Filzfia prjektu
Dzisiejsza praktyka jest często niczym więcej
niż tylko zaakceptowaną postacią wczorajszej teorii
 Kenneth Pike
 Wprowadzenie do Tagemiki
U podstaw każdego języka leży zestaw podstawowych idei nadających mu kierunek
rozwoju oraz określających jego przeznaczenie. Osoby pragnące zrozumieć wybory do-
konywane przez projektantów języka (dlaczego wybierają tę wlaściwość, a nie inną lub
określony sposób jej wyrażenia), powinny najlepiej rozpocząć od prześledzenia rozu-
mowania leżącego u podstaw tych wyborów.
Na język Perl 6 oddzialuje unikatowy zestaw czynników. Sam język jest glęboko zako-
rzeniony w systemie Unix, oraz jego systemach pochodnych, co wywiera szczególny
wplyw na jego przydatność oraz praktyczne zastosowania. Stanowi on efekt akademic-
kiej rywalizacji na polu nauk informatycznych oraz inżynierii programowania, co budzi
chęć rozwiązywania problemów we wlaściwy sposób, a nie za pomocą środków doraz-
nych. Sam język jest glęboko przesiąknięty tradycjami lingwistyki oraz antropologii,
w związku z tym jako cel stawia się wygodną adaptację do postaci używanej przez
czlowieka. Wlaśnie te czynniki oraz jeszcze wiele innych definiują ksztalt języka Perl
oraz kierunek jego rozwoju.
Czynniki lingwistyczne raz pznawcze
Perl jest językiem ludzkim. stnieje jednak wiele znaczących różnic pomiędzy Perlem
a językami naturalnymi w rodzaju języka angielskiego, francuskiego, niemieckiego itd.
Po pierwsze, zostal on skonstruowany w sposób sztuczny, a nie naturalny. Jego podsta-
wowe zastosowanie, czyli określenie zestawu instrukcji, którymi kierować się będzie ma-
szyna, odzwierciedla jedynie ograniczony zakres czynności występujących w życiu ludz-
kim. Niemniej jednak Perl jest językiem, którego ludzie używają do porozumiewania się.
26 Rzdział 3. Filzfia prjektu
Wiele tych samych procesów umyslowych, które prowadzą do formulowania myśli w slo-
wie oraz piśmie jest powielanych w postaci prowadzącej do utworzenia kodu. Proces
nauki używania Perla jest bardzo podobny do nauki używania drugiego języka. stotne
są również procesy umyslowe związane z czytaniem. Chociaż podstawowym adresatem
kodu napisanego w języku Perl jest maszyna, bardzo często to ludzie muszą odczytać
kod podczas jego tworzenia, przeglądania oraz utrzymywania.
Na wiele decyzji podejmowanych podczas projektowania Perla duży wplyw mialy zalo-
żenia języków naturalnych. Poniżej zostanie przedstawionych kilka najważniejszych, to
znaczy tych, które powracają wciąż podczas projektowania oraz tych, które wywarly
największy wplyw podczas calego procesu.
Teria złżnści (teria łóżka wdneg)
Naturalną tendencją występującą w językach ludzkich jest utrzymywanie stalej ogólnej
zlożoności, gdy wezmiemy pod uwagę zarówno dwa różne języki, jak i zmiany danego
języka wraz z uplywem czasu. Podobnie jak w przypadku lóżka wodnego, jeżeli zmniej-
szona zostanie zlożoność w jednej części języka, automatycznie zwiększy się ona w in-
nym miejscu. Język z obszernym systemem dzwięków (fonologią) móglby mieć prostszą
skladnię. Język mający ograniczony zestaw dzwięków móglby mieć bardziej zlożony
sposób tworzenia slów z mniejszych elementów (morfologię). Żaden język nie jest skom-
plikowany w równym stopniu pod każdym z wymienionych względów, ponieważ byl-
by zupelnie nieprzydatny. Podobnie  żaden język nie jest calkowicie prosty, ponieważ
zbyt mala liczba rozróżnień i możliwych do utworzenia kombinacji uczynilaby go nie-
przydatnym w praktyce.
Ta sama zasada funkcjonuje w przypadku języków komputerowych. Wymagają one za-
chowania stalej równowagi pomiędzy zlożonością a prostotą. Ograniczenie możliwych
operatorów do malego ich zestawu prowadzi do zwiększenia liczby metod oraz podpro-
cedur definiowanych przez użytkownika. Nie jest to aż tak zle, lecz zachęca do tworze-
nia kodu, który będzie rozwlekly oraz trudny do odczytania. Z drugiej strony, język,
który definiuje zbyt wiele operatorów, zachęca do tworzenia kodu zawierającego skom-
plikowane wiersze i jest tym samym równie trudny do odczytania. Doskonala równo-
waga leży gdzieś pośrodku.
Reguła prstty
Ogólnie mówiąc, preferowane są proste rozwiązania. Prosta skladnia jest latwiejsza do
nauki, zapamiętania, wykorzystania w praktyce oraz odczytania. Niemniej jednak regula
ta znajduje się w ścislym związku z teorią lóżka wodnego. Jednym z niebezpieczeństw,
któremu należy zapobiec jest uproszczenie w zlym obszarze. Kolejnym jest blędne
uproszczenie oraz nadmierne uproszczenie. Niektóre problemy są zlożone i wymagają
zlożonego rozwiązania. Gramatyki języka Perl6 nie są proste. Są one zlożone na pozio-
mie języka, w sposób pozwalający na stosowanie prostszych rozwiązań na poziomie
użytkownika.
Czynniki lingwistyczne raz pznawcze 27
Reguła mżliwści przystswania
Wraz z uplywem czasu języki naturalne rozrastają się i zmieniają. Odpowiadają w ten
sposób na zmiany występujące w środowisku oraz na nacisk wewnętrzny ze strony po-
slugujących się nimi ludzi. Pojawia się nowe slownictwo, używane do zaspokojenia no-
wych potrzeb komunikacyjnych. Stare określenia nie są używane, ludzie powoli je za-
pominają, zaś w ich miejsce pojawiają się nowe, bardziej odpowiednie. Wraz z uplywem
czasu zlożone części systemu mają tendencję do upraszczania się oraz rozbijania na
mniejsze. To wlaśnie proces zmian utrzymuje język w postaci aktywnej oraz odpowied-
niej dla ludzi go wykorzystujących. Nie zmieniają się jedynie martwe języki.
Plan rozwoju języka Perl 6 jawnie określa plany przyszlych zmian języka. Nikt nie wie-
rzy w to, że Perl 6.0.0 będzie językiem doskonalym. Jednocześnie jednak nikt nie chce
kolejnego procesu zmian tak dramatycznego, jak podczas przejścia do wersji 6 języka
Perl. Dlatego też Perl 6 będzie językiem elastycznym i na tyle zdolnym do adaptacji, aby
wraz z uplywem czasu umożliwial stopniowe zmiany. Postanowienie to mialo wplyw
na wiele decyzji podejmowanych podczas projektowania, wlącznie z uproszczeniem mo-
dyfikacji sposobu parsowania (analizy skladniowej) języka, ograniczeniem rozróżniania
pomiędzy operacjami podstawowymi języka a operacjami zdefiniowanymi przez użyt-
kownika, jak również ulatwieniem definiowania nowych operatorów.
Reguła ważnści
W językach naturalnych określone struktury oraz konstrukcje stylistyczne slużą do zwró-
cenia uwagi na ważne elementy. Może być to akcent, np. w zdaniu  Pies ukradl mój port-
fel (pies, a nie czlowiek) lub użycie dodatkowego czasownika, np. w zdaniu  To byl
pies, który ukradl mój portfel , a nawet zmiana kolejności wyrazów  Mój portfel zostal
skradziony przez psa (mój portfel, a nie but itp.) lub dowolna liczba innych zabiegów.
Perl zostal zaprojektowany ze swoim wlasnym zestawem konstrukcji slużących do za-
znaczenia ważności, z których niektóre zawarte są w samym języku, a niektóre umożli-
wiają użytkownikom zaakcentowanie ważności w tworzonym przez nich kodzie. Bloki
nazwane (NAMED) wykorzystują duże litery w celu zwrócenia uwagi, że znajdują się na
zewnątrz normalnego przeplywu sterowania w programie. Perl 5 posiada dodatkową
skladnię dla instrukcji kontrolujących wykonywanie programu, w rodzaju if oraz for,
powodującą przesunięcie ich na koniec, co daje funkcjonowanie w charakterze modyfi-
katorów instrukcji (ponieważ analiza wiersza w kodzie w języku Perl odbywa się od
strony lewej do prawej, to wlaśnie lewa strona jest zawsze ważniejsza). Taka elastycz-
ność zostala utrzymana w języku Perl 6, a do listy zostaly dodane nowe struktury.
Zachowanie równowagi podczas tworzenia projektu polega na podjęciu decyzji, które
wlaściwości zaslugują na zaznaczenie jako ważne, a w którym miejscu skladnia może
być malo uniwersalna, tak aby język byl bardziej wyrazisty.
28 Rzdział 3. Filzfia prjektu
Reguła kńcwej wagi
Języki naturalne umieszczają duże elementy zlożone na końcu zdań.  chociaż konstrukcje
postaci  Dalem Marii książkę oraz  Dalem książkę Marii są tak samo wygodne w uży-
ciu, to jednak zdanie  Dalem książę o historii rozwoju w ndonezji produktów opartych
na orzeszkach ziemnych Marii jest znacznie mniej wygodne niż jego odpowiednik.
Dotyczy to glównie problemu z analizą takiego zdania przez mózg czlowieka. Znacznie
prostsze jest jednorazowe zinterpretowanie glównych bloków zdania niż rozpoczęcie od
kilku pierwszych, przeanalizowanie dlugiego lańcucha mniej ważnych informacji, by
w końcu powrócić do struktury zdania nadrzędnego. Pamięć ludzka jest ograniczona.
Regula ta jest jednym z powodów, dla których modyfikatory wyrażeń regularnych zo-
staly w Perlu 6 przesunięte na początek. Znacznie prostsze jest odczytanie reguly gra-
matycznej, kiedy od samego początku wiadomo, na przyklad, że  na tę regulę nie ma
wplywu wielkość liter . (Ulatwia to również znacznie rozklad skladniowy dokonywany
przez komputer, co jest prawie równie istotne).
Regula ta jest również przyczyną, dla której pojawil się pomysl zmiany kolejności in-
strukcji grep na:
grep @array { potencjalnie długi i skomplikowany blok };
Jednakże tego rodzaju zmiana wywoluje takie wątpliwości w spoleczności, że może nig-
dy nie zostać wprowadzona.
Reguła kntekstu
Podczas interpretacji znaczenia języki naturalne wykorzystują kontekst. Znaczenia okre-
śleń  gorący oraz  gorący dzień ,  gorący utwór ,  gorący pomysl oraz  gorąca dys-
kusja są calkiem różne. Niejawne znaczenie określenia  jest mokro zmienia się w za-
leżności od tego, czy stanowi ono odpowiedz na pytanie  Czy powinienem zabrać plaszcz?
czy też  Dlaczego pies biega po kuchni? . To wlaśnie otaczający kontekst pozwala na
rozróżnienie tych znaczeń. Kontekst pojawia się również w innych dziedzinach. Obraz
przedstawiający abstrakcyjną pomarańczową sferę zostanie zinterpretowany odmiennie
w zależności od tego, czy inne elementy na obrazie przedstawiają banany, klownów czy
pilkarzy. Umysl ludzki stara się zrozumieć otaczający świat i używa w tym celu wszyst-
kich dostępnych podpowiedzi.
Perl od zawsze byl językiem kontekstowym. Używa on kontekstu na szereg różnych
sposobów. Najbardziej oczywistym jest wykorzystanie kontekstowe skalarów oraz list
 w tym przypadku zmienna może zwrócić różne wartości w zależności od tego, w któ-
rym miejscu zostala użyta oraz w jaki sposób. W Perlu 6 zostalo to jeszcze rozszerzone
o kontekstowe użycie lańcuchów znakowych, wartości logicznych, numerycznych oraz
innych. nnym przypadkiem wykorzystania kontekstu jest użycie wartości domyślnych
$_ w instrukcji print, chomp, when lub dopasowaniach.
Czynniki lingwistyczne raz pznawcze 29
Wlaściwości zależne od kontekstu utrudniają utworzenie interpretera dokonującego ich
analizy, lecz są prostsze dla ludzi, którzy używają ich codziennie. Pasują one bowiem do
sposobu, w jaki ludzie myślą naturalnie, a jest to jednym z zalożeń języka Perl.
Reguła ZCMM
W językach naturalnych występuje pojęcie  rodowitej intuicji rozmówcy . Ktoś, kto bie-
gle posluguje się językiem, będzie w stanie stwierdzić czy zdanie jest poprawne, nawet
jeśli nie potrafi on racjonalnie wyjaśnić odpowiednich regul. (Ma to niewielki wplyw na
trudność, na jaką natrafiają nauczyciele języka angielskiego, próbując wymusić stosowa-
nie przez studentów  poprawnej gramatyki. Zasady formalnego języka pisanego różnią
się znacznie od tych dla języka mówionego).
Dane wlaściwości języka powinny dawać w sposób oczywisty efekty oczekiwane przez
użytkownika. Wlaśnie ta idea  ZCMM , to znaczy  Zrób Co Mam na Myśli stanowi
glównie kwestię intuicji. Na oczekiwania użytkownika mają wplyw jego doświadczenia,
znajomość języka oraz podloże kulturowe. Oznacza to, że intuicja jest specyficzna dla
danego czlowieka. Osoba poslugująca się językiem angielskim nie będzie oczekiwać tych
samych rezultatów, co osoba poslugująca się językiem holenderskim, zaś programista ję-
zyka Ada nie będzie oczekiwać tych samych efektów, co programista języka Cobol.
Sztuczka zastosowana w projekcie polega na wykorzystaniu intuicji programisty, a nie
walce z nią. Jasno zdefiniowany zestaw regul nigdy nie dorówna potędze wlaściwości,
która  po prostu wydaje się być poprawna .
Perl 6 przeznaczony jest dla programistów języka Perl. To, co może wydawać się po-
prawne dla jednego programisty Perla może nie wydawać się poprawne dla innego,
dlatego nie istnieje wlaściwość, która moglaby zadowolić wszystkich. Jednakże w więk-
szości przypadków możliwe jest dogodzenie większości osób.
Ogólnie mówią, Perl adresowany jest do osób używających języka angielskiego. Wyko-
rzystuje on na przyklad slowa w rodzaju  given , co osobom znającym ten język ulatwia
zrozumienie dzialania kodu. Oczywiście nie wszyscy programiści używający tego języka
programowania znają język angielski. W niektórych przypadkach użyty język jest uprosz-
czony w celu zadowolenia szerszej grupy adresatów. W przypadku regul gramatycz-
nych oryginalne modyfikatory mają postać 1st, 2nd, 3rd, 4th itp. ponieważ są one najbar-
dziej naturalne dla osób poslugujących się językiem angielskim od urodzenia. Mają one
jednak również postać alternatywną 1th, 2th, Nth itp., ponieważ zakończenia używane
w języku angielskim w przypadku liczb są chaotyczne oraz niezbyt przyjazne dla osób
dopiero uczących się tego języka
Reguła pnwneg wykrzystania
Języki ludzkie mają tendencję do zawierania ograniczonego zestawu struktur oraz po-
wtórnego ich wykorzystywania w różnych kontekstach. Języki programowania również
stosują zestaw zwyklych konwencji skladniowych. Język, który w celu ograniczenia pętli
30 Rzdział 3. Filzfia prjektu
wykorzystywalby nawias {...}, lecz do ograniczenia instrukcji if używalby pary slów
kluczowych (na przyklad if ... then ... end if), bylby strasznie denerwujący.
stnienie zbyt wielu regul utrudnialoby odnalezienie wzorca.
Jeżeli w czasie tworzenia projektu istnieje określona skladnia slużąca do wyrażenia jed-
nej wlaściwości, to w celu wyrażenia związanej z nią innej wlaściwości często znacznie
lepszym wyjściem jest użycie ponownie tej samej skladni od wynajdowania czegoś zu-
pelnie nowego. Nadaje to językowi ogólną spójność i ulatwia zapamiętanie nowych wla-
ściwości. Wlaśnie z tego powodu gramatyki mają postać klas1. Moglyby one używać
dowolnej skladni, lecz klasy wyrażają wiele wlaściwości wymaganych przez gramatyki,
np. dziedziczenie oraz ideę tworzenia egzemplarza.
Reguła rzróżnienia
Mózg czlowieka znacznie latwiej dostrzega duże różnice niż male. Na przyklad znacznie
prostsze do rozróżnienia są slowa  kot oraz  pies niż slowa  bieg i  brzeg . Zazwy-
czaj odpowiednich wskazówek dostarcza kontekst, jeżeli jednak  kot określany bylby
jako  kies , musielibyśmy bez końca poprawiać osoby, które zle nas uslyszaly ( Nie,
powiedzialem, że Kowalscy mają nowego psa, a nie ksa .).
Glównym problemem podczas projektowania języka jest utworzenie widocznych wska-
zówek, dających subtelne kontrasty. Język powinien unikać tworzenia zbyt wielu róż-
nych rzeczy podobnych do siebie. Zbytnie przeciążenie zmniejsza przejrzystość i zwięk-
sza prawdopodobieństwo pomylki. Stanowi to część uzasadnienia powodu rozbicia dwóch
znaczeń konstrukcji eval na try oraz eval, dwóch znaczeń konstrukcji for na for
oraz loop, jak również dwóch znaczeń sub na sub oraz method.
Reguly rozróżnienia oraz ponownego wykorzystania konstrukcji są w stalym związku.
Jeżeli zbyt wiele wlaściwości będzie ponownie wykorzystywanych oraz przeciążonych,
język stanie się niejasny. Zbyt wiele czasu będzie trzeba poświęcić na domyślanie się
dokladnego znaczenia. Jeżeli jednak zbyt wiele wlaściwości będzie calkowicie różnych
od siebie, język straci swoją spójność. Ponownie jest to problem wypracowania konsensusu.
Język nie mże być ddzielny d kultury
Język naturalny bez spoleczności osób poslugujących się nim jest językiem martwym.
Może być przedmiotem studiów z pobudek czysto akademickich, lecz jeżeli nikt nie po-
dejmie wysilku jego zachowania, prędzej czy pózniej zaniknie zupelnie. Język nadaje
spoleczności poczucie tożsamości, gdy spoleczność uznaje go za odpowiedni i przeka-
zuje kolejnym pokoleniom. Kultura spoleczności nadaje ksztalt językowi i wyznacza mu
cel istnienia.
1
Więcej infżrmacji szczególżwych dżtyczących gramatyk znajduje się w pżdrżzdziale rżzdzialu 4.,
zatytulżwanym  Gramatyki żraz reguly .
Czynniki lingwistyczne raz pznawcze 31
Również języki komputerowe są zależne od spoleczności ich używających. Możesz mie-
rzyć jej wielkość liczbą firm oferujących wsparcie dla danego języka, wierszami kodu
znajdującymi się w użyciu, czy też zainteresowaniem użytkowników, jednak wszystko
sprowadza się do jednej kwestii: nieużywany język programowania staje się martwy.
Ostatnim znakiem śmierci języka jest sytuacja, gdy nie istnieje żaden jego kompilator lub
interpreter, który móglby dzialać na istniejącym sprzęcie oraz w istniejących systemach
operacyjnych.
Na etapie projektowania oznacza to, że samo dopasowanie wlaściwości języka do siebie
nie jest wystarczające. Ważna jest również tradycja spoleczności oraz jej oczekiwania, zaś
niektóre zmiany mają swoją cenę kulturową.
Reguła wlnści
W językach naturalnych zawsze istnieje więcej niż jeden sposób wyrażenia idei. Autor
lub rozmówca ma wolność wyboru najlepszego określenia i ponosi za nie odpowiedzial-
ność. Powinien wybrać taki sposób wyrażenia idei, aby byl on logiczny dla adresatów.
Perl zawsze oparty byl na zalożeniu, że programiści powinni mieć wolność wyboru spo-
sobu, w jaki utworzą swój kod. Udostępnia on latwy dostęp do potężnych wlaściwości
i pozostawia użytkownikom możliwość ich mądrego wykorzystania. Określa raczej zwy-
czaje oraz konwencje, a nie prawa.
Tego rodzaju regula ma pod kilkoma względami wplyw na projekt. Jeżeli dana wlaści-
wość jest korzystna dla calego języka, nie powinna być odrzucona jedynie dlatego, że ktoś
móglby użyć jej w glupi sposób. Z drugiej strony, nie jesteśmy za tworzeniem niektórych
skomplikowanych wlaściwości, jeżeli mialyby być one bardzo rzadko wykorzystywane.
nnym elementem wyzwania projektowego jest utworzenie narzędzi, które będą mieć
wiele zastosowań. Nikt nie chce książki kucharskiej, którą czyta się jak powieść Stephena
Kinga, nikt również nie chcialby w jednym wierszu umieszczać struktury definicji klasy.
Język musi być na tyle elastyczny, aby dawać wolność.
Reguła zapżyczeń
Zapożyczenia są w językach naturalnych bardzo powszechne. W momencie gdy nowa
technologia (jedzenie, ubrania itp.) jest importowana z innej kultury, calkiem naturalne
jest zaadoptowanie również jej oryginalnej nazwy. Zapożyczane slowa są stopniowo ad-
aptowane do nowego języka. W języku angielskim na przyklad nikt nie wymawia slów
w rodzaju  tortilla ,  lasagna lub  champagne dokladnie w ten sam sposób, co w ję-
zykach, z których te slowa pochodzą. Zostaly one zmienione tak, aby pasowaly do wy-
mowy języka angielskiego.
Język Perl zawiera wlaściwości zapożyczone i tak samo będzie w przypadku języka Perl 6.
Nie ma nic wstydliwego w przyznaniu się, że inny język wykonal wspaniale zadanie,
implementując określoną wlaściwość. Znacznie lepsze jest otwarte zapożyczenie dobrej
32 Rzdział 3. Filzfia prjektu
wlaściwości niż udawanie, że jest ona oryginalna. Perl nie musi być inny tylko z tego
powodu, że jest inny. Większość wlaściwości jednak nie zostanie zaadoptowana bez ja-
kichkolwiek zmian. Każdy język posiada swoje wlasne konwencje oraz skladnię, a wiele
z nich nie jest ze sobą zgodnych. Dlatego też wlaściwości są zapożyczane w Perlu przy
użyciu odpowiednich konstrukcji języka slużących do ich wyrażenia.
Prblemy architektury
Drugi zestaw regul dotyczy ogólnej architektury języka Perl 6. Reguly te są powiązane
z przeszlością, terazniejszością oraz przyszlością języka i definiują podstawowe przezna-
czenie Perla. Żadna z regul nie istnieje samodzielnie. Każda z nich dotyczy pozostalych.
Perl pwinien zstać Perlem
Wszyscy zgodzą się, że Perl 6 powinien zostać Perlem. Pojawia się jednak pytanie, co tak
naprawdę to oznacza? Nie oznacza to, że Perl 6 będzie posiadać dokladnie tę samą
skladnię. Nie oznacza również, że będzie on mieć te same wlaściwości. Gdyby tak bylo,
Perl 6 bylby po prostu wersją 5 tego języka. Dlatego też istota tego pytania dotyczy kwe-
stii, które definiują język jako  Perl .
Zachowanie przeznaczenia
Perl zachowa oryginalne przeznaczenie zamierzone przez jego twórcę. Larry pragnąl
utworzyć język, który móglby wykonać postawione mu zadanie, lecz nie upieral się
przy swoim podejściu. Język musi być wystarczająco potężny do wykonania zlożonych
zadań, lecz wciąż lekki i uniwersalny. Jak stwierdzil to Larry,  Perl ulatwia rzeczy pro-
ste i umożliwia wykonanie rzeczy trudnych . Podstawowa filozofia dotycząca projektu
Perla pozostala niezmienna. W Perlu 6 proste rzeczy są nieco prostsze, zaś rzeczy trudne
są latwiejsze do wykonania.
Znajomość
Perl 6 będzie znajomy dla użytkowników języka Perl 5. Podstawowa skladnia jest wciąż
taka sama. Zostala tylko nieco wyczyszczona i jest bardziej spójna. Podstawowy zestaw
wlaściwości jest wciąż ten sam. Język dodaje kilka nowych i potężnych wlaściwości, któ-
re najprawdopodobniej zmienią sposób programowania przy ich użyciu, lecz nie będą
one wymagane.
Nauka języka Perl 6 będzie raczej przypominać poznawanie odmiany australijskiej ję-
zyka angielskiego przez obywateli Stanów Zjednoczonych niż poznawanie języka ja-
pońskiego przez obywateli Wielkiej Brytanii. Oczywiście istnieją pewne zmiany w za-
kresie slownictwa i akcent jest nieco inny, lecz bez żadnych wątpliwości jest to wciąż
język angielski.
Prblemy architektury 33
Możliwość przetłumaczenia
Będzie istnieć możliwość automatycznego przetlumaczenia kodu z języka Perl 5 do Perl 6.
W dluższej perspektywie nie jest to aż tak istotne jak tworzenie kodu w języku Perl 6,
lecz podczas fazy przejścia z jednej wersji języka do drugiej możliwość automatycznego
tlumaczenia będzie ważna. Pozwoli ona programistom na rozpoczęcie pracy z językiem
zanim zrozumieją każdy subtelny niuans wszystkich zmian. Perl zawsze spelnial zalo-
żenie polegające na preferowaniu nauki tego, co jest potrzebne w danej chwili i uczeniu
się stopniowo pozostalych rzeczy.
Ważne nwe cechy
Perl 6 będzie zawierać wiele nowych wlaściwości, takich jak wyjątki, delegacje zadań,
podzial na wiele metod, kontynuacje, wspólprogramy. Udowodnily one swoją przydat-
ność w innych językach, gdyż mają olbrzymią moc w przypadku rozwiązywania okre-
ślonych problemów. Zwiększają również stabilność oraz uniwersalność języka.
Wiele z nich jest tradycyjnie trudnych do zrozumienia. Perl stosuje to samo podejście co
zawsze: udostępnia potężne narzędzia, ulatwia ich stosowanie oraz pozostawia użyt-
kownikowi decyzję czy i kiedy je wykorzystać. Większość użytkowników w chwili wy-
korzystywania metody assuming prawdopodobnie nie będzie nawet wiedzieć, że uży-
wa aliasów parametryzowanych.
Tego rodzaju wlaściwości stanowią ważny element przygotowywania Perla na przyszlość.
Kto wie, jakie paradygmaty mogą powstać w przyszlości, przy wykorzystaniu polącze-
nia tych zaawansowanych wlaściwości, udostępnionych w postaci przyjaznej dla prze-
ciętnego programisty. Nie musi to być rewolucja, lecz z pewnością będzie to ewolucja.
Przydatnść długterminwa
Perl 6 nie jest wersją języka, która ma przetrwać kilka lat, a następnie zostać odrzucona.
Ma on w zalożeniu przetrwać 20 lat i dlużej. Wlaśnie ta dlugoterminowa wizja języka
wplywa na jego ksztalt i proces jego tworzenia. Nie jesteśmy zainteresowani implemen-
towaniem kilku ekscytujących sztuczek. Pragniemy silnych zależnych narzędzi, dyspo-
nujących dużą przestrzenią do rozwoju.  nie jesteśmy przerażeni perspektywą poświę-
cenia nieco większej ilości dodatkowego czasu teraz, aby utworzyć je poprawnie. Nie
oznacza to, że Perl 6.0 będzie idealny w porównaniu z innymi jego wersjami. Stanowi to
jedynie kolejny krok w jego rozwoju.


Wyszukiwarka

Podobne podstrony:
Perl Od podstaw perlop
Perl Od podstaw perlop
Wyk6 ORBITA GPS Podstawowe informacje
Podstawowe informacje o Rybnie
3 podstawy teorii stanu naprezenia, prawo hookea
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
podstaw uniw
Jezyk angielski arkusz I poziom podstawowy (5)
07 GIMP od podstaw, cz 4 Przekształcenia

więcej podobnych podstron