É più forte di me…

Ma quando qualcuno mi dice:

Php è un linguaggio “giocattolo”, va bene per delle cose rapide, ma quando bisogna fare delle cose ad un certo livello è più saggio utilizzare Java. Questo perché Php non è un linguaggio completo, ad esempio il supporto per la programmazione ad oggetti è ridicolo…

Non posso non rispondere per le rime…

a seguire il testo rivisto e corretto per questo blog.

mannaggia a me ed al fatto che non mi stancherò mai di rispondere ai flame su PHP vs. Java ;P

Presupponendo che tutto il discorso qui fatto è incentrato sulle applicazioni web (non metterei mai a confronto PHP con Java altrove, per il semplice motivo che PHP è specializzato per il web mentre Java è un linguaggio multipurpose).

Sappi che PHP 5 è un linguaggio ad oggetti completo ed aperto.

Completo perchè (a parte alcune malattie alla Smalltalk) permette di fare tutto quello che un linguaggio OO dovrebbe fare: polimorfismo, ereditarietà ed incapsulamento. Gestisce metodi/variabili private, pubbliche e protette. Ha la gestione delle eccezioni (che però non è un requisito OO).

Inoltre l’ho definito anche aperto perchè in PHP puoi scrivere $pippo = new JAVA(tuo.class.path) ed eseguire il tuo bel codice java (ma anche python, perl, cobol, abap..) e se questo non è enterprise oriented vorrei sapere cosa lo è… ah già si dice “enterprise oriented” non perchè gira “lato server”. Ma perchè garantisce sicurezza, stabilità, scalabilità ed integrabilità con altre piattaforme.

Inoltre con php ci si può sbizzarrire a lavorare non solo con il classico paradigma ad oggetti, ma anche con paradigmi esotici come aspect oriented o che sfruttano il linguaggio naturale come la programmazione fluente.

Ed il 6 implementerà l’ultimo grande tassello alla sua completezza, il supporto ad unicode (purtroppo in questo il php è in pesante ritardo).

Per il discorso sulla separazione tra contenuti e funzionalità ti avviso che il pattern MVC esiste anche per PHP ed è sfruttato in moltissimi framework alcuni dei quali di alto livello (recentemente si è discusso su OSSblog di Symfony).

La scalabilità di PHP è innegabile. Anche perchè scalabilità è un concetto astratto che varia moltissimo in base alle esigenze del momento.

A questo punto potresti iniziare a sparare le classichie buzzword: jUnit, javadoc e programmazione agile.
Beh… phpUnit, phpDocumentor e l’ultima si può fare anche in basic in quanto è una serie di metodologie di sviluppo slegate da qualsiasi linguaggio.

IBM, Microsoft, Yahoo!, Oracle e Google stanno investendo veramente MOLTO su php (in risorse e denari) quindi tanto giocattolo non penso che sia.

Ed ora le trollate di fine post.

Sempre sul lato della completezza del linguaggio facciamo attenzione a non confonderla con la verbosità ed i requisiti minimi, ti voglio vedere a scrivere un “hello world” con una riga di codice e senza un dual xeon con 2Gb di ram su cui far girare TomCat… :P.

Inoltre hai mai gestito un server con java? La gestione degli errori riesce a raggiungere l’inutilità di quella standard del Prolog (che risponde un laconico “no“) usando però qualche migliaio di carattere in più…

Ed ultima nota folkoristica, se parli con uno sviluppatore SmallTalk (linguaggio su cui è NATO il paradigma OO mi dicono che è nato 3 anni prima con Simula 67) ti dirà che Java non è pienamente OO :P

ciuaz

  • “… vai … contro i mostri malvagi di vega ….”

    nel mio piccolo ti quoto in toto !!!

    e poi io java proprio non lo sopporto, mi sembra un liguaggio didattico, utile per fare tutto, ma troppo poco specializzato.

  • Bravoooo Beneee Bisss WWWW il PHP WWW

  • ludo non dice niente? :-)

  • luca

    @ maurizio:

    java didattico?

    cosa vuol dire poco specializzato?

    ma sai di cosa stai parlando?

    java e php non sono sistemi operativi o applicazioni, sono linguaggi di programmazione.

    @fullo
    ciao fullo,
    quello che dici in parte è vero, ma allo stato dell’arte java è ancora un passo avanti rispetto a php a livello enterprise.

    php dalla 5.0 in poi ha fatto grandi salti, ma anche java 1.5 ha fatto un balzo incredibile!

    Poi qua possiamo scatenare una guerra pazzesca, questo è migliore quello è migliore!

    Hai mai lavorato con java, costruendo applicazioni J2EE usando questi framework:

    struts, spring, iBatis o Hibernate?

  • luca: ho smesso di lavorare con java (per fortuna) a fine 2003 con la consegna della tesi… ho cmq tempo fa dato un occhio a struts e letto alcuni articoli su hibernate, ma nulla di più.

    la _mia opinione_ è che comunque java non è adatto al web come moltissime aziende vorrebbero far credere, non è abbastanza performante ed i tempi di sviluppo del codice sono lunghissimi. Senza contare che fare debugging con tomcat è come prendersi a martellate sui cogl…

    da notare che la stessa Sun se ne deve essere accorta tant’è che ha iniziato a collaborare con Zend tirando fuori lo Scripting per Java che permette di unire il meglio dei due mondi… gli oggetti costruiti con java associati ad un front-end realizzato in php…

  • luca

    Java non è adatto per il web, ma dai non scherzare!

    Io con Java ci lavoro, e per esperienza personale posso affermare che:

    a) I tempi di sviluppo sono lunghi solo se uno non conosce java, ma lo stesso vale per php.

    b) fare debugging con tomcat? usa eclipse o jbuilder, fanno il debugging integrato con tomcat da secoli, puoi debuggure anche le jsp, non mi pare poco!

    poi i tempi di sviluppo lunghi?

    ma dai, questa è preistoria.

    prova ad usare eclipse + hibernate + hibernate syncronizer

    e prova a scrivere un’applicazione che legge e scrive sul db un tabella con 200 campi!

    per fare una cosa veloce veloce, ci metti 5 minuti.

    in php?

    vatti a scrivere tutte le query a mano :-D

    Dai ora non esagerare!

    Forse se provassi a riavvicinarti a java, e magari seguendolo un pò potresti giudicarlo meglio!

    sei troppo cattivo con questo linguaggio di programmazione stupendo ;)

  • hey, gli active records ci sono anche per php ;P

    cmq non è che tratto male java.. è che non posso permettermi una sun blackbox per sviluppare siti ed applicazioni web :P

  • Anonimo

    Non per fare polemiche io utilizzo entrambi i lnguaggi e posso dire che php e un bel linguaggio con una curva di apprendimento molto alta, ma e comunque un linguaggio di scripting e rimane tale, java e un linguaggio fortemente tipizzato multi threading e la gestione delle eccezioni e sicuramente migliore di php, per come e strutturato il linguaggio ti permette di scrivere codice molto piu leggibile e quindi di facile manutenzione vedi microsoft con c# ha copiato tutto di java tranne per qualche aspetto. Forse php 5 sembra avvicinarsi un po ma come diceva anche qualcun’altro java ha dei framework veramente stupendi e permette un astrazione imparagonabile non a caso nel 2006 i progetti open source in java sono saliti al primo posto scavalcando anche c++.
    Concludo dicendo che a mio IMO java e un linguaggio più professionale di php.

%d bloggers like this: