Zła sława PHP

Generalnie PHP nie cieszy się dobrą opinią mimo, że jest jednym z najpopularniejszych języków wykorzystywanych do pisania aplikacji webowych. Dlaczego PHP jest tak powszechnie stosowany, a jednocześnie krytykowany? Chciałbym przeczytać rzeczowe odpowiedzi wskazujące zarówno wady, jak i zalety tego języka.

2 lata, 3 miesiące temu | edytowane przez: lqc 3965112

  • Nikt wcześniej nie zadał sobie trudu przyjrzenia się historii powstania PHP i pierwotnych kierunków jego rozwoju.

    Projekt PHP powstał jako rozszerzenie idei SSI (ang. Server Side Includes) wprowadzonej przez Apache. SSI mogło mało, pomysłodawcy chcieli dodać tam własne API - stąd nadal istniejący relikt w postaci <?php ?> w plikach .php.

    Były to czasy, gdzie serwisy webowe powstawały jako CGI w języku C (co było dobre, bo przeciętny serwer WWW wtedy miał wydajność mniej więcej 486DX 400 MHz). Potem nagle jak grzyby po deszczy zaczęły rosnąć skrypty CGI w Perl. O obiektowości mało kto mówił.

    Na tym etapie okazało się, że zarówno dla początkujących jak, jak i zaawansowanych klepanie kodu w Perl'u jest mało wydajne - PHP na życzenie swoich użytkowników poszerzało bazę API o coraz nowe funkcjonalności: m.in. operację na ciągach znaków, obsługę baz danych, protokołów HTTP i FTP, zwalniając twórcę skryptu z myślenia o tym jak to zrobić.

    Ta pozorna łatwość przyniosła PHP miliony zwolenników (sam nim byłem). Jednak rozwój umiejętności programistycznych i wiedzy o inżynierii oprogramowania sprawił, że widoczne trudności z zarządzaniem kody zamieniły zachwyt w obrzydzenie. Zmiany w API z wersji na wersje czyniące wersje kodu niezgodnymi szybko zaczęło być męczące i prowadziło do szukania hostingów z akuratną do kodu wersją PHP. A jak długo można używać dziurawych wersji?

    ASP powstało jako zazdrość Microsoftu wobec popularności PHP... I co? Trafili bulls eye.

    W przypadku Ruby i Pythona należy powiedzieć, że to języki programowania oryginalnie stworzone w oderwaniu od technologii Web'owych. I tak powinno być - język powinien rozwijać się sam w sobie, z naciskiem na wydajność i zachowanie spójnych technik programowania. To bardziej przemawia do programistów zawodowców, którzy kształcą się w określonych paradygmatach i uczą się nacisku na inżynierię oprogramowania. Wymuszenie podziału logiki od strony wizualnej, czyni z automatu projekt przejrzystszym.

    Wiele osób zaczynających zabawy z PHP miesza kod z HTML'em bo tak najłatwiej o efekty, a to gdzieś zostaje potem w głowie i wypacza myślenie.

    PHP w postaci znanej z 4 powinno całkowicie zniknąć i odejść do lamusa, a język powinien ewoluować powoli w formie podobnej do Pythona, a biblioteki mieć podzielone funkcjonalnie, najlepiej w oparciu o klasy i moduły.

  • Jest powszechny bo był chyba pierwszym w miarę przystępnym językiem webowym po Perlu, którego składnia była dla wielu osób nie do przejścia. Szybko się przyjął, jest banalnie prosty, można bardzo szybko osiągnąć konkretne rezultaty...

    A dlaczego jest krytykowany? Do wersji 4 był żałośnie ubogi i bałaganiarski. Niemal brak obiektowości, totalny bajzel w bibliotece funkcji (powielanie funkcjonalności, niespójne nazewnictwo i wzorce użycia). Dopiero od 5 pojawiła się porządna obsługa obiektowości, ale baza użytkowników niestety pozostała - poza nielicznymi chlubnymi wyjątkami w PHP nadal się pisze tak jak kiedyś. Niestety, obawiam się, z tego samego powodu dla którego PHP przebił na początku Perla i pokrewne - bo tak jest prościej.

    I stąd powszechna krytyka. Jak ktoś kto programował w "poważnym" (ironia) języku - jak Java czy C# zajrzy w kod typowej aplikacji w PHP, to nic dziwnego że ucieka z krzykiem.

  • Według mnie zła sława PHP spowodowana jest zepsutym rynkiem przez osoby (nie tyle co gimnazjaliści), co nie cenią swojej wiedzy i robią "super" strony za 200-300 zł.

    Sam należę do grona młodych, aczkolwiek wiem co umiem i wiem ile to kosztuje. Jakiś czas temu często spotykałem się z krytyką potencjalnych klientów, że za drogo, ale ostatnio często słyszę/czytam: "Mówi Pan sensownie, chciałbym z Panem współpracować".

    Myślę, że ta świadomość, że taniej nie znaczy lepiej powoli zaczyna się rodzić w potencjalnych zleceniodawcach i jak PHP rozwinie swoje obiektowe skrzydła to może się okazać, że to Ci co "sensownie mówią" będą budować rynek, a reszta pójdzie w zapomnienie.

    Przynajmniej taką mam nadzieje :) Ale to czas wyznaczy dalszą drogę tego języka.

  • PHP ma złą sławę, bo jest łatwy do nauki - przynajmniej tak się wydaje ludziom którzy mieli do tej pory styczność z innymi językami programowania. Powoduje to przyrost dużej ilości kodu miernej jakości. Poczytasz kilka stron i już możesz robić strony. Poczytasz kilkadziesiąt i możesz robić portale. Ale gdzieś po drodze zwykle ludzie gubią naukę takich rzeczy, jak bezpieczeństwo, zarządzanie swoim kodem, stosowanie wzorców projektowych czy planowanie swojej aplikacji. Tacy programiści zwykle nie uczą się na swoich błędach, prawie bezmyślnie kopiują potrzebne skrypty z innych stron itd. Efekt? Ogólnie się twierdzi, że jak coś jest napisane w php, to jest nieczytelne, dziurawe i powolne. A jak ktoś zażąda dużo kasy za pisanie w kodzie php to ludzie oczy otwierają, bo przecież php jest łatwe... a później znajdujesz dziury bezpieczeństwa i nieład w kodzie ich głównej strony :)

  • PHP jest jak bigos. Masz w nim wszystko o co wstydzisz się zapytać.

    Niestety jego powszechna popularność jak zawsze prowadzi do niechęci osób, które chcą pokazać że znają bardziej ezoteryczne rozwiązania i nie chcą utożsamiać się z językiem w którym prawie wszystko wydaje się proste do zrobienia. Często krytykowane jest to, że w PHP może pisać właściwie nawet uczeń gimnazjum przez co można mieć kod tanio, ale nie zawsze w dobrej jakości. Więc to niestety ludzie używający bezmyślnie tego języka psują mu opinię.

    Poza tum oczywiście ponieważ nie ma obiektówki w biblitotekach PHP to metody odnoszące się do tego samego tematu grupowane są takim samym przedrostkiem np. strX albo xml_X.

    Jeżeli chodzi o środowisko programistyczne, język i całe otoczenie (oprogramowanie dodatkowe, community, oferta hostingu, darmowość (włącznie z softem serwera)) jest to najlepszy język do webdev. Do tego stopnia, że nawet Facebook go używa. Ale w świecie programistycznym nie ma faworyta jeżeli chodzi o popularność w dużych projektach i można tam znaleźć różne języki, nie tylko PHP.

    I pewnie każdy programista trochę kocha i trochę nienawidzi PHP.

  • php to strasznie bałaganiarski język gdyby pojsc za radą zyx'a http://www.zyxist.com wtedy php mogłoby być świetnym jezykiem, a teraz domyślanie sie czy ma bys array_diff czy po nowemu arrayDiff jak to jest z iteratorami z SPL'a nie jest ani miłe, ani przyjemne i łatwość zrobienia bałaganu w skrypcie tak że po 24h sam nie wiesz o co w nim chodzi niezbyt mnie przyciąga do tego języka, ale z czegoś żyć trzeba...

  • PHP ma kilka zalet, nie wynikają one jednak z samego języka. Tak więc:

    • jest darmowy
    • ma potężną społeczność
    • jest popularny
    • jest łatwo wdrażalny
    • łatwo się go nauczyć

    Nie byłem w stanie dopatrzeć się żadnych zalet w samym języku, poważnie. Z kolei wady...

    • język niesamowicie podatny na błędy
    • pomieszane paradygmaty programowania (jakoś w Pythonie elegancko to załatwili)
    • ogromna rzesza "programistów" strasznie zaniża jakość kodu
    • jest powolny
    • zachęca do mieszania Widoku, Kontrolera i Modelu

    Problemy jeszcze długo by wymieniać. Na pewno lepszym językiem do aplikacji internetowych jest Java, mimo mitów o powolności. Statyczne typowanie niesamowicie przyspiesza proces kodowania, jednak problemy ze znalezieniem hostingu potrafią być frustrujące.

    Polecam jeszcze Pythona z Django - bardzo dobre efekty przy relatywnie małym nakładzie sił.

    No i ciekawie zapowiada się Scala.

  • Php złą sławą owiane... lecz pomimo tego uważam że nic nie wyprze tego języka (chyba że powstanie język w którym w czystym kodzie można napisać logowanie, system komentarzy itp). Język ten jest bardzo intuicyjny i można go opanować w dość krótkim czasie niestety jest również wiele dzieciaków którzy niszczą jego renome.

  • Zaletą jest jego popularność, większość serwerów hostujących witryny wspomaga właśnie ten język. Jak niektórzy sądzą, jest bardziej przystępny do opanowania niż inne, np. ASP.NET czy Ruby on Rails. Oczywiście jak każdy język, tak i ten ma swoje wady, dotyczy to przede wszystkim bezpieczeństwa. Takich wad jest multum, więc nie będę ich tutaj opisywał.

  • Najwieksza wada i zaleta PHP jest to jak latwo mozna zaczac w nim cos tworzyc. Poniewaz jest latwo wszyscy sie za to biora i powstaje masa kodu bardzo niskiej jakosci co wplywa na ogolne postrzeganie jezyka.

    Trzeba tez przyznac ze sam jezyk nie jest zbyt elegancki. Brak spojnosci w nazewnictwie funkcji, multum funkcji robiacych podobne lub identyczne rzeczy. Krotko mowiac globalna przestrzen nazw w PHP jest strasznie zasmiecona.

Zaloguj się, aby dodać swoją odpowiedź