PHP vs JAVA pe partea de backend

Salut,
Ce ar fi mai rentabil de folosit pentru un site(PHP sau JAVA), avind ca tinta domeniul guvernamental, sa poata dirija foarte bine DB, sa genereze rapoarte, excel-uri. Ca prioritati ar fi: viteza de executie, citire scriere in DB, si nu in ultimul rand simplitatea de utilizare a aplicatiei.
Multumesc

Rentabil e PHP pentru ca developerii sunt mai ieftini si dezvoltarea mai rapida.
Ca viteza de executie, clar Java.

Ca securitate, Java.

Plus ca e foarte probabil daca tinta e domeniul guvernamental sa aiba niste reguli (ca bancile, sa spunem) pe care PHP nu le poate respecta, dar Java da (ca prim exemplu e faptul ca in PHP folosesti sursele direct, spre deosebire binare la Java s.a.m.d.). Daca vrei sa joci safe, dar cu niste costuri mai mari (in general asta nefiind o problema tocmai “datorita” domeniului) si fara riscul ca PHP sa nu fie compliant, alege Java.

2 Likes

PHP e conceput pentru asta, Java e conceput pentru altceva.
Respectiv, php are multe functii, built-in, care sunt foarte utile in dezvoltarea unui site, si care, nu cred ca exista pe java. Cateva exemple: htmlentities(), number_format(), parse_url(), strip_tags(), explode(), curl…
Ca sa nu mai zic ca exista o gramada clase in PHP, in lucrul cu PDF-urile, XLS-urile… , ceea ce mi se par foarte utile pe nisa voastra.

1 Like

PHP.
De cand este securitatea un language feature al Java? Daca scrii clase cu picioarele nu conteaza ca e Java, PHP sau Brainfuck. PHP-ul modern a rezolvat demult problemele de securitate pe care companiile ce utilizeaza Java pentru dezvoltare le folosesc ca argument impotriva PHP.

Java doar in teorie e mai rapid ca PHP. Pentru specificatiile pe care le ai descris mai sus, cu siguranta PHP ar fi mai rapid deoarece ar consuma mai putine resurse.

Inca o observatie…Domeniul guvernamental tinde sa favorizeze proiectele scrise in limbaje “enterprisey”.
Daca vrei sa ai mai putine dureri de cap, sa elimini reprosuri ulterioare alte unor anumiti responsabili, poate ar trebui sa consideri Java, desi poate ca delivery, timpul ar creste de cateva ori.

2 Likes

Referitor la „ce să aleg”: eu aș merge pe limbajul pe care îl cunosc mai bine.


Referitor la „Java e mai rapid”:

Nu am avut de-a face cu Java pe server (și nici nu am scris Java dincolo de hello world), dar nu am văzut nici măcar o singură aplicație desktop ce nu lasă acea senzație de… java.

Atât de mult să afecteze UI performanța?


“Knock, knock.”
“Who’s there?”
very long pause….
“Java.”

3 Likes

Ceva nu e in regula cu comparatia asta PHP vs JAVA, imi pare ca se compara mere cu pere. Ar trebui comparat PHP cu JSP, nu-i asa ?

Released in 1999 by Sun Microsystems, JSP is similar to PHP, but it uses the Java programming language.

@iamntz este o problema veche acel start up pana si eu evit JRuby tocmai pt. ca in dev mode dureza pana se incarca in anumite cazuri spre deosebire de MRI care este instant in comparatie.

In orice caz exista si solutii: https://github.com/jruby/jruby/wiki/Improving-startup-time mai mult de jumatate sunt aplicabile pe usual Java apps nu neaparat JRuby.

@atufa cred ca mai bine comparam ce se poate face in ele

@tacheshun exista si un middlepoint la aplicatii enterprisey: Spring

Deasemenea dau un + la Java pentru securitate si ma refer la librariile mature, bineinteles ca daca esti un dorknout si lasi gauri peste tot totul devine irelevant.

1 Like

phpstorm este in java

1 Like

oricine poate simti ca phpstorm este in java.

3 Likes

@GarryOne, faci o mare greseala. PHP a inceput ca o colectie de functii pentru web, da, dar nu ignora Java doar pentru ca tu nu cunosti limbajul. Cam orice aplicatie enterprise serioasa (web) e fie Java, fie .NET.

@tacheshun, securitatea in Java e simplu de demonstrat: nu tii surse pe server. Sa continui?

Java doar in teorie e mai rapid ca PHP.

Tu vorbesti serios? Ai scris vreodata macar un “Hello world” in Java? :smiley: Compari unul din cele mai slow limbaje cu unul din cele mai rapide - si ca sa-ti dau un hint, Java e inclus in multimea ‘unul din cele mai rapide’. (Evident, ma refer la limbaje comune pentru web, nu generally speaking - ca asa clar assembler e mult mai rapid).
Ca idee, incearca sa nu mai compari un limbaj interpretat pentru ca iti pierzi timpul degeaba.
Ca sa tragi rapid o concluzie o sa-ti spun ca referitor la limbaj, Java e in medie de 40-50 de ori mai rapid ca PHP in orice ai face cu el. Te invit sa testezi singur lucrul asta, nu e foarte greu.

@iamntz: Gluma cu very long pause... Java e o chestie veche si facuta de oameni care scriu C/C++ unde inca mai au suplimente de viteza datoria limbajului mai low level decat Java. Dar in zilele noastre Java e un limbaj foarte rapid - motiv si pentru care exista o gramada de limbaje care functioneaza in JVM (Java Virtual Machine that is).


Rugaminti:

  1. Nu mai comparati mere cu pere.
  2. Nu mai dati sfaturi din perceptia voastra daca nu ati incercat macar sa va documentati in ceea ce priveste limbajele comparate, nu faceti decat sa-i incurcati pe altii
  3. Incercati sa iesiti din zona de confort care zice eu stiu doar X, deci X trebuie sa fie cel mai bun. Rareori X e cel mai bun - nici un limbaj nu e “cel mai bun”; poate e cel mai bun la multithreading, cel mai bun la I/O, cel mai bun la learning curve, cel mai bun la documentatie, cel mai bun la comunitate, cel mai bun la extensii, dar asta nu-l face cel mai bun la ce imi trebuie mie.
  4. Developerul are un toolbox. Puneti cat de multe lucruri puteti in acest toolbox, iar cand e cazul sa faceti X, luati tool-ul potrivit! Va rog sa nu-mi spuneti ca mergeti la taiat copaci cu surubelnita ca doar pe asta stiti s-o folositi!

Cam astea ar fi rugamintile mele pentru toti cei care ati postat aici - hai sa gandim logic, sa dam sfaturi pertinente si sa invatam la randul nostru.

7 Likes

Topicul asta o sa fie foarte controversat (a se vedea bataliile linux vs windows, php vs orice alt limbaj… etc)

Din experienta, eu recomand sa se studieze cerintele impuse de client, a se vedea solutiile pe care deja lucreaza/le foloseste in cadrul firmei respective si apoi sa se calculeze costurile de dezvoltare/intretinere/testare pe termen lung bazate pe diferite platforme/limbaje
Programatori php gasesti mai repede decat programatori java, java in ansamblu necesita niste costuri putin mai mari pe termen lung decat pe php.
Fiecare limbaj are avantajele si dezavantajele lui, nu trebuie sa incepi sa te gandesti ca prefer limbajul x ca il cunosc, ci incearca sa analizezi treburile in ansamblu, este nevoie de limbajul ala sau celalalt, ce costuri implica fiecare, cum se poate intretine pe terment lung, ce suport exista pentru acel limbaj, etc… doar asa vei primit un raspuns realist la intrebarea ta.
Pe de alta parte, java e gandit special pentru cerintele clientului sau va fi nevoie sa fie combinat si cu alte limbaje? La fel si pentru php… Care sunt costurile pentru echipament hardware pentru limbajul x si pentru limbajul y? Dar costurile pentru sofware? Dar costurile pentru intretinere/administrare/dezvoltare?

eu m-am abtinut pana acum, da ce sfaturi pertinente poti da unuia care intreaba in ce sa faca o aplicatie? sunt 90% sigur ca nu stapaneste nici php nici java. sfatul meu ar fi sa renunte la proiect. sa lase loc unora care chiar se pricep la asta.

2 Likes

De fapt nici nu stim la ce s-a referit omul cand a intrebat de Java pentru un site (deci nu desktop). Poate ca s-a gandit la scripturi JSP, appleturi Java sau… poate chiar Javascript-ul din browser.

Bogdan, care ar fi varianta optima de utilizat Java pentru un site web ?

Eu as merge pe Play Framework pentru ca e mai ‘hip’ si pentru ca e destul de usor de invatat (fiind un MVC simplist). Dar, nonetheless, asta e parerea mea, plus ca nu stiu exact cerintele proiectului. Pentru o aplicatie enterprise nu foarte complicata, la care cerintele n-ar fi tocmai SF, eu as incepe cu Play (bineinteles, asta daca concluzia ca Java se preteaza la proiect == true)

La fel de usor as putea spune ca daca Java nu e in esenta o cerinta, m-as duce chiar catre Play - versiunea Scala, pentru ca e mai putin verbose.


Daca proiectul este desktop (desi ma indoiesc), PHP nici macar n-ar fi existat in lista pentru ca stim cu totii ca PHP nu a fost facut pentru asa ceva iar incercarile vechi de phpGtk au demonstrat asta


PS: Play e comparabil (sau putin mai bun) ca viteza comparat cu o aplicatie in Node.js, fara riscurile pe care Node le pune pe masa. Mai multe detalii aici. Ca fun fact, am facut niste teste cu Play si sincer va spun ca daca se iveste ocazia o sa-l folosesc fara nici o ezitare, e un MVC curat, testat, stabil si freaking fast.

2 Likes

din ce stiu eu, browserele stiu sa ruleze java doar ca aplet, altfel e doar un script descarcabil si rulabil in pc pe baza jvm.
pe parte de server la fel, ai nevoie de java + ceva limbaje client side gandite pentru browser/mobile.
deci doar java simplu nu cred ca se poate (din experienta mea), sau daca se poate nu va iesi ceva frumos.

Nu stapaneste nici una din ele, e adevarat, dar nu el va fi project manager-ul si nici owner-ul proiectului.

1 Like

Nu s-a referit la Javascript.
Aplicatia va fi una de management in cadrul firmelor, deci va fi destul de complexa.

1 Like

@GarryOne Daca ai mai multe detalii despre aplicatie e bine sa le spui pentru a primi recomandari la obiect. Daca tot spui ca va fi complexa, ce baza de date se va folosi ?

si atunci de ce nu hotaraste pm-ul ce limbaj sa foloseasca?

Ca e dispus si el, la idei si sfaturi.
In fine, se deviaza de la subiect. Nu cred ca ar trebui sa fie intrebarea: “De ce nu hotaraste PM-ul”, ci sa aducem pareri pro si contra la subiectul initial.