PHP vs JS. Ce sa abandonez si ce sa aprofundez?

Cunostintele mele sunt bune in php si mediocre in js, dar simt ca trebuie sa renunt la php si sa aprofundez js, inlocuind php cu node js. Credeti ca fac o greseala?

3 Likes

Man, limbajele de programare sunt niste unelte, atata timp cat tu consideri ca X, Y, Z sunt uneltele potrivite pentru proiectele tale e ok, oricum nu te impiedica nimeni sa experiementezi si sa folosesti mai multe in functie de proiect, de context, de nevoi, etc.

3 Likes

Bănuiesc ca pe lângă node ai vrea sa te apuci și de un framework pentru frontend, gen Angular sau React. Cred ca cel mai ușor ti’ar fi sa urmezi un curs de pe udemy, după care sa încerci sa convertești o aplicatie simpla la care ai lucrat, din php în node/react.

Node, C#/.Net Core, Java sunt tehnologii la mare căutare, oricare merita timpul investit.

Am prea puține cunoștințe de programare ca să dau sfaturi, dar eu cred ca dacă începi sa’ti pui întrebări și sa nu mai lucrezi cu entuziasm cu o anumita tehnologie, e nevoie de ceva nou.

1 Like

Pe frontend folosesc VueJs. Limbajele de programare or fi unelte, dar familiarizarea cu sintaxa fiecarui limbaj de programare dureaza, plus ca este o diferenta mare intre, de exemplu, C si Js, nu poti trece usor de la js la c, dar invers da. Consider ca pt a ajunge la un nivel avansat e nevoie si de a studia in profunzime un limbaj de programare.

1 Like

php sa imbunatit foarte mult ca tehnologie, may degraba as zice python

2 Likes

de ce crezi ca daca ai face ceva in node ar fi mai eficient decat php sau altceva?

2 Likes

Nu cred neaparat ca ar fi mai eficient, dar pare mai eficient/rapid si mai aproape de OS, de mașină, se simte ca python, e usor de folosit la embedded systems. Plus că simt ca și cum PHP a îmbătrânit, frumos sau nu, dar nu prea mai este susținut așa cum este JS.

1 Like

ai punctat bine. e mai bun “in unele cazuri”.
dar esti / vrei sa fii in acele cazuri? daca da, e miscarea fireasca pe care ai intuit-o deja (pornind acest thread) si ar fi de preferat sa o faci

1 Like

Vrei sa te angajezi? Sau vrei sa iei niste proiecte freelance? Sau vrei deocamdata doar sa inveti si pe viitor vei lua o decizie gen angajat sau freelancer sau srl, etc.

Daca vrei sa te angajezi, eu…in locul tau…as cauta joburi pe linkedin.

  1. Nodejs in Romania, 292 rezultate la data scrierii acestui post
  2. PHP in Romania, 610 rezultate la data scrierii acestui post.

Sau pe Bestjobs… ponderea este de 109 la 28.

Cat de relevante sunt aceste cautari? pai arata nevoia din piata a companiilor. Bineinteles nu 100%. Dar probabilitatea este mult mai mare sa gasesti un job cu php in conditiile astea.

Node e misto, e in trend, si mai mult ca sigur o sa creasca si mai mult in perioada urmatoare. Dar daca vrei sa iti gasesti un job repede, cred ca PHP e un safe bet chiar si in 2020. Sunt multe aplicatii de intretinut. Mari, mici, nu conteaza. Ce conteaza este ca sunt oameni dispusi sa plateasca pentru asta. Cu timpul vei capata experienta, vei invata si alte limbaje mai in trend si poate vei dori sa faci altceva.

Daca vrei sa te angajezi in Romania in 2020 iti recomand PHP. Daca vrei sa fii freelancer, probabil node e mai ok dar eu nu sunt freelancer so…

Personal as incepe cu PHP pentru ca avem nevoie cu totii sa platim chirii, facturi, etc si as invata si node. Si dupa 1-2-3 ani re-evalueaza situatia.

3 Likes

Invata structuri de date, algoritmi, design patterns (gang of four) si arunca o privire spre programare functionala. (JS/Java asa e elegant si frumos)

Eu n-as pune mana pe PHP (din nou, l-am folosit destul cand am inceput sa invat) din pricina programarii functionale. (foreach/map/reduce/filter/find…)
.
In opinia mea TypeScript e mult mult mai fain* ca si limbaj pentru web development/testare/frontend/backend/jocuri etc. dupa ce te-ai obisnuit cu el. JavaScript iarasi e mai fain* ca php dar toti cei care am avut un proiect mai mare cu JS ne-am dat seama ca e o prostie/neprofesional sa nu folosesti static type checking. (exceptie cand singurul scop al tau in development e sa ai live-reload cat mai rapid)
Ceea ce putina lume stie e ca JS poate avea tipuri cu TypeScript si din comentarii JSDoc, adica poti folosi TS din IDE fara sa folosesti TS in proiect pastrand performanta fara recompilare, dar mentinand si avantajul la autocomplete si erorile gasite de IDE.

Acum daca ar fi sa ne tragem din invatatura comunitatii de JS, putem sa ne uitam si la PHP si sa zicem ca exista aceeasi problema, doar ca nu e rezolvata. (solutia e sa treci pe un limbaj ca si golang/C#/C++/Java…, NodeJS cu TypeScript o sa zic ca e putin mai ciudat si greu de inteles daca vii de la PHP)
De ce e o problema ? Nu e o problema daca ai numai programatori cu experienta pe acelasi proiect timp de 10 ani, realitatea e ca nimeni nu sta 10 ani pe acelasi proiect. Pleaca cine a scris programul si apoi da-ti seama de tipuri la un api mai complicat, in special daca n-ai nici unit teste. Modifici/extinzi ceva simplu si se duce tot tacamul in productie de la o structura de date care nu se potriveste.

** Prin fain ma refer ca ai tooling, suport, documentatie, API-uri mult mai elegante. (foarte similare cu ce exista In C#/Java)

6 Likes

Daca stii PHP, invata Laravel la un nivel cat mai bun (stiu ca sunt multe carti pe subiect). Apoi invata vue.

Daca ti se pare Javascript ca limbaj mai placut, atunci da, mergi cu node.js, react, GraphQL etc.

Stii ca mai nou PHP este typed aproape peste tot (argumente, return, propreties etc)?

Multora le place sa arunce cu noroi in PHP, mai ales persoane care nu l-au folosit sau l-au folosit acum multi ani, doar ca intre timp limbajul a crescut enorm. Iar unul dintre moticvul pentru care unii arunca cu noroi este si cel mai mare avantaj al PHP-ului, si nume flexibilitatea si simplitatea, ceea ce a permis multora sa intre in domeniu si sa creasca dar de asemenea a permis si multora sa faca multe tampenii.

9 Likes

Php este folosit dar js este mai de actualitate. După cum au zis și alte persoane, dacă vrei să fii la curent cu ultimele tehnologii, bagă js. Însă fiecare limbaj are caracteristicile lui și este potrivit pentru ceva anume.
Există și varianta Django dacă cumva vrei să lași o portiță deschisă backendului. Eu am cochetat cu frontend la început dar am ajuns la backend.
Pe mine m-au mai ajutat la această alegere și cerințele jobului pe care îl aveam la un moment dat.

1 Like

Good to know.

1 Like

nu vreau sa incep iarari un rant against nodejs. dar e inseamna mai aproape de masina?
sau se simte ca python, te referi ca poti pasa functii ca args?
php nu mise pare deloc imbatranit, din contra, cred ca aduce multe noutati.
fata de acum 15 ani cand am luat eu primul meu job ca junior developer, mi se pare ca este foarte mult zgomot cand se discuta de JS.
pare ca toata lumea in js descopera design pattern din 70 si le dau un nume nou.
//endrant

2 Likes

E adevărat ca, in termeni de posibilități de exprimare in cod, nu e mare diferență între TypeScript si ultima versiune de PHP.
As vedea totuși un ușor avantaj in favoarea js-ului pentru că îmi pare mai la îndemână sa forțezi o calitate a codului, folosind TSLint-ul versus PHP CodeSniffer/Mass Detector.
Poate de aia că TSLint-ul îți watch si compile la fiecare save, dar CodeSniffer-ul trebuie configurat/pornit separat. Eventual rulat la commit.
Plus, într-o firmă, mai e și faptul că poți migra mai ușor programatori de pe frontend către backend.

TSLint si Prettier iti ruleaza in timp real/save in VSCode/IntelliJ.

Eu din pacate nu mai cred in “Mos Craciun”. Poate sa fie adevarata fraza de mai sus la unele agentii care fac proiecte pe banda rulanta cu juniori, si asta o perioada (foarte) limitata de timp…dar eu nu prea m-am lovit de asa ceva. Defapt nu…chiar m-am lovit recent de un programator full-stack care (dupa spusele lui) nu a mai atins o baza de date de 3 ani…true story. Trageti singuri concluziile.

In alta ordine de idei, si chiar sper sa nu creez flame, PHP chiar are niste imbunatatiri masive in ultima perioada, atat ca limbaj cat si tooling, performanta dar si ecosistem.

Mentiune notabila pentru swoole si roadrunner

4 Likes

Pentru asta ai code review si un setu-up complet cu CI/CD care va rula teste si snifere si tot ce vrei. Un dev care face tampenii le poate face in orice limbaj si un linter nu il poate opri daca nu este integrat in workflow-ul de build/deploy

Da, dar ce incercam eu sa zic e ca pe JS, o parte din DevOps este transferata catre development. Cu TypeScript si TSLint codul ajunge gata “filtrat” pana a fi commit-uit pe git, deci pana a interveni CI/CD, ceea ce poate reprezenta un avantaj in unele situatii.

Intr-o alta ordine de idei, oare o fortare a OOP-ului in PHP (precum e in multe alte limbaje) credeti ca l-ar ajuta sau l-ar incurca, in momentul de fata? Asta ar fi marea diferenta dintre PHP si C#/Java/C++.
Intreb ipotetic, dar, personal, nu prea cred ca ar fi posibil asa ceva.