Appendice A


Osservazioni alla relazione e relative risposte dell'autore.

Osservazione 1: "Finora, invece, i profitti li ha fatti proprio chi si è dedicato ad una solo sistema operativo, ottimizzando il software solo per quello! (leggi Bill Gates)."

R.: L'esempio di MicroSoft è indubbiamente eclatante, ma proprio per questo non è calzante. Quante aziende, infatti, hanno avuto grande successo come l'azienda di Bill Gates? Inoltre MicroSoft non si è mai sforzata di ottimizzare più di tanto il proprio software: basti pensare alla gestione della memoria in Windows, alle immagini bitmap non compresse, al formato ingombrante dei documenti di Word per Windows, etc. Il successo di MicroSoft è legato alla grande diffusione del PC IBM, più che alla qualità del software (DOS e Windows) prodotto da essa. Probabilmente, la fortuna di Microsoft è scaturita proprio dalla collaborazione con il colosso dell'informatica IBM. In altre parole, la grande occasione capitata alla Microsoft è da condiderarsi molto rara e quasi unica. Quando si è apprezzata la portabilità del software implementato in Java si intendeva dire che per una azienda di piccole-medie dimensioni (tipica in Italia) risulta vantaggioso poter rivendere con costi aggiuntivi minimi i propri prodotti per diversi ambienti operativi (da febbraio 1996, fra l'altro, il JDK è diponibile pure per McIntosh, OS/2 e AIX). Nella relazione non si alludeva certo a quelle poche aziende di grandi proporzioni in grado di condizionare il mercato. Parimenti, non si intendeva fare riferimento nemmeno a quelle pochissime e fortunatissime aziende che nel giro di pochi anni sono cresciute enormemente grazie a circostanze molto particolari e dunque irripetibili.

Osservazione 2: "Non è che i buoni programmatori C++ crescano sugli alberi..."

R.: Nella relazione, non si intende dire che per imparare Java bisogna prima imparare il C++ (cosa ovviamente molto gravosa!). Si intende dire invece che un programmatore C++ è facilitato nell'apprendere Java, e ciò è un vantaggio. Siccome Java è un linguaggio ad oggetti, chi ha già maturato una certa esperienza di programmazione ad oggetti è favorito nell'apprenderlo. Coloro invece che non hanno esperienza di programmazione ad oggetti, devono compiere lo sforzo di entrare nella logica di tale programmazione. Indubbiamente ciò non è proprio facile e "indolore". D'altro canto, però, Java è un linguaggio con caratteristiche avanzate, e gli sforzi necessari per imparare a maneggiarlo forniscono al programmatore inesperto l'occasione per acquisire le conoscenze fondamentali della moderna programmazione. Java, in altre parole, non è una specie di Visual Basic. Esso, invece, mira ad essere un linguaggio di programmazione di una certa qualità. Ciò, come giustamente si può arguire, può essere un ostacolo alla sua diffusione. Difficilmente, infatti, un utente di Visual Basic sarà disposto a passare a Java. Java dunque è uno strumento adatto ai programmatori di livello medio-alto, e per questa ragione il suo mercato rimarrà meno esteso di altri strumenti più semplici e popolari.

In ogni caso, per venire incontro a esigenze di semplicità, Netscape offre la possibilità di implementare programmi direttamente nelle pagine HTML tramite un linguaggio derivato da Java, lo Javascript. Le istruzioni Javascript si inseriscono direttamente nel testo HTML permettendo così di creare applicativi in maniera più semplice rispetto alla creazione di applet Java. Ovviamente, Javascript offre meno possibilità rispetto a Java. Infine, recentemente (febbraio 1996), la Rogue Wave Software ha prodotto JavaFactory, uno strumento simile ai vari Visual C++ in grado di creare applicazioni Java tramite una apposita interfaccia utente grafica. Quest'ultimo avvenimento dimostra che lo sviluppo di Java è preso in seria considerazione da molte case produttrici di software. Tutto ciò, si noti, a meno di un anno dal rilascio della primissima versione (ancora sperimentale) di Java.

Osservazione 3: "Non penso che il Java sia in concorrenza con il C++. Il suo successo è legato ad Internet, e per ora non si vedono grandi vantaggi dal suo avvento."

R.: Ciò che si intendeva mettere in evidenza è che Java è un vero e proprio linguaggio di programmazione, e non un semplice "attrezzo" per il browser Netscape. Il progetto di Sun è infatti più ambizioso di quello di creare un "tool" per Internet. Semmai, Internet è stata abilmente sfruttata per diffondere e far apprezzare Java. Il successivo commento "Ovviamente Sun mira a destabilizzare lo strapotere Intel" apposto nel paragrafo "Evoluzione del linguaggio Java", conferma questa visione delle cose. Oltre a ciò, le caratteristiche di Java sono state giudicate interessanti da molte parti. Si legga per esempio il commento "Java vs. C++" di Greg Winkins, programmatore C++ alla Telstra Corporation. Si riporta una parte saliente di tale commento: "The way I use C++ looks like it would transfer to Java very easily, giving me access to the features of C++ I like, without the danger of the many extra C++ features" (il commento intero si trova in Usenet Faq "Comp. Object FAQ Version 1.0.8 (05-31) Part 13/13"). Ad ogni buon conto, nella relazione sono stati citati pure gli svantaggi di Java. In particolar modo è stato fatto notare che esso è, almeno per adesso, un linguaggio solo interpretato. La progettazione e la messa a punto di un compilatore Java in grado di generare direttamente eseguibili per le più svariate piattaforme operative sarà un compito delicato. A tal punto, per esempio, sarà ben difficile mantenere il link dinamico, possibile grazie alla natura di linguaggio interpretato propria di Java. Si noti pure che nella relazione la possibilità di generare eseguibili da sorgenti Java è considerata conditio sine qua non Java stesso possa divenire competitivo rispetto al C++. Per quanto riguarda la possibilità che Java possa divenire un concorrente del C++, senza che necessariamente Java lo sostituisca, essa è da considerarsi reale e non fantasiosa. Si legga a tal proposito l'articolo, apparso sul Dr Dobb's Journal di Marzo 1996, "Moving from C++ to Java" di Gary Aitken, ingegnere del software alla Integrated Computer Solutions.

Osservazione 4: "Ormai lo fanno tutti i browser, senza Java."

R.: Anche se è vero che in generale tutti i browser hanno la possibilità di gestire in qualche maniera i video e i messaggi sonori, solamente Java fornisce la possibilità di inserire, in maniera efficiente, animazioni all'interno di pagine HTML.

Osservazione 5: "La Common Gateway Interface non c'entra nulla con la multimedialità."

R.: Di per sé stessa, infatti la CGI non a niente a che vedere con la multimedialità. Però, attraverso essa è possibile far lanciare al server applicazioni in grado di generare nella finestra del client Web servizi multimediali, come grossolane animazioni.

Osservazione 6: "Questo esempio è un po' strampalato. Attualmente i processori non riescono a decomprimere il video in modo efficiente neanche con programmi Assembler, figuriamoci con del codice interpretato."

R.: L'unico problema nel realizzare l'applicazione Java per audio-video è la velocità. In linea di principio non vi alcun altro impedimento, la cosa è possibilissima. In futuro i browser compatibili con Java potrebbero mettere a disposizione degli applet dei metodi nativi per la decompressione del video con routine ottimizzate scritte in Assembler. Inoltre, la velocità dei processori aumenta costantemente e i prezzi si abbassano. L'esempio quindi può essere considerato ardito, ma non strampalato.

Osservazione 7: "Ciò produrrebbe la creazione di infiniti Java. Ingestibile."

R.: E' sottointeso che le modifiche a Hotjava riguardano l'interfaccia grafica e alcune funzionalità del browser. Non si tratta di alterazioni al linguaggio Java (interpretato da Hotjava) che ovviamente porterebbero molta confusione.

Osservazione 8: "Questo è interessante! Ovviamente Sun mira a destabilizzare lo strapotere Intel!"

R.: L'unico commento positivo che rende ragione della validità di Java. Se Java fosse solo un "tool" per Internet, difficilmente potrebbe "destabilizzare lo strapotere Intel". La Sun Microelectronics (ex Sparc Tecnologies Business) ha già annunciato l'uscita di una famiglia di microprocessori (picoJava, microJava e UltraJava) ottimizzati per Java. Secondo quanto annunciato, il microprocessore picoJAva sarà disponibile per la metà del 1996, microJava per gli inizi del 1997 e UltraJava per la fine del 1997.

Osservazione 9: "Java è la marca di caffè distribuita dalle macchinette alla Sun!"

R.: Ciò non toglie che sia stata fatta un ricerca di mercato per il nome da attribuire al nuovo linguaggio di programmazione. Altrimenti non si spiegherebbe il fatto che è stato abbandonato il vecchio nome Oak. Le ricerche di mercato sono la norma per lanciare i nuovi prodotti. Dal nome, infatti, dipende spesso il buon esito della vendita di un prodotto. Il nome Java non deve certo meravigliare. Altrimenti dovremmo meravigliarci anche dei nomi dati alle nuove automobili, che pur essendo spesso strambi, sono però tutti frutto di scrupolose ricerche di mercato. E poi, perché meravigliarci di Java e non meravigliarci della Sun, una azienda che si chiama Sole? L'acronimo S.U.N. non è stato certo scelto a caso...

Osservazione 10: "Proprio questa Applet mostra i limiti del Java per applicativi come animazioni, in quanto la "scattosità" dell'animazione è rilevante in tutte le piattaforme viste (Intel, Sun). Java, per la sua genericità, non può accedere direttamente al buffer video, né inviare i suoni in tempo reale alla scheda audio."

R.: Per quanto riguarda l'animazione, forse durante le prove non è stata tolta la pausa nei parametri passati allo applet Animator (il tag relativo nel documento HTML è: <param name=pause value=200>). La velocità dell'animazione decuplica se si pone value = 0. Ancora una volta, la vera critica verso Java è la velocità. Riguardo a quest'ultima, però, si può fare ancora molto per migliorare la situazione.