Bicocca.NET

Un portale di informatici dell’universita’ Milano Bicocca

Bicocca.NET header image 2

Un Java migliore, più veloce, più stupido

November 29th, 2005 · 0 Commenti · Uncategorized

Ultimamente si è molto parlato del miglioramento del linguaggio Java.
Come risposta a C#, Java 5 ha introdotto i Generics, il construtto foreach, l’auto (un)boxing e i varargs, assieme ad altre cose per rendere più semplice l aprogrammazione in Java.
Attraverso le annotazioni è possibile introdurre metainformazioni in maniera più pulita rispetto ai commenti normali (anche rispetto a tecnologie come xdoclet). In risposta a C# 3, sono stati proposti altri cambiamenti. Ma il programmatore odierno di Java riuscirà  a capire anche il codice futuro?

Ecco cosa ne pensa Ed Burnette, personaggio di spicco nel mondo Eclipse.

Mi piacciono le novità , ma attenzione, questo è Java, non C#. Java proviene da una varietà  di industrie, a C# proviene da una sola. Se C# cambia, allora la Microsoft creerà  una nuova versione del framework che installerà  su ogni computer. Java non si può permettere tale lusso. Ci sono ancora clienti che utilizzano Java 1.4.1 e servirà  almeno un altro anno prima che sia i produttori di Virtual Machine sia gli sviluppatori assorbano le novità  di Java 5. E perchè dovrebbero? Java è magnifico a causa delle caratteristiche del linguaggio? Sarebbe più popolare se permettesse di saltare un paio di parentesi, un cast o una chiamata a funzione? No, anzi!!!

Le nuove caratteristiche del linguaggio rendono Java meno grande e difficile da estendere, così come nuove caratteristiche in java.* e javax.* o nuovi metodi nelle classi comunemente utilizzati, come Integer e String. Probabilmente è solo eresia, ma sono sicuro che sono nel giusto.

Prendiamo come esempio Mylar, un plugin di Eclipse scritto da zero, utilizzando tutte le nuove funzionalità  di Java 5. Ma c’è un piccolo problema: non tutti possono usare Java 5. Per esempio, non c’è supporto a Java 5 con il compilatore gcc (attraverso gcj).

Java è grande a causa dell’enorme quantità  di software disponibile da terze parti. La maggior parte del software open source oggigiorno è scritto in Java. Ma Java ha bisogno di stabilizzarsi, altrimenti perderà  tale vantaggio. Ormai ha compiuto 10 anni e dovrebbe essere maturo… non morto ma maturo!

Infatti c’è un lato negativo con le nuove versioni di Java: per esempio molti plugin per eclipse sono stati riscritti per funzionare in quello che viene chiamato “ambiente fondamentale”. Questo è un sottoinsieme di Java che funziona anche nelle vecchie versioni, in virtual machine più piccole e in ambienti vincolati.

Ai linguistici piace introdurre nuovi elementi, nuovi comandi e keyword speciali, ma gli utenti sono disposti ad utilizzare tali funzionalità ? Probabilmente un gruppo di utenti le vuole, ma la maggior parte si chiederà  che cambiamenti saranno richiesti al loro codice, se sarà  il caso di aggiornarsi o se il codice di terzi richiederà  tali funzionalità  prima che il mio sia pronto. Annoiante, lo so, ma sono domande molto pratiche su punti molti importanti.

Il mio suggerimento? Mantenere la linea al livello di Java 1.4 (o precedente). Imposta il tuo ambiente di sviluppo a non accettare i costrutti di Java 5 automaticamente. Avrai comunque il vantaggio di usare le migliorie introdotte con l’ultimissima JVM, come una miglior allocazione della memoria e un miglior compilatore JIT, senza apportare cambiamenti al codice. Guarda i cambiamenti in Java 5 e oltre, e chiediti onestamente: “Ne ho veramente bisogno? Sto guadagnando più di quanto mi vincoli a questo?” La maggior parte delle volte la risposta sarà  un “no”.

Ma quando sarà  sicuro utilizzare i costrutti di Java 5? Almeno quando il Java Runtime Environment 5.0 non sarà  presente ovunque. Con questo intendo che quando sarà  disponibile su tutte le piattaforme, incluse quelle gratis o open source, e ogni persona avrà  provato ad utilizzarla, scovarne i bug e adattarcisi. Pià  gente usa il tuo codice, più tardi è opportuno convertirsi.

Concludendo, le innovazioni dovrebbero concentrarsi al di fuori del linguaggio e delle librerie di base, posti in cui risiede la vera potenza di Java. Smettetela di fare di Java un bersaglio che si sposta velocemente. Accettate la sua maturità  come una buona cosa, come una forza con cui ci si può costruire sopra, non come una debolezza che ha bisogno di essere corretta.

Articolo tradotto da Matteo di developers-blog.blogspot.com
Articolo originale: www.eclipsezone.com/eclipse/forums/t54318.html

Share

Tags: