We love perl

Perl, czyli "Practical Extraction and Report Language", często też rozwijany do "Pathologically Eclectic Rubbish Lister". Ciężko stwierdzić, które rozwiniecie jest bliższe i odpowiedniejsze, ponieważ oba zostały zatwierdzone przez twórcę Larrego Walla.

Dlaczego ludzie tak nie lubią Perla, wieszają na nim psy? Do tego wszystkim go odradzają, szczególnie początkującym, na rzecz Pythona, który w ostatnich czasach powiększył swoją popularność, mimo iż nie jest wcale takim młodym potomkiem.

Na PerlMonks pojawił się ciekawy temat What was the bait (project, problem or opportunity) that hooked you on Perl?, czyli jak się uzależniliśmy od Perla, jak się daliśmy złapać ;)

To chyba ten topic i kilka notek z tym związanych na różnych blogach programistów Perla było powodem skrobniecia tego wpisu. Swój udział miała także frustracja po natknięciu się na miejsca w sieci, gdzie ludzie gardzą Perlem, odradzają go innym programistom, a sami wychwalają wielkiego Pythona jako super język...

Mi się zawsze wydawało, że każdy pisze w tym co lubi, że nie każdy jest taki sam, że nie wszystko wszystkim się musi podoba. Każdy ma wolność wyboru, więc skoro zainteresował się Perlem, to czemu od razu wszyscy go atakują, wyśmiewają i namawiają do przejścia na Pythona. Niech ma swoją szanse, nie spodoba mu się Perl to znajdzie sobie cos bardziej odpowiedniego lub zmieni zainteresowania.

Sam osobiście nie przepadam zbytnio za Pythonem, nie lubię go, mimo iż na studiach starają się mnie "zmusić" do tego.

Wolę podążać ścieżkami perlowymi, gdzie mamy wiele możliwości, wiele skrzyżowań i kierunkowskazów, które prowadzą nas do celu:

There's more than one way to do it.

Najważniejsze to, że droga ta będzie prosta, a napewno możliwa do przebycia:

Perl is designed to make the easy jobs easy, without making the hard jobs impossible.

oraz pewność, że cel na pewno zostanie osiągnięty:

Perl is a language for getting your job done.

Za to kocham Perla ;)

Rzeczy proste pozostają prostymi, a trudne da się rozwiązać na wiele różnych sposobów.

Perl jest prosty, łatwy i wydajny (kosztem elegancji), nie narzuca żadnych z góry ustalonych reguł i ograniczeń, na siłę forsowanych przez twórców języka. Mam pełną wolność wyboru, w jakim stylu i jak chcę pisać.

Zaraz pewnie odezwa się głosy pragmatyków i perfekcjonistów, że właśnie dlatego, że każdym może pisać w swoim stylu, bez żadnych ograniczeń, że Perl jest językiem "write-only" - możliwym do pisania programów, ktorych odczytanie jest niemożliwe.

To prawda, brak reguł jest bronią obusieczną, ale w każdym języku można pisać zagmatwany kod, który ciężko się czyta, analizuje, i jest trudny do utrzymania.

Yes, sometimes Perl looks like line noise to the uninitiated, but to the seasoned Perl programmer, it looks like checksummed line noise with a mission in life.

Ale to świadczy tylko o jego sile, doświadczony perlowiec poradzi sobie z kodem innego perlowca, a świat zewnętrzny? Kogo to obchodzi.

marilyn w poście How Perl Became My #1 podaje kilka powodów dla których kocha Perla. Wspomina tam o magicznych zmiennych i symbolach. To właśnie dzięki nim Perl posiada tą magiczną otoczkę. To właśnie dzięki nim kod Perla staje się prostszy i zwięzły, w łatwiejszy i szybszy sposób wyrażasz w nim dokładnie to co chcesz osiągnąć.

To właśnie ta magiczność, ten niezrozumiały na pierwszy rzut oka ciąg znaków będący fragmentem kodu mnie przyciągał. Tak bardzo mnie to pociągnęło, że sam zacząłem używać tego języka i dałem się złapać. Wiele skryptów może nie napisałem, ale wystarczyło to, aby się zakochać.

Perl to nie tylko kolejny język programowania, to także wielka społeczność. To dzięki społeczności skupionej wokół Perla i CPAN język ten mógł wznieś się tak wysoko.

CPAN jest wielkim zbiorem różnych zasobów, ale to także wielka społeczność developerów i użytkowników Perla. Repozytorium to zawiera niezliczone ilości zasobów, modułów, które nie tylko dawają nam dostęp i klucze do "innych wymiarów", nowych funkcjonalności, ale także mogą rozszerzać sam język, i to wszystko open source.

CPAN jest najbardziej użytecznym miejscem dla każdego programisty Perla. Zawiera obecnie blisko 16 000 modułów prawie 7500 autorów.

Czy inne języki skryptowe mogą poszczycić się podobnymi osiągnięciami i zasobami?

Sama społeczność perlowa to swoisty fenomen, o którym można byłoby pisać książki.

Sam Larry mówi o niej w ten sposób:

Często myślę o kulturze Perla jak o niepodzielnej całości, ale w rzeczywistości istnieje wiele naturalnych subkultur, nie wspominając o wszystkich subsubkulturach, superkulturach i wszelkich innych ich kombinacjach. Wszystkie wymieniają się metodami i atrybutami. Może to być przytłaczające i właśnie na mnie tak to oddziałuje.

Perl nigdy nie umrze, dobrze się trzymie już ponad 20 lat, a zbliżająca się wersja 6 tego języka oraz nowy styl "modern perl" na nowo umocnia jego pozycje.

Nadal uważasz, że pisanie w Perlu nie należy do łatwych i przyjemnych rzeczy, a programiści go używający są nad wyraz ludźmi z lekko zaburzoną psychiką?

To czemu programiści Perla są najszczęśliwszymi ludzmi?

8 przemyśleń nt. „We love perl”

  1. Zawsze gdy zależy mi na wyniku to używam Perla. W Pythonie też pisałem, ale wolę tego nie powtarzać – kod w C++ powstałby przynajmniej kilka razy szybciej. Miałem błąd na błędzie, a GC sprzątał mi potrzebne dane ;-). Perl może i wygląda czasami dziwnie (np. model „obiektowy”), ale przynajmniej ma logiczne zachowania. W Pythonie choćby słówko „super” zachowuje przynajmniej nieintuicyjnie.

    1. OOP bedzie przyjemniejsze w Perl6, juz teraz mozna sie tym pobawic na Rakudo, lub pod 5tka pisac w stylu modern perl – moduly Moose i przyjaciele ;)

  2. Niepotrzebnie się tak pienisz na Pythona :-) To bardzo miły i bardzo logiczny język, wielu programistów Perla przyznaje się do inspiracji Pythonem.
    To chyba właśnie najbardziej boli niektórych – że Perl nie widzi problemów z sięganiem po wypróbowane przez innych metody. „Pożycza” skąd się da, rozszerzając swoje możliwości i nie wstydzi się tego. Wspomniany Moose to de facto implementacja CLOS-u, podprowadzonego z LISPa. Nawiasem mówiąc LISP jako pierwszy wprowadził pojęcie funkcji oraz instrukcję warunkową if, jakieś 50 lat temu :-)
    To tak w kwestii martwych i przestarzałych języków…

  3. Az tak sie nie pienie, znam podstawy i mi akurat nie podchodzi, ale szanuje wybory innych.
    Ogolnie co mnie drazni to wszelkie FUD’y jakie powstaja w okol Perla, o dziwo wiekszosc nich pochodzi od Pythonowcow, „ktorzy wiecznie poszukuja uzasadnienia, ze Python jest lepszy od Perla” i nie tylko ;)

  4. Obecnie przymierzam się do Perla i wydaje mi się,że będzie dość duża linia oporu przy nauce jak to zawsze na początku,ale chcę poznać ten język.A co do Pythona i tych wszystkich sporów wokół języków skryptowych to uważam kwestia upodobań tylko i wyłącznie.Sam kiedyś się zad tym zastanawiałem niepotrzebnie marnując czas…Spróbuj,a się przekonasz,bo tak jest we wszystkim:)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *