PHP in 2021. La fel de relevant?

Ce parere aveti despre php, care este declarat de foarte multi “dead”? Parerea mea e ca odata cu versiunea 8 nu e absolut deloc mort, ba chiar arata promitator. Voi ce pareri aveti? Am vazut ca si popularitatea sa a crescut, conform TIOBE. Ca job market, vad ca inca este foarte cautat.

1 Like

Este un limbaj ok si noi este platit bine. Daca iti place, go for it. Are si o curba de invatare usoara.

PHP tot moare de vreo 10 ani dupa parerea unora, in realitate inca n-a murit si inca se fac bani buni din asta, pana la urma e doar o unealta, o sa mai inveti si alte limbaje pe masura ce prinzi si alte proiecte, nu e ca si cand te-ai insura cu el.

Bafta la curba de invatare pe frameworkuri, rar gasesti ecosistem mai scarbos si cu documentatie asa proasta.

3 Likes

La partea cu documentatie proasta, nu sunt de acord. Documentatia pe Spring e inutilizabila de exemplu, eu nu inteleg nimic din framework-ul ala.

Cu asta ai lucrat: https://symfony.com/ ?! Cred ca este intentionat scrisa prost.

Cu Symfony, nu, dar Laravel am auzit ca e ok, m-am uitat putin pe documentatie si pare bine structurata.

1 Like

Am trecut in fuga prin Symfony și documentatia a fost ok.

La Laravel nu mi-a placut framework-ul si ideile lui, dar asta este de preferinte.

1 Like

In comparatie cu Spring cum ti se pare? Numai mie mi se pare un gunoi Spring ca si documentatie?

Rar am trecut prin ea. Este ca si un curs de la facultate. Teoretica si abstracta.

Dar documenatiile sunt in general teoretice.

1 Like

Poate in symfony sunt mai dificil de inteles motivele pentru care un lucru se face asa si nu altfel, dar dupa ce te prinzi vezi de fapt de ce alte frameworkuri l-au adoptat (drupal, typo3): pur si simplu implementeaza protocoalele corect. Documentatia e foarte stufoasa, dar au echipe care doar asta fac, si e bine organizata. Dar trebuie rabdare si timp pentru asimilare.

1 Like

Cea de la Spring mi se pare de departe cea mai proasta.

Spring e stufos, dar documentația era ok, sunt framework-uri mult mai simple și pentru Java/Kotlin. Vezi Ktor/VertX.

Analogul lui Spring pe PHP e fostul Zend Framework, https://framework.zend.com.

PHP nu e rău deloc acum, doar că proiectele implica de obicei mult legacy și cum PHP n-a fost folosit doar de programatori nu e tocmai un vis.
Pentru un începător va fi și ciudat cu multe configurații posibile. (Există perioada de dinainte de composer și PHP 7)

Eu am învățat PHP din seria PHP 101 acum 10 ani GitHub - alemohamad/php-101: PHP for the absolute beginner. Articles on how to learn about basic PHP.

Cu symfony/phpbb/magento/wordpress mereu m-am chinuit să adaug un buton, dar documentația în special la phpBB era incredibil de bună. La restul îți venea să îți tai venele. Era un joc sa nimerești librăriile globale și versiunea la PHP ca să îți meargă un anumit framework, plus totul era pe shared hosting.

Nu este prosta. Documentatia este teoretica. Ca un curs de la facultate.

Acolo nu o sa iti spuna cum faci o aplicatie CRUD, ci o sa iti spuna ca poti sa extinzi JpaRepository sau CrudRepository ca sa ai operatiile CRUD. Si eventual ce metode ar trebui sa suprascrii ca sa ai propriul tau comportament.

Eu in general trec prin docs cu ideea sa aflu daca se poate face ceea ce vreau. Plus ca la certificare, cam ar trebui sa treci prin ea.

Daca vrei ceva mai practic, poti sa incerci un ghid, sau tutorial unde iti explica pas cu pas cam ce ar trebui sa faci.

Eu ma mai uit pe ghidurile lui
https://www.marcobehler.com/guides

Comparativ ce ce este pe aici, este chiar buna
https://docs.oracle.com/javase/tutorial/

De-a lungul timpului am ajuns la concluzia că orice limbaj este ușor de învățat. Provocarea mai mare este puțin mai sus: ecosistem, paradigme, tooling.

De exemplu: C# mi s-a părut OK de citit și de scris, dar mi s-a părut destul de complicată treaba cu proiecte/soluții din VS. Ruby mi se pare super intuitiv…până îți trântește vreo eroare criptică și/sau vreo incompatibilitate cu Windows.

Ca exemplu de paradigmă: pentru cineva care vine dintr-un alt limbaj, JS este confuz: gândește-te doar la cum trebuie să explici this. Plus callback hell. Plus const defect.

4 Likes

A fost ingropat de bugetarea joburilor pe PHP.

Daca e sa compari 1:1 acelasi post sa zicem un backend developer de PHP pentru acelasi gen de proiect si la acelasi nivel de expertiza cu unul care lucreaza pe Java sau Go sau Scala sau ce mai e la moda vei gasi diferente la rate-uri foarte mari in ideea ca oricine poate invata PHP chiar daca practic nu e asa.

De 20 de ani lucrez in PHP si mi se spune ca este mort. Well… ?

PHP-ul este folosite pe 80% din site-urile lumii, deci prea curand nu o sa moara ca nu vad pe nimeni cre sa sa inlocuiasca toate acele siteuri (realizez ca multe sunt wordpress)

Da, se scrie prost in PHP. Dar am vazut prost scris si in JavaScript, C sau pyhon. Am mai vorbit cu programatori de Java si ei mi-au zis ca au vazut cod prost in java. Deci nu cred ca e o chestie PHP only

Din punct de vedere banutzilor din ce am vazut pe afara sa plateste mai prost decat alte tehnologii “cool” gen javascript, go, python

7 Likes

Subscriu la ce zice @Catalin_Banu. Limbajul devin mai matur împrumutând funcționalități de prin alte limbaje - discutabilă practica, dar până acum au rezultate bune -, framework-urile sunt ok, Laracasts și Symfonycasts sunt niște resurse bune iar piața muncii are oferte de tot felul.

@foobaz256 când zici că rar găsești ecosistem mai scârbos și documentație mai proastă ai și niște argumente? Sau doar ai răsfoit siteul Symfony sau Laravel fără să depui vreun efort și gata?
Exemple proaste sunt în toate limbajele, începând cu preaslăvitul Javascript (+/- Node) până la favoritul corporațiilor, Java.

3 Likes

Înafara de partea de built-in security, Java mi se pare un chin din punct de vedere al developement-ului, din punctul meu de vedere fiind overengineered.Node cu programarea asincronă și callback hell zic că nu e o alegerea prea înțeleaptă(pentru că nu sunt mulți care sa o stăpânească bine). Cât despre Go, am înțeles că e super. Python e prea lent.

2 Likes

Da serifule, am rasfoit asa nitel, vreo 10 ani toate frameworkurile posibile de php de la CI, lithium, cake, symfony, phalcon si laravel. Si tot mi se pare prost documentat ecosistemul si cu multe bube, Laravel ce are documentatie mai buna, in rest…

Eu stiu ca tu esti un mare iubitor al symfony-ului, chiar ultras, dar n-are rost sa o iei asa personal.

PS: noi 2 ne-am intalnit de mai multe ori in viata reala chiar la prezentari de symfony, wink wink

Vedeti ca deraiati putin de la subiect, devine un razboi intre limbaje si framework-uri.

As vrea sa aduc inapoi putin in vizor relevanta PHP-ului:

Exista N platforme bazate pe php care sunt extrem de flexibile si avansate, e mult mai ieftin sa faci ceva pe asa ceva decat sa il faci de la zero.

Exista pro si cons la orice, daca esti foarte bun la php si incepi un proiect personal/pentru un client caruia nu ii pasa clar folosesti php, indiferent de framework.

Daca vrei ceva backend rapid/elegant si sa nu fie php, atunci iei go. (si nu prea ai framework-uri)
Daca vrei ceva backend la o firma, vrei sa te poti vinde la firme mari, vrei sa gasesti interni/studenti/mana de lucru ieftina dar sa ai si multi oameni cu experienta sa ii ghideze, vrei cel mai bun IDE posibil, atunci dezvolti ceva cu Java/C#/Kotlin/Scala.
Daca lucrezi pe front-end, vrei graphql, websockets, stream-uri, microservicii, lambda functions si nu vrei sa te duci pe ceva ultra complex cu Java, atunci folosesti Node/Go.
Daca vrei sa schimbi lumea pe backend, sa ai cat mai putine bug-uri/probleme in productie, atunci Elixir/Rust sunt optiuni exotice.
Daca ai deaface cu scraping/AI/cercetare/iti trebuie python atunci folosesti python si pe backend.
Daca vrei sa fii mai smecher ca toti ceilalti folosesti MuleSoft, AutoCode,GraphQL-Mesh, Firebase, solutii open-source la firebase ca sa scapi de backend oarecum.
Daca esti sarac lipit si iti trebuie ceva aplicatie rapid pe telefon folosesti wordpress cu plugin-uri ca si backend si iei datele din el cu graphql/rest pe react native/flutter cu ceva componente de pe net. (dar asta nu inseamna ca faci php pe backend)

Dar daca trebuie sa inveti azi php ca sa poti lucra la un proiect (deschizi un magazin online sau faci ERP/stoc la un depozit cu pimcore, magento, woocommerce…), e o intrebare foarte buna daca se merita. Daca nu te angajeaza de pe acest forum cineva ca sa faci exact acest lucru eu zic clar nu. Nici ca primul limbaj nu e o idee buna, e o lume in care iei o solutie, mai adaugi ceva la ea si din asta consta programarea. In PHP niciodata n-am simtit ca trebuie sa scriu eu ceva de la 0 si de aici apare spaghetti code. Am simtit in schimb ce inseamna sa te uiti zile in sir fara un IDE bun la cod intr-o versiune veche de Magento ca sa adaugi un buton pentru emag marketplace si nici vorba de refacturare/upgrade/solutie gata facuta ca n-are bani clientul. E foarte ieftin sa iei o solutie gata facuta, dar dupa e distractie sa o extinzi. In schimb cand nu ai nimic, iei ce iti trebuie, faci ce iti trebuie si stii codul, stii unde sa mai adaugi ceva cand trebuie fara sa dezvolti pluginuri/extensii care se pot bate cap in cap cu alte extensii/plugin-uri.

In Java/C#/Kotlin iar nu trebuie sa faci tu multe de la 0, dar IDE-ul e exceptional, autocomplete-ul si rularea testelor si build sistem-ul isi face toti banii la proiecte mari, si lucrezi direct la un endpoint/API sa zicem, nu la o extensie la o platforma. La PHP chiar daca ai ceva similar sigur nu e gratuit.