PHP vs alte limbaje

Tot observ ca sunt developeri noi care sunt indrumati sa aleaga PHP ca inca este “popuar” si se gasesc job-uri.

Nu mai este chiar popular: http://adambard.com/blog/top-github-languages-2014/

“think of programming languages as mobile platforms, let’s say Ruby is iOS, Node.js is Android and php is Windows Mobile, while all work, you need to choose the amount of garbage you want to intake”

Mi se pare destul de buna comparatia, php este ca Windows Mobile, functioneaza, oarecum popular, dar este o mizerie pt. nevoile care le avem acum.

Luand ca exemplu denumirea functiilor ‘standard string library’:

str_repeat()
strlen()
str_split()
str_word_count()
strrev()

Pt. incepatori nu este deloc intuitiv - ar fi o lista destul de lunga cu exemple, dar lasam doar unul care este eveident.

Inafara de Laravel, toate framework-urile scrise in php sunt niste mizerii comparativ cu framework-uri pt. alte limbaje.

Wordpress e o gluma proasta, dar e genul ala de gluma pe care o tot fac unii an de an si prinde, iar noi ca developeri, trebuie s-o inghitim pt. ca clientul se amuza.

Romania este plina de developeri in “Windows Mobile”, nu considerati ca este timpul sa evoluam, folosind alte sisteme?

1 Like

Cred ca cauti un flame aiurea. PHP e o mizerie, framework-urile sunt niste mizerii. Da, are niste dubiosenii PHP-ul, dar multe le-au rezolvat si nu-s asa majore. Poti trai cu ele. De la asta si pana la a-l cataloga mizerie, e cale lunga.

PHP e potent si cel mai important, e beginner friendly si easy to deploy. De aici si succesul pe care-l are.

8 Likes

Nu are legatura cu “flaming”, sunt putin frustrat din cauza calitatii scazute a proiectelor dezvoltate in Romania. Daca ati incercat sa discutati cu agentii din US / UK pt. outsource, poate intelegeti la ce ma refer.

Valoarea este data de context. In ce context este php potent, il comparam cu ceva?

Deploy daca te referi la copy / paste over FTP, corect, poate fi considerat “easy to deploy”, dar nu il consider un argument valid pt. a alege un limbaj de programare.

1 Like

Treaba cu deploy este foarte importantă inclusiv în procesul de învățare/dezvoltare.

Acum câțiva ani, când am încercat să învăț rails, știu că în anumite situații trebuia repornit serverul (cred că atunci când se adăuga un controller). Asta era „the rails way” recomandată în cărți și ghiduri!

2 Likes
  • am zis ca e potent pentru ca inca n-am gasit chestii care sa nu le pot face in PHP si sa fie necesar alt limbaj. Pentru 98% din ce e pe web, PHP se descurca.

  • easy to deploy pentru ca dat un calculator cu un windows normal, timpul in care esti gata sa scrii cod si sa vezi un rezultat in browser este minim. Doar Javascriptul e mai rapid de setat, pentru ca vine default.

  • calitatea scazuta a codului este data mai mult de preturile mici la care se lucreaza, nu musai de limbajul ales, poti sa scrii cod de cacat in orice limbaj.

5 Likes

Desigur, putem filozofa despre “ce frumos este un limbaj si ce urat este altul” dar pana la urma piata valideaza un limbaj sau altul. Mai pe scurt “teoria ca teoria, dar practica ne omoara”. :wink:

Pana una alta daca cumperi gazduire oricat de prapadita gasesti by default preinstalat PHP, Perl si MySQL. Multi zic ca MySQL este “o mizerie” dar ce sa fac, sa pun server Oracle pentru cateva pagini pe web ?

Cand nu ne place un limbaj larg utilizat mai bine sa ne intrebam daca nu cumva nu-l intelegem noi decat sa aruncam cu pietre in el. Personal nu prea imi place Javascript, dar de nevoie il folosesc si imi propun sa-l invat mai bine din moment ce este pe crestere.

Foarte interesanta patania de mai jos, cu schimbarea PHP, vorba americanului “If it works don’t fix it”:
7 reasons I switched back to PHP after 2 years on Rails

Daca poti detalia, nu cred ca e specific pentru Romania, ai vazut cumva proiecte dezvoltate in India ? :wink:

1 Like

Tipul s-a apucat de Ruby in 2005 si a renuntat in 2007… destul de irelevant pt. 2014 si motivele lui sunt subiective.

Am vazut proiecte dezvoltate in India si surprinzator, de vreo luna de cand caut developeri pt. cateva proiecte, am observat ca ne apropiem mai mult de calitatea oferita de India decat de cea oferita de Germania.

La mine problema se prezinta in felul urmator, caut developeri pt. aplicatii web (single page apps), cand gasesc pe cineva interesat daca poate prezenta proiecte pe care le-a dezvoltat sau ceva open source le trimit agentiilor pt. code quality / review, daca ei il accepta, il pot considera ca membru in echipa pt. ofertele de outsource venite din partea lor.

Verificarea aceasta vine din neincrederea lor in calitatea oferita de romani, din experientele neplacute pe care le-au avut anterior.

1 Like

Am vazut cod german, scris in germana, cu variabilele in germana, numele claselor in germana. Nu vrei sa stii cat de lung e un nume de clasa scris in germana. Generalizezi si asta nu e niciodata ok.

6 Likes

Ai dreptate ca generalizez si poate fi interpretat ca fiind ofensiv, nu o fac cu rea intentie.

Nu stiu cum pot sa exprim urmatoarea intrebare fara sa sune ofensiv: “De ce in Romania este foarte greu sa gasesti developeri in golang, node.js, erlang, etc? De ce programatorii nu prefera sa invete siteme noi?”

Daca aceste limbaje sunt adoptate de companii din domeniu, de cativa ani deja, de ce noua ne este atat de greu sa facem o schimbare?

2 Likes

ca utilizator de windows mobile pot sa-ti spun ca ma simt jignit. faptul ca tu n-ai habar sa stapanesti un os nu inseamna ca cei care-l folosesc sunt prosti. de fapt s-ar putea sa fie invers. nu chiar toti acceptam idiot friendly.

serios? am avut clienti din anglia/germania/sua/australia/japonia. destule chiar. si foarte multe erau scrise cu picioarele.

1 Like

Aveti grija, va apropiati incet dar sigur de insulte personale. Eu in thread-uri de genul asta nu ma bag din principiu, dar daca incepeti sa va porcaiti o sa incep sa sterg.

Si ca sa nu fiu total offtopic, va las cu o filozofie foarte buna de viata, care pentru mine e una din regulile de aur in contrazisul pe internet:

You can’t reason someone out of a position they didn’t reason themselves into.

4 Likes

Tind sa cred ca motivul este legat de faptul ca foarte multi dintre ei fie sunt foarte ocupati si nu-i intereseaza proiecte / colaborari noi, fie sunt deja plecati in alte parti unde munca le este platita mult mai bine decat aici.

Putin pe langa subiect: din cate am citit (exemplu), Romania este unul din locurile preferate pentru IT outsourcing, tocmai pentru nivelul foarte inalt al calitatii livrate.

1 Like

@iamntz doar cand schimbi configurarile trebuie sa restartezi. nu cand creezi un controller :slight_smile:
@atufa apoi s-a intors iar la rails.
PHP, mi se pare interesant, usor, dar este o lume haotica in limbaj. :expressionless:

1 Like

Companiile cer PHP.
PHP-ul inca conduce detasat in materie de oferte de munca, cel putin in Romania. Node.JS vine tare din spate, Java a crescut deasemenea. Dar PHP inca conduce cand vine vorba de oferte de munca, relativ bine platite si accesibile (ai sanse mai mari sa treci de un interviu pentru PHP, pentru ca cei care te vor evalua sunt destul de slab pregatiti in cele mai multe cazuri).
Github arata un trend descendent pentru PHP (nu stiu, PHP a fost vreodata pe primul loc?), si poate asta e directia in care merge dar piata, cel putin asta locala, inca nu a ajuns acolo.

2 Likes

Well. Framework-urile sunt frumoase, nu cred ca te-ai jucat destul cu Aura, nu te-ai uitat niciodata in codul micro-frameworkului Silex. Si n-ai survolat niciodata in HttpKernelu symfony.

Problema cu functiile o sa se rezolve o data cu 'php'->replace('p', 'v'). Este doar o chestie de timp, unde-i graba?

1 Like

@redecs cred ca php conduce din legacy reason :smile:

1 Like

Daca imi erau adresate mie, in legatura cu Silex si HttpKernel te inseli, am folosit Symfony 1 si am trecut prin lunga asteptare a release-ului pt. Symfony 2, de auraphp nu stiam.

N-am avut cel mai eficient mod de exprimare prin “mizerii”, sunt constient ca s-a depus mult efort in dezvoltarea framework-urilor, dar mi se pare ca nu se foloseste unealta potrivita.

Spre exmplu HttpKernel component este un layer peste php http functions peste apache / nginx http server.

Sa luam exemplul HttpKernel:

github.com/symfony/HttpKernel/blob/master/HttpCache/SurrogateInterface.php
github.com/symfony/HttpKernel/blob/master/HttpCache/EsiResponseCacheStrategy.php
github.com/symfony/HttpKernel/blob/master/Event/FinishRequestEvent.php
github.com/symfony/HttpKernel/blob/master/Fragment/FragmentRendererInterface.php
github.com/symfony/HttpKernel/blob/master/Controller/ControllerResolverInterface.php

Ce-i asta? Multe fisiere cu 5 linii de cod si 20 de comentarii, asta numim noi mod eficient de a programa?

Da, obiecte mici = obiecte testabile, vorba lui Jeffrey Way.

Iar ceea ce ai dat acolo, in mare parte, sunt contracte - interface. Ele sunt, atat teoretic cat si practic, fisiere foarte mici.
Contin doar definitia publica a unor clase care o vor implemenenta.
Si ai mai dat acolo un Event, care e doar o clasa goala, si o clasa deprecata(o sa fie scoasa in versiunea 3).

Nu este chiar un layer peste, pentru ca nu este o roata in plus la caruta.
Intr-o lume perfecta, PHP ar oferi pentru programatori un HttpKernel pentru cei mai OOP-isti din noi, care nu considera $_POST o solutie buna. Dar nu este o lume perfecta.

Ca toate package-urile stabile si mature, HttpKernel-ul symfony este mare. Ar trebui sa te faca fericit mai mult decat sa te supere.

5 Likes

PHP e un limbaj de programare foarte matur. Poti implementa orice algoritm fezabil pentru web. Singura lui limitare e ca e un limbaj facut doar pentru web, server side.
Probabil ca multi ani o sa ramana cel mai folosit, deoarece cu fiecare release, se imbunatateste din ce in ce mai mult. Ii lipsesc foarte putine lucruri. Poate Annotations ar prinde bine sa fie adaugate intr-o versiune viitoare. Dar ai toate elementele dintr-un limbaj de nivel inalt.
O slabiciune e ca pui pe server codul vizibil pentru toata lumea. Dupa ce faci o aplicatie, codul tau e vizibil si furabil, ca sa zic asa. Pe de alta parte, daca ai fost platit pe ce-ai scris, asta deja nu mai e o problema.

Problemele puse in carca PHP-ului sunt mai mult ale programatorilor fara experienta, decat ale limbajului. Iti da voie sa fii prost si multi sunt prosti. Dar asta e problema de utilizator, nu de platforma.

3 Likes

@ovidiu_dtp

Problemele nu apar din cauza limbajului sau a programatorului. Avantajale unui limbaj de programare vin din ecositemul sau. Tot din ecosistem pot veni si lipsurile.

De exemplu in php lipsesc componente enterprise mature, de la sisteme de autentificare, autorizare,orm,etc. Sunt cateva dar cu greu sunt utilizat. In java daca doresti autorizare granulara poti folosi Apache Shiro. In php?

Nu ma intelege gresit, lucrez in php, insa de multe ori simt ca in PHP trebuie mereu sa inventez propriile mele unelte.

1 Like