Eliminate DRM!
Protect your freedom!

Java vs C++&PHP

May 14, 2006 on 2:06 pm | In C/C++, Java, Linguaggi, PHP |

In questo ultimo periodo sto dedicando parecchio tempo a Java per la realizzazione di un progetto per un esame. Mi ero ripromesso di cercare di studiarlo senza alterarmi (non mi aveva mai fatto buona impressione). E invece non c’è niente da fare: un linguaggio più stupido e contradditorio di questo devo ancora trovarlo!!!

Sto leggendo Thinking in Java di Bruce Eckel e da quello che ho letto fin’ora l’autore mi sembra una via di mezzo Berlusconi e Calderoli: da una parte afferma che gli altri linguaggi "sono tutti comunisti" a partire dal C++, dall’altra si rende effettivamente conto dei problemi che ha e li smaschera sottovoce. In questo libro Java viene presentato come il bene scesco dal cielo, usando un linguaggio vicino a C.L., e come la soluzione a tutti i problemi: da quello che c’è scritto in questo libro non esiste linguaggio migliore a prescindere dall’uso che se ne fa!

E, invece, secondo la mia modestissima opinione, non esiste str*****a più grossa. Java viene presentato con un linguaggio ad oggetti puro; questa è una grossa cavolata perchè Java gestisce tipi di dati primitivi ma soprattutto NON riesce a gestire l’ereditarietà multipla (che si riesce ad ottenere con alcuni trucchi, ma sono sempre trucchi), cosa possibile invece con C++ (anche se non è un linguaggio ad oggetti puro e tantomeno nativo). La gestione della memoria… vorrei fare venia ma non riesco… Non è possibile cancellare gli oggetti a piacimento del programmatore, non esistono i distruttori: pensa a tutto il Garbage Collector! Bella pensata. Putroppo, però, lo sviluppatore non ne ha controllo e quando entra in azione NON è detto che riesca a cancellare effettivamente gli oggetti. Il tutto ovviamente è stato progettato a favore della sicurezza perchè il programmatore può dimenticarsi di cancellare un oggetto! Effetto: un rallentamento del sistema spropositato (che deriva anche dal fatto che è un linguaggio interpretato). Se il programmatore è un bravo programmatore non trascura sicuramente la distruzione di oggetti (a questo servono i Diagrammi di Sequenza UML).

Passando alla documentazione on line, non ho mai visto una documentazione peggiore. Se cerchi un metodo particolare non puoi fare altro che cercarlo a naso sui vari packages che tra l’altro sono nominati in modo molto creativo (IMHO).

L’uso di Java su Web (JSP, Sevlet a Applet) mi risulta difficoltoso da capire. Esiste tutta una sintassi particolare che secondo me è difficile da ricordare, sicuramente per chi è alle prime armi. Inoltre, già abbiamo a che fare con un linguaggio lento su host, vogliamo anche soffocarlo con processi che girano su Web??? Bravi.

Mi piacerebbe tanto leggere Thinking in C++ per vedere cosa dice lo stesso autore di Java. Forse scrive per il "Dio Soldo" oppure effettivamente predilige il secondo linguaggio rispetto al primo. Per quello che mi riguarda, esiste un linguaggio particolare per ogni scelta particolare e non un unico linguaggio per ogni problema (Java viene presentato così). Se devo sviluppare un’applicazione per uso desktop preferisco il C++, per il Web sicuramente PHP.

Forse il motivo del successo di Java è che c’è una grossa azienda che ha soldi da spendere.

7 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Capisco che la tua può essere una reazione alla posizione un po’ fanatica di chi considera Java come la soluzione a tutto, ma alla fine sembri concludere in maniera altrettanto fanatica che Java sta in piedi solo perché dietro c’è una azienda dall’enorme potere a spingerlo.
    Poi riguardo al PHP, pur avendo una certa simpatia per questo linguaggio, non credo che sia sempre la soluzione migliore quando si parla di applicazioni web.
    Infine credo che tutti gli strumenti, linguaggi di programmazione compresi, non debbano semplicemente rispondere alle esigenze derivanti dal progetto in esame, ma anche alle esigenze di chi deve usarli.
    Affermazioni come “Se il programmatore è un bravo programmatore non trascura sicuramente la distruzione di oggetti” lasciano il tempo che trovano perché poi bisogna fare i conti con le persone e le situazioni reali. Non sempre in uno staff tutti sono questi bravi programmatori e anche se lo fossero non sempre sì è in forma o semplicemente nelle condizioni di lavoro più idonee, e queste cose vanno considerate e in certi casi possono spingere a fare delle scelte che non sembrano ottimali “se tutto fosse stato al meglio”.

    Comment by mpolci — May 14, 2006 #

  2. Nella seconda parte non posso dare opinioni anche perchè non ho l’esperieza adatta per approvare o smentire. Tuttavia forse lo stesso ragionamento si applica anche a linguaggi come Java.
    Per quanto riguarda la prima parte sinceramente non credo che possa essere definito “fanatico” il mio punto di vista perchè ho detto che esiste un linguaggio per ogni tipo di problema e Java ha la presunzione di presentarsi come la soluzione a tutto.
    Poi, per quanto riguarda il “mio piccolo”, considero ottimale C++ per un uso desktop e PHP per le applicazioni Web che ho incontrato sin’ora. Sicuramente ci sono altri linguaggi che possono essere scelti per un motivo o un altro, ma il fatto che Java debba essere spacciato come “la soluzione” sinceramente mi da un pò fastidio. Ciauzzz.

    Comment by Santana — May 14, 2006 #

  3. Non volevo assolutamente darti del fanatico, dicevo semplicemente che le ultime affermazioni sembravano lasciare intendere che secondo te Java non aveva motivo di esistere e stava in piedi solo per le spinte di Sun, concetto insensato come quello di chi dice che Java è la soluzione a tutto. Se non era questo che intendevi pazienza.
    Comunque sono d’accordo con te nel dare contro a chi lo considera la soluzione a tutto.
    Probabilmente non esiste nemmeno un linguaggio che è la soluzione ad un problema specifico (figurarsi a tutto). Ciao, Marco.

    Comment by mpolci — May 15, 2006 #

  4. Si hai ragione, scusa. Rileggendo è effettivamente un’affermazione ambigua. Saludos…

    Comment by Santana — May 15, 2006 #

  5. Secondo me java è assolutamente controintuitivo. Mi trovo d’accordo su tutta la linea con l’intervento.. a cominciare dalla spocchiosissima documentazione!
    E che dire della storiella
    J2EE che poi è JEE , java 1.5 che in realtà si chiama JAVA5!!!!! Delirio puro!

    Alla fine è diffuso perchè è pieno di cose gia fatte e basta.

    Comment by The_Elder — August 5, 2007 #

  6. molto probabilmente hai ragione a dire che il libro “thinking in java” è leggermente di parte,sottolinea gli apsetti positivi e trascura quelli negativi. e forse hai pure ragione su tutto il discorso che hai fatto confrontando i 3 linguaggi! ma penso comunque che non si deve fare di tutta un’erba un fascio, non tutti gli utilizzatori di java lo presentano come la soluzione! tra questi c’è chi è obiettivo e realista e se utilizza java ci sarà pure un motivo!! java ha dei difetti, daltronde la erfezione non esiste, ma va riconosciuto che ha una grammatica piu intuitiva di c, questo è importante perchè a chiunque, anche “ai piu bravi programmatori” come li definisci tu, capita di sbagliare!! a prescindere da tutto ognuno utilizza un linguaggio in base alle proprie esigenze, capacità e obiettivi. è difficile fare dei confronti, troverai sempre dei pro e dei contro in un linguaggio perchè non ne esisterà mai uno perfetto che possa accontentarti in tutto! il pc è pur sempre una macchina, siamo noi ad avere il cervello ed elaborare i dati per avere gli effetti!

    Comment by pet — September 14, 2007 #

  7. Non dimentichiamoci che la cosa più importante è una buona progettazione.
    I linguaggio possono essere più o meno tutti validi, Le metodologie di progettazione, l’ingegneria del software, sono quelle che fanno la differenza!

    Comment by Giuseppe — April 27, 2008 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^