MokaByte 100 - 8bre 2005
 
MokaByte 100 - 8bre 2005 Prima pagina Cerca Home Page

 

 

 

Antonio Cisternino
acisternino@mokabyte.it

Quanta strada ragazzi! A volte ci penso...
Mi sembra ieri quando un me emozionato scriveva "Java: ieri, oggi, e domani". Ne sono passati bit dalla mia interfaccia di rete da allora, e anche se la corrente mi ha portato verso altri lidi l'esperienza di Java ha profondamente segnato tutta la mia vita professionale. Nel secolo scorso, era il 1996 per l'esattezza, ero ancora studente al terzo anno del diploma di informatica a Pisa; all'Università mi facevano studiare Pascal, ma io ero un appassionato del Web e cominciai a scrivere le mie prime applet quando uscì Netscape 2.0 Golden edition in beta con il supporto a Java. Che emozione!

Le mie prime interfacce grafiche fatte all'interno del browser, in un framework civile e comprensibile, non il non-sense di MFC.
Entusiasta da questa esperienza realizzai la prima applicazione (così mi dissero quelli della Sun Italia) Web che avesse una qualche applicazione pratica: si chiamava CompAss ed era il sistema adottato dall'Università, in via sperimentale, per la compilazione on-line dei piani di studio. Mi entusiasmai quando l'AWT 1.1 introdusse il delegate event model. E poi...
Poi è cominciata la mia collaborazione con Mokabyte, la voglia di raccontare a tutti quanto fosse bello e innovativo il mondo Java. Poi, come spesso succede, le cose cambiano, le aspettative vengono deluse, e il primo amore spesso passa; così cominciai a soffrire dell'eccesso di API che una troppo frettolosa Sun stava elargendo a piene mani, da studente, oramai della laurea già diplomato, soffrivo dello scarso sviluppo del runtime, e soffrivo dall'uscita di swing: non mi sono mai piaciute, ed ho sempre pensato che l'approccio originale a peer era più efficace.
La verità è che da studente in carriera avevo bisogno di cambiamenti sostanziali, di miglioramenti nella piattaforma che la Sun non sembrava voler implementare, e così abbandonai piano piano l'intera piattaforma.
Tradii prima con Perl, poi con C++ (amore perduto e poi ritrovato), per poi approdare a .NET e C#. Il tradimento fu consumato sull'altare del Pure Java: la prima volta che mi trovai a dover riutilizzare il mio codice Java da altri linguaggi, o viceversa invocare metodi nativi via JNI, trovai un'architettura disegnata per la portabilità, e quindi in un certo senso chiusa in sé stessa. Questo senso di essere intrappolato in una tecnologia mi spinse a guardare oltre, ma la struttura allo stesso tempo statica e dinamica del linguaggio mi aveva segnato. Non riuscivo a strutturare bene i miei programmi (e tuttora non vi riesco) in linguaggi di scripting, ma l'assenza completa di dinamismo tipica di C++ era difficile da accettare dopo aver visto la luce. Quando Microsoft annunciò la piattaforma .NET trovai un nuovo giocattolo, e feci il grande salto. Nello stesso periodo, per coerenza, sentii il bisogno di smettere di contribuire a Mokabyte: non mi sentivo più così sulla cresta dell'onda nel mondo Java da poter indicare la strada.
In .NET trovai molte cose di cui sentivo la mancanza in Java, soprattutto nel runtime. In particolare apprezzai molto la scelta (ovvia per Microsoft) verso l'interoperabilità in tutte le direzioni; anche la scelta, di cui ho sempre sentito la mancanza nel mondo Java, di fare uno standard, ho sempre pensato fosse una cosa giusta (e infatti Mono è molto più vicino a .NET come implementazione di quanto sia mai stato Java di blackdown su Linux). Poi è arrivato il dottorato, e piano piano mi sono trovato, in modo a volte inconsapevole, a fare ricerca nel mondo dei linguaggi.
Mi sono soffermato sulla generazione di codice nel mondo delle macchine virtuali che ho chiamato STEE (Strongly Typed Execution Engine), Java e CLR.
Nel frattempo ho concluso il mio dottorato, ed ora ho appena cominciato il mio secondo assegno di ricerca, cercando, come sempre, di portare tutte le mie esperienze nell'Università, agli studenti; mostrando anche a loro le magie che ho trovato nell'infinito mondo dell'informatica. Anche oggi, che contribuisco a tenere il corso di Costruzione di Interfacce, tutto ciò che mi ha insegnato Java, mi accompagna, e quando capita lo insegno ancora, stupendomi di quanto poco è ancora sconosciuto il suo mondo dopo i primi dieci anni.