PHP nie idzie w dobrym kierunku. Niestety, „moving on”

PHP i MySQL Porady i Tutoriale
333 wizyt
15 grudnia 2011, 18:35
4 Komentarzy

Tagi:
php

Z PHP jestem niemal od samego początku istnienia tego języka. Doceniam go za prostotę tworzenia aplikacji oraz dużą ilość dostępnych w Sieci materiałów. Niestety, w przypadku tego języka popularność nie idzie w parze z jakością.

Wady w PHP zacząłem dostrzegać już stosunkowo dawno. Na początku chodziło o błahostki – brak możliwości zarządzania pamięcią, itd. Potem jednak, gdy w PHP 4 wprowadzono „jakoś działające” obiekty, zacząłem dostrzegać poważniejsze problemy. Brak wielodziedziczenia jest chyba najpoważniejszy. To jednak nie wszystko. W porównaniu z takimi gigantami jak C++, lub – jeśli już mówimy o językach interpretowanych – Pythonem, PHP wypada naprawdę słabo.

Za PHP przemawiać może fakt, że stworzonych jest w nim wiele potężnych serwisów, m.in. Facebook lub polskie Allegro. Nie oznacza to jednak, że są one wydajne i bezpieczne.
Jako webdeveloper z różnymi językami mam do czynienia  każdego dnia. Poprawki, rozbudowa, modyfikacje. Często jednak, gdy patrzę na kody serwisów dla których aktualnie pracuję mam ochotę złapać się za głowę.
Brak wcięć, brak jakichkolwiek zalążków ponownego wykorzystania kodu. PHP charakteryzuje się tym, że będzie działać o ile kod będzie bezbłędny. Nie oznacza to, że kod będzie napisany dobrze i wydajnie.

Weźmy wspomnianego przeze mnie wcześniej Pythona. Wspaniały język, w którym kod zawsze będzie wyglądał ładnie. Dlaczego? Bo Python interpretuje wcięcia!
Wiele osób może uznać to za wadę. Nieprawda! Dzięki temu nasz kod pozostanie utrzymany w porządku i – przede wszystkim – nie pogubimy się w klamrach. Każdy programista PHP, C++, itp. na pewno miał kiedyś taki problem. Python ma na niego rozwiązanie – wcięcia.

Inną rzeczą, nad którą warto się zastanowić jest to, jak PHP jest rozwijany. Wersja 5.4 jest tuż za rogiem a co w niej debiutuje? Cóż… największą nowością jest prawdopodobnie odwoływanie się do metody w momencie tworzenia instancji obiektu ($x = new JakasKlasa()->metoda();). To też świadczy o tym, że PHP stoi w miejscu, mimo że właśnie teraz, gdy coraz więcej osób zaczyna interesować się programowaniem powinien pokazywać, że to on jest no. 1 i żaden inny język mu nie podskoczy.

Praca nad serwisem #TweetWrapper™ uświadomiła mi, że utrzymanie czystości w kodzie, który ma pracować przede wszystkim szybko i wydajnie, ale który napisany jest w PHP, jest bardzo, bardzo trudne. Nie pomogą tu frameworki ani klasy ułatwiające programowanie. Czas zmienić mój domyślny język programowania. Prawdopodobnie padnie na Pythona – język, który od zawsze cenię.



  • http://webhelp.pl Bartosz Romanowski

    Przy korzystaniu z każdego innego niż PHP języka zawsze prędzej czy później pojawia się jeden problem – serwer. Nawet najtańsza wirtualka obsługuje PHP, a Pythona czy wynalazki w stylu Ruby’ego już nie. I nawet jeśli zadbasz o własne środowisko dewelopersko-testowe, to zawsze znajdzie się klient, którego serwer nie obsługuje Pythona i który nie ma zamiaru się przenosić.

  • b091

    LOL 
    1. PHP się rozwija i to całkiem nieźle.2. Problemem (a jednocześnie zaletą) php jest to że łatwo się w nim pisze i nie trzeba trzymać się reguł jak np w językach typu Java, Cep dla tego jest wielu koderów którzy zakoduja co chcą w PHP ale kod jest z dupy, nie ma w nim zastosowania wzorców i innych ważnych konspektów kodowania, jest dziurawy i podatny na ataki, ale działa… 3. IMHO największym problemem PHP jest brak konsekwencji ludzi tworzących ten język.4. Java, Ruby, Scala, Closure, Js, i wiele innych nie ma dziedziczenia wielokrotnego co mamy w Cepie, i co również powoduję problemy.
    5. Jeżeli koder dba o kod i ogarnia co nieco to robi to czysto, używa wzorców i kod jest re-używalny i bardzo dobry.
    6. A PHP 5.4 wnosi troszkę wiecej niż napisałeś 
    7. Definiowanie „KLASY” to „Class A { … }”, a nie „$a = new A();” bo to jest tworzenie instancji obiektu a nie definicja :>
    8. PHP ma + i – jak każdy język

    Reasumując ten artykuł to stek bzdur!

    A to co piszesz to wina niedoświadczonych niedouczonych koderów którzy piszą kiepski kod (i m.in nie odróżniają definicji od stworzenia instancji obiektu) a samo PHP na to pozwala (i dla tego jest prosty do nauki, i dla tego ludzie nim gardzą bo większość koderów jest słabych)!
    Osłabiają mie tego typu wpisy.

    LEARN HOW TO CODE PHP NEWBIES!

    Pozdrawiam 

    • http://www.edewo.pl Maciej (DeWo) Wilczyński

      Ad. 7: Mój błąd, poprawiam.

      Reszta to Twoja (nieco subiektywna) opinia.

  • b091

    I jeszcze jedno nie ma jeżyka NR.1 różne języki nadają się do różnych zastosowań, a technologię należy łączyć.