PHP vs Javascript (NodeJS) - Care e mai bun?

nu mai bine-i spui lu nenea ala rau care ti-a spus ca php-ul e incet si invechit sa vina aici sa argumenteze el? ca tu nu prea poti. probabil te gandeai la altceva cand ti-a spus. sau erai obosit, iti trecuse ora de nani.

Am presupus ca nodejs e mai rapid, acceptand argumentul haterilor, si avand in vedere ca PHP-NG a dat niste rezultate extraordinar de bune la partea de optimizare.

da eu nu ma iau la bataie cu nimeni. eu chiar vreau ca @tachyean sa-mi spuna de ce php-ul e un limbaj invechit

Nu am spus ca e invechit, am spus ca este limitat fata de alte limbaje cu care poti face si altceva, nu numai web si mananca si foarte multa memorie.

Uite si un benchmark sunt sute pe google … http://raid6.com.au/~onlyjob/posts/arena/

Offtopic ca sa nu ajung la procese de 100 Mb ma mai inspir de aici cateodata: http://we-love-php.blogspot.ro/

Benchmarkul ala e din 2012. S-au mai imbunatatit lucrurile.

Uite ce zice lumea de php-ng (acum php 7 daca nu ma insel).

In 2 ani de zile se mai si avanseaza.

Benchmark-urile aleatorii sunt putin greu de digerat daca nu intelegi exact ce piese se pun in miscare, poti ajunge la o concluzie eronata destul de usor.

PHP vs Node.js fara context nu cred ca are relevanta. Daca php este suficient pt. nevoile voastre, inteleg de ce sunteti reticenti la o schimbare.

Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

JS s-a extins destul de mult in ultimii ani datorita web-ului, acum avem posibilitatea sa programam si hardware (tessel.io, cylon.js, johnny-five, ninjablocks, nodecopter, etc).

Cat despre node.js, principalele argumente ar fi “non-blocking I/O” si “event driven”, daca dezvoltati site-uri care ruleaza pe o singura masina fara nevoie de resurse prea mari, nu cred ca vor avea prea mult sens argumentele.

Plusuri pe care le consider peste php:

  • npm si sistemul de module (locale / globale)
  • comunitatea - mult mai solida decat php, este putin mai dificil pana incepi sa intelegi unde sa cauti, dar dupa este mult mai simplu sa lucrezi decat in php
  • foarte multe module utile publicate in npm (grunt, bower, etc)
  • se experimenteaza mult, apar destul de des noi solutii pt. anumite probleme
  • posibilitatea extinsa de a gasi un job / proiect interesant: apps / extensions (browser), services (node.js), apps (hardware)

Pt. incepatori este intradevar dificil sa alegi de unde sa incepi, mai ales ca ai nevoie sa intelegi ideea de “event driven”.

3 Likes

asa, ca fapt divers, esti constient ca multi care-s aici ar putea trece pe node fara nici o problema? nu-i ca si cum ar trebui sa invete un limbaj nou.

2 Likes

npm si sistemul de module (locale / globale)

Conceptual vorbind, Composer și PEAR sunt (oarecum) echivalente.

foarte multe module utile publicate in npm (grunt, bower, etc)

Probabil cel puțin la fel de multe clase publicate în cei 15 ani de PHP. Într-adevăr, este o problemă, deoarece nu sunt într-un repo central (Composer & co).

posibilitatea extinsa de a gasi un job / proiect interesant: apps / extensions (browser), services (node.js), apps (hardware)

În sfârșit un argument bun!

1 Like
Plusuri pe care le consider peste php:
   * npm si sistemul de module (locale / globale)

Am intalnit de vreo trei ori situatia in care un pachet npm a devenit inutilizabil din cauza:

  • modificari care stricau backwards compatibility chiar daca era vorba de un minor release
  • o dependinta a unui pachet (pachetul principal era la aceeasi versiune) a facut o modificare de genul asta
    In momentul de fata folosim shrinkwrap pentru a evita problemele de mai sus.

De asemenea miror-ul principal de pachete mai dadea rateuri din cand in cand - aici se recomanda folosirea de miror-uri.

1 Like

@pghoratiu problemele mentionate de tine, nu tin de NPM sau sistemul de module, ci mai de graba de modul in care au fost folosite

@iamntz PEAR este putin altceva, iar composer este oarecum un echivalent, dar a fost dezvoltat dupa ce a aparut NPM. Intrebarea este, cat de des folositi composer / PEAR si unde cautati module / clase?

@alescx cand am spus “pt. incepatori” m-am referit la incepatori, cum te consideri nu tine de mine. “fara nici o problema”, eu am intampinat destule probleme la inceput, in special cu streams, process.nextTick si child processes. Concepte pe care nu le folosisem in php

Și npm a fost dezvoltat după bundle. Relevanța fiind… care?

Depinde foarte mult de proiect și de ce folosesc în respectivul proiect. De ceva timp folosesc composer pentru management-ul plugin-urilor de WordPress.

La fel cum există npmjs există și Packagist (și chiar WordPress Packagist). Posibil să fie mai multe pachete disponibile în npm, dar, așa cum ai zis și tu: a fost dezvoltat înainte de composer :wink:

Ce n-a pomenit nimeni e ca:

  • node.js tine loc si de server http si / sau de 1, 2, 3 … x socket servere in acelasi timp si se si poate descura cu ele in paralel din cauza faptului ca este event driven ceea ce scoate din schema apache / nginx
  • se poate folosii ca realtime STUN / TURN server pentru WebRTC ca tot e la moda p2p-ul
  • se poate face de asemenea streaming de orice tip de date tot prin socket: binary pentru audio / video, text pentru SPA, jocuri, chat, notificari, statistici …
  • faptul ca scrii in acelasi limbaj si frontend si backend (poti sa faci share de cod intre cele 2)
  • javascript iti ofera mult mai multa libertate si cu versiunea 6 o sa ofere si mai mult control lucruri pe care PHP nu cred ca o sa le atinga prea curand
1 Like

Adică un fel de Jack of all trades, master of none? :smiley:

Sunt curios câți dintre membrii devforum scriu aplicații și câți fac site-uri. Pentru că e destul de posibil ca acest avantaj să însemne cam nimic. Pentru că OK, refolosesc eu codul, dar într-un site, pe frontend am nevoie de JS pentru a ascunde/afișa diverse elemente, mici animații, sortable etc.

Da, Node știe să facă stream, știe de socket, e foarte bun pentru X sau Y, dar… ai nevoie de toate astea?

Pe de altă parte, ar putea fi un avantaj faptul că nu trebuie să tot schimbi mindset-uri (nici nu vreau să spun de câte ori nu am încercat concatenarea cu + în php sau cu . în js…)

Javascript, săracul, e abia la versiunea 1.x. ECMAScript, pe de altă parte, ajunge la 6 :smile:

1 Like

sa faci site-uri in node e ca si cum ai taia paine cu toporul.
e ok pentru servicii si aplicatii. suge grav daca vrei sa scuipi html intr-un browser.
si sa nu uitam ca javascript e incet. mult mai incet decat php-ul.

ps: tot ce-ai enumumerat acolo se poate face si in php.

1 Like

@iamntz

Am uitat ca pe Devforum se discuta numai chestii de web … cu toate ca numele nu sugereaza lucrul asta :slight_smile: Cat despre socket-uri si stream-uri si nevoia de a le folosii, da ai nevoie de ele dar nu in cazul in care vrei doar sa servesti pagini statice cu continut si in cazul asta titlul acestui topic nu cred ca este corect. Poate ca ar fi trebuit reformulat in “PHP vs nodejs - care este cel mai bun pentru construirea unui site clasic”. Din pacate web-ul o ia in directia asta si sunt sigur ca o sa fi nevoit sa le folosesti mai devreme si nu chiar atat de tarziu.

Nu este chiar “Jack of all trades, master of none”, serverul de http din el este mult mai light si foarte rapid cu toate ca JS-ul este mai lent (vezi benchmark-uri … cu toate ca nici astea nu sunt relevante dupa parerea celor de aici). Este adevarat ca un alt server http specializat se poate configura in x-shpe feluri si are la randul lui n module dar tocmai din cauza merge mai incet decat un server simplu ca cel din node. Si da stiu ca si PHP-ul se poate transforma in server http dar la fel de usor (cu siguranta trebuie sa ajungi sa lucrezi cu fork ca sa poti procesa in paralel multe requesturi ceea ce este mai complicat dar nu imposibil din experienta mea).

Chiar si la versiunea la care e tot este un limbaj mai dinamic decat PHP-ul.

@alescx

Stiu ca se pot face si in PHP toate lucrurile enumerate de mine dar cu cate eforturi?

Uite cateva nume care folosesc node: Myspace, Linkedin, Ebay, Microsoft, Paypal, Yahoo …poti sa vezi si aici: http://nodejs.org/industry/ .

Normal ca o sa-mi poti da de sute ori mai multe exemple de site-uri care folosesc PHP dar hai sa il luam pe unul dintre cele mai mari, adica Facebook.

In incercarea lor de a supravietuii cu PHP au facut “HipHop pentru PHP” dupa care s-au apucat de “Hack” si cine stie ce o sa mai incerce ca sa il stoarca de performanta, pe de alta parte cam toti care folosesc nodejs se lauda ca il folosesc cu toate ca e lent asa cum e el … ma intreb de ce :expressionless:

Nu te obliga nimeni sa folosesti ceva nou dar de ce sa il arunci la gunoi si sa nu ii recunosti punctele forte alt limbaj, Nu inteleg logica asta. De ce discutiile astea nu pot fii constructive si sa invatam cum se pot face lucrurile si in alte feluri? De ce trebuie sa se faca flame? Nu e ca si cum dispare PHP-ul de maine din cauza unei discutii pe un forum … FFS

1 Like

tot spui ceva nou…
te-ai gandit vreodata ca l-am folosit de n ori?

ps: myspace are cat? 2-3 vizitatori/an?
ps2: ai observat vreodata ca facebook-ul merge greu serverside?
ps3: paypal si ebay se misca ca melcul

Din ceea ce ai scris pana acum nu a rezultat neaparat lucrul ca l-ai folosit foarte des. In cazul asta ma bucur ca nu vorbesc cu un hater :smile:

Eu unul intru pe forumul asta sa invat nu sa ma cert iar in usecase-ul meu node.js mi-a fost de mare ajutor spre deosebire de PHP pe care inca il folosesc zilnic.

Oricum comparatia PHP / Node mi se pare una nepotrivita, cu toate ca se aseamana sunt diferite si fiecare este bun pe nisa lui …

1 Like

Stai putin, paypal se lauda ca foloseste node iar Facebook nu? Sa-ti reamintesc cine a donat specs-urile pentru PHP?
Facebook este chiar foarte activ in comunitate, iar Hack este o reactie normala pentru o corporatie. Vezi Golang, Angular.

Am folosit forks in PHP acum 2 zile, timp de o saptamana fara sa intampin nici o problema. Care este problema fork-urilor?

Daca vrei real-time poti urma modelul Github, Mailchimp utilizand http://pusher.com/, efort = 0.

Singura problema cu PHP mi se pare ca sunt ws-urile, care n-au suport oficial.

Anyway, uite un integration test frumos https://github.com/jdutheil/nodePHP :))

daca ws inseamna web sockets:
http://socketo.me/

Da, dar ala nu e suport oficial. Iar documentatia e cine stie ce, ii poate provoca ceva durere unuia care o foloseste pentru prima data, fata de pusher.

Dar, dupa prima folosire lucrurile merg ca unse. Iar efortul e mult mai mic decat a folosi un framewo-language.

Prin singura problema m-am referit singura chestie care ar putea fi o problema, nu una care chiar este o problema :slight_smile: