Acolo unde există cel puțin două opțiuni, tot timpul trebuie să existe și dezbateri despre ele. Astăzi, când vorbim de limbaje de programare, putem alege dintr-o mulțime de variante, indiferent de nevoile pe care le avem.

 

Printre cele mai cunoscute nivele de limbaj înalt se află: C++, Java, C#, Ruby, PHP, GO, Phyton, Swift. Fiecare limbaj a fost creat cu scopul de a acoperi probleme neadresate de limbajele existente în momentul respectiv.

 

Trinomul C++, Java și C# este un bun studiu de caz. C++ a fost lansat în 1985, ceea ce îl face destul de “bătrân”.  Încă de la apariție a venit cu o serie de îmbunătățiri pentru limbajul C, prin introducerea de clase și a urmat o evoluție constantă, ajungând până la versiunea C++17.

 

Java a fost oficial lansat în 1995, fiind dezvoltat începând cu anii 1990. Sintaxa Java este inspirată din C++, dar spre deosebire de acesta, creatorii lui și-au dorit să simplifice modul în care se poate scrie cod. Elementul diferențiator față de C++ este că aplicațiile Java pot fi rulate pe orice platformă cu ajutorul JVM (Java Virtual Machine), spre deosebire de aplicațiile scrie în C++, aplicații care trebuie compilate pentru fiecare platformă în parte.

 

C# a apărut în anii 2000, fiind dezvoltat de Microsoft, care și-a dorit să creeze un limbaj mai rapid, mai eficient din punct de vedere al utilizării resurselor și mai simplu decât Java. Un alt avantaj față de Java este că nu are nevoie de o VM (JVM în cazul Java), deci poate fi folosit cu succes chiar și în sisteme de tip embedded, care au limitări serioase când vine vorba de resurse.

Cum spuneam la început, limbajele apar ca soluții pentru probleme noi sau nerezolvate de cele deja existente.

 

Este și cazul limbajului PHP, care a fost dezvoltat inițial de Rasmus Lerdorf, din dorința de a crea un site pentru a-și expune CV-ul. La început PHP era o formă minimală de Template Engine, dar pentru că a fost bine primit de comunitate, limbajul a primit îmbunătățiri și funcționalități în mod constant, astfel încât cu ajutorul lui se puteau crea pagini web dinamice.

 

Chiar dacă PHP a evoluat foarte mult, încă din 1995 până în prezent, scopul lui a rămas WEB-ul, iar dacă ne uităm pe statistici, vom vedea că în jur de 80% din site-urile și aplicațiile web sunt scrise în PHP. Pragmatic vorbind, o cotă de de 80% într-o piață cu o gamă largă de opțiuni este o valoare foarte mare, ceea ce îl face câștigător la testul timpului.

 

Adopția masivă în zona aplicațiilor și site-urilor web pleacă de la faptul că este un limbaj flexibil, simplu de scris, dar mai ales, foarte simplu de pus în producție.

 

Spre deosebire de alte limbaje care impun diverse arhitecturi, design patterns, procese de compilare sau configurări complexe de servere, pentru a crea o pagina web scrisă în PHP, poate fi de ajuns un singur fișier, câteva linii de cod și un serviciu de hosting (unele chiar gratuite).

 

Un singur fișier care se poate muta din local în serverul de producție în cel mai simplu mod posibil, chiar prin banalul FTP, va fi Up and Running imediat ce a fost copiat pe server, fără alte configurări. Flexibilitatea limbajului permite combinarea codului HTML, CSS și chiar JS în același fișier PHP în care există și logica paginii web. Dacă e bine sau nu să folosim o astfel de implementare poate fi discutat ulterior.

 

La o simplă căutare despre PHP, pe lângă părerile pozitive și exemple de luat în seamă, sunt destul de multe discuții și argumente negative despre limbajul PHP. Multe din ele nu mai sunt de actualitate sau vin doar din lipsa de informare riguroasă. Cele mai comune contraargumente sunt că principiile OOP nu sunt prezente, că este un limbaj lent cu probleme de securitate, sau că nu este folosit în proiecte sau companii mari, codul devine dezorganizat (spaghetti code), nu poate fi utilizat în afara aplicațiilor web, nu poți porni fire de execuție și multe altele.

 

În prezent, PHP a ajuns la versiunea 8.0. Începând cu PHP 5.6, dezvoltatorii limbajului au adresat din ce în ce mai multe din lipsurile reclamate de comunitate.

 

PHP 7.0 păstrând compatibilitatea cu versiunea anterioară (aproape de 100%), a venit cu o îmbunătățire semnificativă a performanței, atingând până la 3x viteza de procesare în unele cazuri.

 

PHP 7.4 și-a propus să aducă și mai multe îmbunătățiri pe partea de OOP, consistență, criptografie, performanță (preloading) și chiaro rescriere a implementărilor funcționalităților deja existente.

 

Începând cu versiunea 8.0 a fost implementat JIT (Just-in-Time Compilation), moduri uniforme de folosire a funcționalităților vechi, tratarea și utilizarea uniformă a excepțiilor.

 

Cu toate că din 1995 și până astăzi PHP și-a menținut o comunitate activă și dedicată, încă este perceput ca “oaia neagră” a programării. Acest lucru negativ se datorează propriului succes. Mulți dintre dezvoltatori încă îl văd același PHP 4, când limbajul era încă instabil, avea performanță slabă și o implementare redusă a OOP-ului.

 

Adevărul este că ,începând cu versiunea 7.0, PHP a devenit un limbaj stabil, cu performanțe mari (chiar mai rapid decât Python sau Ruby), robust, cu o predictibilitate a roadmap-ului mai precisă, dar și cu o arie mai mare de utilizare, fiind adoptat de companii mari, în proiecte enterprise, proiecte financiare și chiar în proiecte real time.

 

Yahoo, Wikipedia, Flick, Tumblr, Facebook (PHP + HHVM), Slack, Etsy sunt doar câteva nume și produse mari care au adoptat și dezvoltat aplicațiile folosind PHP.

 

Notorietatea PHP-ului este într-o continuă luptă cu sine datorită faptului că și-a păstrat flexibilitatea (de a crea o aplicație chiar și cu un singur fișier), avantaj care se poate transforma într-un dezavantaj major dacă cel ce scrie codul nu o face atent. 

 

Într-un final, nu limbajul este cel care trebuie să îl responsabilizeze de programator, pentru că oricât de robust ar fi un limbaj, dacă este scris fără responsabilitate poate crea mari probleme.

 

Totuși, pe lângă bunele practici generale în programare, există și standarde speciale recomandate (PSR) care au ca scop ghidarea programatorului astfel încât aplicația dezvoltată să fie stabilă și, nu în ultimul rând, există framework-uri puternice care implementează diverse arhitecturi și pun la dispoziția dezvoltatorilor tool-urile potrivite pentru orice tip de aplicație web, API sau CLI. Zend Framework, Symfony, Laravel se numără printre framework-urile cu notorietate, cu o perioadă suficientă în care și-au dovedit robustețea și care stau în spatele multor aplicații și servicii complexe.

 

În concluzie, dacă discutam despre PHP trebuie să îl analizăm în contextul scopului pentru care a fost creat și al funcționalităților pe care le oferă, doar așa putem să avem o imagine completă. În plus, nu trebuie să uităm că un limbaj de programare este ales în funcție de nevoile de rezolvare al problemei, nu în funcție de cunoștințele pe care le avem doar despre anumite limbaje.

 

Noi, în Softia, pe lângă alte limbaje și stack-uri specifice, folosim ultimele versiuni de PHP, alături de Laravel sau alte framework-uri potrivite soluțiilor pe care noi le dezvoltăm.