di Franco Gozzi f.gozzi@leonet.it
Seconda parte
Questa volta voglio proporvi un viaggio piuttosto esotico, vorrei parlare di Java. Per partire, però, con il giusto spirito è magari per risolvere qualche equivoco forse sarebbe il caso di sottoporvi ad un breve test: se siete capitati su queste pagine cercando di organizzare la seconda luna di miele, in un isola dellÆOceano Indiano, probabilmente ciò che segue vi interesserà relativamenteà
In realtà, Java, è divenuto ormai sinonimo di rivoluzione informatica, tutti ne parlano, spesso a sproposito ma questo è normale se si pensa al gran movimento che si è generato attorno al linguaggio della Sun. Motivo di così grande successo sarebbe la possibilità di scrivere codice portabile, ovvero in grado di girare su piattaforme diverse (Windows, Unix, Mac). Ciò spiegherebbe da solo il successo di Java ma bisogna pur dire che il "miracolo" della potabilità si è avverato soltanto aggiungendo un livello intermedio, virtuale, tra il sorgente e la macchina sulla quale eseguire il codice compilato. Di fatto, il sorgente è compilato in un codice intermedio (bytecode) che a sua volta dovrà essere reinterpretato dalla Java Virtual Machine sulle diverse piattaforme. Tecnicamente equivale ad aver rimandato ad un livello inferiore la risoluzione dellÆincompatibilità, introducendo non pochi problemi di efficienza. Personalmente non credo che Java si stia affermando perché sorretto da una filosofia rivoluzionaria, semmai credo che il suo successo sia dovuto al concomitante sviluppo di Internet, un modello assolutamente incomparabile di rete disomogenea, in grado di far convivere sistemi diversi e notoriamente incompatibili. EÆ in questo contesto che Java trova la sua dimensione riuscendo anche a mascherare, nella cronica insufficienza di banda, i suoi problemi di gioventù.
Il mio avvicinamento a questo nuovo linguaggio è stato reso ancora più difficile, constatando come lÆuso improprio dello stesso non costituiva e non costituisce un arricchimento per la comunità degli sviluppatori. Basti pensare alle migliaia di applet dal dubbio gusto che girano un poÆ ovunque.
Come spesso accade però, sono gli eventi e le esperienze personali che determinano le svolte importanti, siano esse ideologiche che di gusto. Così incontrando un collega ho verificato come, al di là del gran chiasso, Java è anche uno strumento versatile e potente al tempo stesso. Ho avuto così modo di utilizzare le servlet e le applet per sviluppare grandi applicazioni web, devo dire con ottimi risultati, difficilmente raggiungibili attraverso altri strumenti. In particolare lÆuso delle servlet consente di mettere a riposo lÆarchitettura CGI per la generazione di pagine web dinamiche. A differenza delle applet le servlet girano sul server e sono persistenti (girano in continuazione) evitando così di generare un processo per ogni invocazione così come per le CGI.
A questo punto forse, se ancora non vi siete annoiati, direi di iniziare a scovare nella rete qualche risorsa utile allÆapprendimento o al perfezionamento di questo linguaggio. EÆ tantissimo il materiale e sono tantissimi i siti relativi a Java che sono diventati famosi. Sarà per questo motivo che non sono riuscito a tracciare un itinerario alternativo e fuori dalle rotte di massa.
La prima risorsa la trovate allÆurl www.jars.com , si tratta di un contenitore di recensioni ad altre risorse (qualche migliaio). Il sito è di semplice concezione e le risorse sono ben organizzate: Business, Multimedia, Websites, Tutorialsà . Per ogni risorsa è possibile ottenere informazioni sullÆautore, sul sito di provenienza, e soprattutto il giudizio insindacabile di JARS. Se avete risorse da sottoporre a JARS potete farlo tranquillamente. Esiste inoltre una mailing list per ricevere aggiornamenti sulle ultime novità. Per le applet e per le applicazioni recensite, esiste anche lÆeventuale riferimento al sorgente, di indubbia utilità per chi vuole cimentarsi con questo linguaggio.
Dello stesso tenore è la directory dedicata al Java da www.developer.com che è una tappa obbligatoria qualunque sia il linguaggio da voi utilizzato. Qui potete trovare ottime recensioni e link alle risorse più "cool" della rete.
A chi invece vuole iniziare a capire Java ed avere uno strumento per lÆautoapprendimento non posso fare a meno di segnalare il sito di Bruce Eckel (www.eckelobjects.com) autore del libro "Thinking in Java" che potrete oltretutto, scaricare direttamente dal sito in diversi formati e soprattutto senza spendere un soldo. Il testo citato è veramente un supporto magnifico per chi vuole apprendere questo linguaggio: oltre 600 pagine che seguono lÆordine tipico del manuale senza tralasciare nessun aspetto della programmazione in Java.
Sempre per coloro che cercano risposte a quesiti più o meno avanzati vale la pena segnalare le Frequently asked quastions (FAQ) dei programmatori Java curate da tale Peter Van der Linden che troverete allÆurl www.afu.com/javafaq.html .Queste FAQ sono il frutto del monitoraggio di alcuni newsgroup dedicati al nostro caro linguaggio, e sono aggiornate molto spesso, direi ogni settimana. Particolarmente interessante sono le raccomandazioni al supporto della potabilità e lÆaperta polemica con Microsoft e J++.
Vorrei chiudere questa prima tappa con Java mettendo in evidenza come questÆultimo sia lo strumento didatticamente più valido per insegnare la programmazione Object Oriented. Il suo rigore e la sua semplicità mi fanno azzardare un paragone con il Pascal per quanto riguardava la programmazione tradizionale.
Alla prossimaà