2010-02-05 13 views
5

So che è una domanda calda che ha bisogno di anwsers ^^ Dal mio punto di vista, utilizzando Java vs PHP, è al giorno d'oggi un problema di risorse di sistema (hardware, software, ecc.).Struts vs Zend? Java vs PHP?

Per Java, è necessario distribuire J2EE Stack (JDK, AppServer, ecc.) (~ 200M) sul server, per PHP è necessario distribuire un sistema LAMP (~ 100M). L'utilizzo di Java era a mio parere dovuto alla programmazione orientata agli oggetti nell'applicazione Web, ma oggi abbiamo un sacco di linguaggio Web Object Oriented (Ruby, Python, PHP).

Quindi la domanda in cui scegliere tra Java o PHP per i nuovi progetti? Forse la differenza della comunità?

So che lo stackoverflow non è fatto per la discussione, ma è una (buona?) Domanda che ha bisogno di risposte (forse per me e per gli altri) ^^.

risposta

7

Di solito vengono presi in considerazione altri vincoli. Cose come

  • i tempi di sviluppo,
  • costo mantenimento del codice di base
  • disponibilità di programmatori qualificati
  • costo di stipendio per i programmatori qualificati disponibili

per citarne alcuni.

L'hardware e il software sono economici se li si confronta con quelli sopra indicati, quindi tendono ad essere meno importanti.

+0

Sì, sono d'accordo con te, l'argomento dell'hardware era solo un esempio. – Zenithar

1

Dipende da cosa stai facendo. Scegliere una lingua/framework senza analizzare i requisiti del tuo progetto è una cattiva idea.

+0

Lo so, ma se un progetto è realizzabile con entrambe le tecnologie, quale scegli? e perché ? – Zenithar

1

La scelta di una lingua dipende da ciò che si vuole fare, ma sono molto sicuro che il diverso requisito di spazio su disco rigido sarà l'aspetto meno importante della vostra decisione.

Ecco un possibile suggerimento: Se si desidera riutilizzare il proprio lavoro (o parte di esso) in un'applicazione desktop, utilizzare Java. PHP è praticamente inesistente per tutto tranne la programmazione web.

0

Realmente non penso che sia una domanda che possa essere obiettivamente risposta. Alla fine si tratta di persone e di ciò con cui si sentono più a loro agio. Questo è il motivo per cui, ad es. Facebook ha sviluppato un PHP to C++ compiler (con il quale il vantaggio sulle prestazioni di Java potrebbe anche ridursi) invece di assumere solo sviluppatori C++ per fare il lavoro.

D'altra parte, la piattaforma Java offre alcuni nuovi approcci interessanti come Grails (che è fondamentalmente un Groovy Wrapper di Spring) e Lift, pure. Ciò rende lo sviluppo di Frontend più veloce e più facile (trovo ancora che questo sia un vero problema con Java normale) e puoi combinare i vantaggi che hanno gli altri linguaggi con il tuo codice base e competenza Java esistenti (la maggior parte dei Framework menzionati non hanno bisogno un ambiente di runtime J2EE una semplice installazione di Tomcat con circa 5M e un JRE installato dovrebbe essere sufficiente). Quindi non si tratta più solo del linguaggio di programmazione Java.

E se davvero non si può decidere in tutto basta eseguire PHP in Java (funziona anche per Ruby, Python, Javascript ...).

0

Non sono davvero d'accordo sul fatto che la scelta di una lingua sia correlata alle risorse di sistema.

L'hardware è economico e non siamo in un momento in cui è necessario esaminare da vicino le risorse di sistema come eravamo soliti avere. Non fraintendermi: abbiamo ancora bisogno di prestare attenzione, ma il tempo in cui le persone stavano saggiando i loro indicatori per salvare un po 'di spazio è finito (per fortuna).

E se la vostra preoccupazione principale è la prestazione, quindi l'esecuzione di una JVM o di una lingua interpretata non è probabilmente l'opzione migliore.

Non credo che sia correlato all'orientamento della lingua di per sé. Ok, lo so, PHP is not object oriented ma ancora, ora puoi codificare OO con esso. Troverai schemi web di discesa per quasi tutte le lingue.

Sono d'accordo con Jacco sulla sua lista.

Un altro aspetto è davvero la cultura a cui si riferisce la lingua.

PHP è per gli script kiddies. Java è per gli sviluppatori di business che indossano abiti seri. Naturalmente, abbiamo tutti molti esempi di contro, ma ancora. Java è stato in gran parte adottato da grandi aziende, ora in concorrenza con .Net. Ci sono buone ragioni per questo, tra cui il fatto che sia molto più facile scrivere codice povero in PHP che in Java (e quasi ogni altra lingua). D'altra parte, Java non è esattamente orientato alla libertà.

Se il tuo progetto è strettamente personale, puoi scegliere quello più adatto ai tuoi gusti. Se hai intenzione di svilupparti come una squadra, la scelta della lingua avrà un impatto sul suo umore generale/modo di pensare.

vorrei finalmente aggiungere alcuni parametri importanti per me: il divertimento ed eleganza

questo può essere una questione di gusti di nuovo qui, ma ho molto più divertente di codifica in Python che in C# per esempio.

14

Cosa stai ragazzi parlando ....

JAVA Va bene ha alcuni vantaggi, ma ha anche alcuni svantaggi. Ora con PHP è esattamente lo stesso, ha alcuni pro, ma ha anche alcuni svantaggi.

Le persone che dicono che PHP non ha un buon ambiente OO, bene fa javascript! E questo è davvero il cuore di tutti i progetti del web 2.0; javascript. Il back end oggi sta diventando più una risorsa per il front end. Cosa puoi fare in JAVA ora puoi fare in PHP 5.3 - in una certa misura. Se sei un bravo sviluppatore sarai abbastanza intelligente da astrarre il tuo design per renderlo manutenibile e se sei geniale puoi abbinare e persino migliorare la condivisione degli oggetti in PHP, che la maggior parte dei "designer" del web non conosce - o osare Dico, comprendo. Controlla questo articolo entro O'Reilly ON JAVA!.

Sviluppo entrambi in Java e PHP. Userò sempre PHP per il mio server e userò Java per lo sviluppo Android e lo sviluppo del desktop. (Tra l'altro ho sviluppato in Java per lo sviluppo del backend, ma ci vuole il doppio del tempo per fare qualcosa in JAVA quindi per farlo in PHP, per questo mi attiene a PHP

Ho sentito questo problema con il codice spagetti PHP tutto il tempo Sì. Forse 5 anni fa! Se il tuo progetto finisce così, la persona, o tu, è un programmatore scadente, e dovresti limitarti a disegnare belle immagini. È facile separare la tua logica dalla presentazione, ed è anche semplice separare la logica di business dal tuo livello dati. Pensa prima di codificare, non solo aprire un blocco note e iniziare a scrivere.Le persone che non riescono a pianificare, piano per fallire! Jacco sei nei soldi!

Vedo studenti uni per tutto il codice di costruzione in cui penso, "La persona che sta per finire con questo ragazzo se ne pentirà". Se lo studente avesse appena pianificato e documentato cosa avrebbe fatto, allora tutto sarebbe stato organizzato e pronto per il ridimensionamento, ancora una volta se fosse stato abbastanza bravo.

Entrambe le tecnologie sono eccezionali e dovresti utilizzare ciò che è più comodo per te o per i tuoi sviluppatori. Se vai giù per la strada dove pensi che uno sia migliore dell'altro e non sai nulla di quella tecnologia, beh, indovina un po '? A prescindere da ciò che fai, i risultati del tuo progetto saranno persi e finirai per doverlo ripetere ancora.

2

Ho eseguito un confronto non scientifico delle prestazioni di J2EE e PHP. Il confronto è stato quello di vedere l'esperienza utente di ciascun sistema in varie condizioni di carico.

Ho trovato che il tempo di risposta di PHP era molto lento e la CPU si estraeva molto rapidamente. Capisco che ci siano alcuni compilatori che probabilmente aiuteranno, ma volevo fare un confronto immediato delle prestazioni dei sistemi di sviluppo rapido.

Potete leggere tutti i dettagli qui: PHP vs J2EE: a Practical Approach

0

PHP vince front-end in sviluppo web. Perché ha tempi di sviluppo molto più piccoli che rendono le cose più economiche e meno costose. PHP perderà nello sviluppo di app per dispositivi mobili. Non c'è modo di sviluppare un front-end per app per dispositivi mobili con PHP. E poiché il suo divario di prestazioni con Java e altri linguaggi statici, PHP perderà la battaglia di back-end. Java è vecchio, ma ha una comunità piuttosto giovane e professionale. Dai un'occhiata a quei nomi: lucene, weka, hadoop, scala, cassandra, hbase, che cosa ci fornisce php nel servizio back-end ???????