Blog

Ponarzekajmy na PHP

Trochę zamieszania zrobiła ostatnio akcja zbierania podpisów pod petycją do CKE, aby na maturze z informatyki w 2005 roku można było zdawać egzamin z PHP. Pomysł urodził się na forum php.pl.

Ja jestem za, a nawet przeciw. Gdybym miał wybór, pewnie pisałbym maturę z PHP, a nie np. z Turbo Pascala. Zresztą swoją pracę licencjacką też napisałem (głównie) o PHP. Więc czemu ten pomysł jest zły? Stronger już dobrze to wyjaśnił. Prywatnie uważam, że w szkole nie można się nauczyć programowania – od tego jest praktyka i długie godziny siedzenia przed monitorem, za które rodzina odsądza człowieka od czci i wiary. Ale szkoła powinna uczyć myślenia i wyrabiać dobre nawyki. PHP się do tego nie nadaje.

W tym momencie jestem hipokrytą, bo w przeciwieństwie do innych hakerów-krytyków, sam jestem przedstawicielem “generacji PHP”. Zaczynałem od Perla (szkolnych epizodów z Logo i Basicem nawet nie wspominam), ale dopiero poznanie PHP zbiegło się z czasem, gdy poważniej zacząłem myśleć o programowaniu. Nie mam też większej przeszłości z C (tym razem nie wliczam epizodów z uczelni).

Po paru miesiącach kodowania byłem już guru i śniłem o Dolinie Krzemowej. Otrzeźwienie przyszło po lekturze Thinking in Java. Okazało się, że książka o Javie może nauczyć więcej o programowaniu, również w PHP, niż 1,5 roku klepania skryptów i dwie inne opasłe książki.

W tym momencie dochodzimy do podstawowej różnicy między PHP, a “poważniejszymi” językami, jak Java czy C#. Gdy Rasmus Lerdorf wymyślał PHP, od początku postawił przed nim jedno, proste zadanie: nowe narzędzie miało mu ułatwiać zarządzanie własną stroną. Okazało się, że był to strzał w dziesiątkę, bo PHP świetnie nadaje się do tego celu. Na własne potrzeby ukułem teorię, że Java jest ludzi, którzy chcą coś zrobić dobrze, a PHP dla tych, którzy chcą coś zrobić (od razu zaznaczę, że mam na myśli aplikacje WWW, a nie bardziej ogólne zastosowania). Wykonanie małej czy średniej strony jest naprawdę szybkie. Nawet bez szukania w repozytorium PEAR czy PECL można w domyślnej dystrybucji znaleźć zestaw funkcji, który wystarczy 90% webdeweloperów. Składnia jest banalna, manual doskonały, a sieć roi się od tutoriali, przykładów i pomocnych ludzi. Język ma bardzo konkretne, wąskie zastosowanie i dobrze się w nim sprawdza.

Skoro jednak szkoła ma wyrabiać dobre nawyki, PHP odpada w przedbiegach. Gdy zaczynałem uczyć się Javy, uderzyło mnie, jak kompletnie jest przemyślana – po miesiącach z PHP było to objawienie. Sun zadbał nie tylko o przemyślany model obiektowy, ale też sugeruje takie “drobiazgi” jak spójne nazewnictwo czy standardowa dokumentacja. O niekonsekwencji autorów PHP, szczególnie jeśli chodzi o nazwy funkcji, napisano już dużo, więc nie będę tego powtarzał. Język ten dlatego jest taki “fajny”, bo pozwala zapomnieć o wielu rzeczach. O tym, że zmienne posiadają typ i zasięg (pamiętne zamieszanie po wydaniu PHP 4.10 i zmianie zachowania register_globals), albo że w OOP istnieje coś takiego jak hermetyzacja. Można się tym nie przejmować, jeśli WIE SIĘ, iż tego rodzaju rzeczy istnieją. Ale tego trzeba się najpierw nauczyć – czemu nie w szkole?

Mała dygresja: w tym tygodniu, z pewnych względów, przyjrzałem się trochę językowi Eiffel. Java i C++ są przy nim tak brudne i niekoszerne, jak PHP przy Javie. Chętnie zobaczyłbym Eiffela na maturze :).

Mimo wszystko, kocham moje PHP. Piątka jest już niemal “normalna” (chociaż szkoda mi, że nie doczekała się reorganizacji nazewnictwa, w tym wprowadzenia przestrzeni nazw) i można wreszcie myśleć o programowaniu obiektowym. Nie zajmuję się pisaniem na potrzeby “biurka”, tylko WWW, więc nie przeszkadza mi nędza PHP-GTK.

Dobrze, kończę już, bo właśnie dodaję do Fleksa obsługę komentarzy do newsów i artykułów. Kto zgadnie, w czym to piszę?

Comments

  1. Cezary Okupski

    Kształcenie złych czy dobrych nawyków to jeden aspekt. Oczywiście, że dobrze jest móc co najmniej do magisterium poświęcić się jedynie edukacji, pozostając na czyimś garnuszku. Niewątpliwie zdobywa się wówczas dobrą podbudowę teoretyczną do rozpoczęcia zawodowego programowania. Niemniej nawet podstawowe przyuczenie do PHP w odróżnieniu od Pascala daje jakąś umiejętność pożądaną na rynku pracy. Dobrą robotę w zainteresowaniu tym praktycznym narzędziem wykonuje Konkurs informatyczny WMiI UMK w Toruniu.

Comments are now closed