How I did it

Storia di Java vista dall'universitàdi

Ok, il titolo è solo un omaggio al recentemente scomparso Gene Wilder, mi pareva doveroso.... Detto ciò passiamo al tema: cosa mi è successo da quando "ci siamo lasciati" con MokaByte? Per non intristire nessuno, si sappia che siamo rimasti amici.

Io e MokaByte ci siamo conosciuti perché Google e StackOverflow ancora non esistevano e c'era spazio per le comunità locali. Solo dopo il 2000 è cominciata la forte globalizzazione della conoscenza (bada bene che lo dico in senso positivo) con la relativa crisi dell'associazionismo e di quelli che anni prima venivano chiamati SIG (Special Interest Groups).

Ho iniziato a studiare Java quasi alla sua nascita.

Era il 1996 (un anno dopo la "first release" di Java), poco dopo la tesi avevo iniziato a collaborare con l'Università (Bicocca, Milano). Allora l'esigenza era prettamente didattica, insegnavo Programmazione a Oggetti, UML (Unified Modeling Language) e Unix/Linux (poi divenne semplicemente GNU/Linux per dirla alla Stallman) e Java era già allora un ottimo linguaggio da insegnare. Pur con qualche difetto, ma chi non ne ha.

In quegli anni ho incontrato MokaByte: era un "buon posto" dove cercare informazioni sul giovane linguaggio e dopo un po' ho cominciato anche io a scrivere qualche articolo sulle cose che sapevo o che man mano provavo e imparavo.
Così fino al 2000 circa quando gli impegni lavorativi hanno preso il sopravvento sulla attività editoriale e ho dovuto abbandonare MokaByte.

Successivamente ho cambiato Università, da UniMiB a UniMi, ma ho continuato a insegnare Java (con una parentesi "Sistemi Operativi" di qualche anno) fino a oggi, anche se dal 2011 ho affiancato una forte componente di "basso livello" avendo fondato un SIG ("c'è ancora una speranza!" cit.) con gli studenti sul tema Arduino e sistemi embedded (http://arduinoafternoon.di.unimi.it).

Cosa porto a casa dall'esperienza con Java? Intanto l'aver conosciuto un ottimo linguaggio, ancora oggi difficile da sostituire se si vuole linearità, leggibilità, pulizia, prestazioni, indipendenza da piattaforma, etc.
Ogni tanto provo a vedere se è nato un linguaggio "sostitutivo", ma con scarso successo... Non faccio nomi per non scatenare flame e trollaggi.
Tuttora se devo sviluppare in grande uso Java (openjdk) mentre per il glueing mi baso su script di shell, da molti anni ormai vivo in un ambiente proprietary free, me lo posso permettere per fortuna.

C'è una singola lesson learned che vorrei far emergere? Sì, fondamentale.
Nel corso degli anni ho vissuto, sulla mia pelle e su quella dei miei studenti, che non è per niente facile imparare un linguaggio ad oggetti come primo linguaggio. Il dibattito è ancestrale, non ho scoperto io il problema, ci mancherebbe. Perà fa lo stesso male vedere uno studente del primo anno (Programmazione è al primo solitamente), che magari non ha mai veramente usato ("usare" non vuol dire cliccare qualche icona, vuol dire capire qualcosa di ciò che succede "sotto") un computer, tentare di capire il meccanismo dell'overloading e annaspare nei meandri del binding... Il fatto che molti dei cosiddetti nativi digitali non abbiano idea di cosa sia un file, un path, un processo, un  prompt (!!!), un URL (!!!), un indirizzo IP non li aiuta certo nel loro percorso di studi.

Condividi

Ateo e sbattezzato. Grande lettore, decente scrittore, viaggiatore eclettico, subacqueo sereno, velista enogastronomico, motociclista civile, ballerino appassionato ed esploratore curioso su "life, the universe and everything..." Ricercatore presso Università degli Studi di Milano (Dipartimento di Informatica) dove insegna Programmazione (Java) e Sistemi Operativi (GNU/Linux). Ha fondato il laboratorio sul Software…