Storia delle tecnologie scelte da Sinapsi
Da Sinapsi.
Contents |
Sinapsi e le tecnologie
Il mestiere più antico del mondo
C'è chi sostiene che la system integration sia assimilabile al mestiere più antico del mondo: si va e si fa con tutti, purchè ci siano possibili transazioni economiche tra le parti. Non abbiamo alcuna intenzione di negare, come system integrator, la nostra propensione al mercimonio tecnologico, tutt'altro. Non possiamo quindi affermare, come Bocca di Rosa, di farlo solo per passione, ma di farlo anche con passione, almeno questo si, possiamo dirlo.
Sinapsi nacque nel 1996 dall'iniziativa di due filosofi e due ingegneri provenienti dai laboratori di intelligenza artificiale di Agip Spa (quella che cerca, estrae e produce il petrolio, non quella che lo distribuisce alle pompe di benzina). Per chi non lo sapesse, con l'intelligenza artificiale, un insieme piuttosto eterogeno di tecnologie dell'informazione, nacque la prima micro-bolla speculativa della silicon valley che, in qualche misura, anticipò quella di internet che proprio dalla silicon valley si diffuse rapidamente in tutto il resto del mondo occidentale e non.
Molte delle varie tecnologie dell'informazione sottostanti l'intelligenza artificiale sono ampiamente sopravvisute al fallimento delle sue pretenziose promesse e, una volta spogliatesi del make-up del marketing, hanno trovato nuovi e piu' efficaci contesti di applicazione.
Di quali tecnologie stiamo parlando? Dell'object-oriented, di UNIX e del F/OSS (Free/Open Source Software).
Scrivilo solo una volta e eseguilo ovunque
Tanti papà di uno stesso figlio
Il DNA dell'obiect-oriented proviene da tre filoni tra loro del tutto eterogenei:
- simulazione di sistemi
- intefacce grafiche(GUI – Graphical User Interface)
- sistemi esperti/knowledge-based system
I sistemi esperti venivano sviluppati utilizzando quelli che dal 1975, dopo la pubblicazione di un leggendario articolo di Marvin Minsky, vennero chiamati frame-based system. I frame, nel constesto dei sistemi di rappresentazione della conoscenza, altro non erano che le attuali classi dei linguaggi object-oriented, con tanto di ereditarietà e polimorfismo, ma senza incapsulamento dell'informazione. Per chiunque abbia frequentato assiduamente i frame-based system, riconvertirsi alla tecnologia object-oriented era una questione più di forma che di sostanza. L'inizio degli anni novanta vide praticamente tutte le aziende e i professionisti, che precedentemente si occupavano di intelligenza artificiale, passare a cavalcare la nuova onda tecnologica dell'object-oriented.
Il C + (Più) + (Peggio)
Ancora nascosti nelle stanze del laboratorio AI di Agip, cominciammo anche noi a “smanettare” con i primi compilatori C++ (in realtà erano ancora dei pre-processori). Certo il C++ , proveniente dal filone della simulazione come il suo inventore Bjarne Stroustrup, aveva caratteristiche semantiche piuttosto legnose per chi, come noi, veniva dai linguaggi interpretati (p.e. CLOS - Common Lisp Object System), tipici del filone dell'intelligenza artificiale dell'object-oriented. Tanto legnose che nel nostro laboratorio si era guadagnato il sarcastico appellativo di “C Più Peggio”. Ci piaceva molto di più objective-c di Brad Cox, che però allora non ebbe alcun successo commerciale a causa della sintassi message-like derivata da Smalltalk, il linguaggio object-oriented del filone GUI.
Tre giganti
Il modello semantico ad oggetti dell'objective-c lo abbiamo sempre ritenuto superiore a quello un tantino schizofrenico del C++. Per fortuna non siamo stati gli unici, visto che tre giganti della storia dell'informatica, James Gosling, Steve Jobs, e Tim Berners Lee hanno onorato la creatura di Brad Cox più di chiunque altro.
James Gosling implementò il compilatore objective-c nel gcc (il notissimo compilatore multilinguaggio e multipiattaforma della Free Software Foundation) e, forte di quell'esperienza, qualche anno dopo creò nientepocodimeno che java, il cui debito nei confronti di objective-c, a meno della sintassi derivata dal C, è noto a tutti programmatori di una certa età.
Steve Jobs, invece, costruì intorno ad objective-c il sistema operativo NextStep che, oltre ad averlo fatto annoverare tra le 10 persone più importanti della storia di UNIX senza che sia mai stato un programmatore, è a tutt'oggi considerato il più evoluto sistema operativo e ambiente di sviluppo mai concepito. Per chi non lo sapesse, l'attuale e straordinario sistema operativo di Apple (Mac OS X) e il suo ambiente di sviluppo (Cocoa) sono derivati proprio da NextStep, oltre che da FreeBSD, naturalmente.
E che dire di Tim Berners Lee? Ha inventato il World Wide Web e per farlo ha scelto la piattaforma NextStep e il linguaggio objective-c, perchè allora non esisteva null'altro che gli consentittse di essere altrettanto veloce e flessibile nell'implementazione del prototipo del primo browser HTML.
Attrazione fatale
Nel maggio del 1996 una collega dei fondatori di Sinapsi, portò in ufficio il White Paper originale di James Gosling su Java che suo marito, ricercatore del CNR presso il Dipartimento di Elettronica del Politecnico di Milano, le aveva segnalato.
Fu attrazione fatale. Bastò una velocissima lettura del White Paper contenente poche parole magiche, virtual machine, garbage collector, single inheritance e interface per convincerci che quella nuova piattaforma, perchè una virtual machine non è che questo, avrebbe avuto parecchio successo tra gli sviluppatori stanchi di perdere tempo con i puntatori, l'allocazione della memoria e con il modello semantico schizofrenico di C++ .
Valutammo subito che la produttività individuale con java sarebbe migliorata significativamente, probabilmente di un ordine di grandezza rispetto a C++. Non ci curammo di tutte le critiche alla lentezza della java virtual machine. Diavolo, venivamo dal CLOS (Common LISP Object System) e conoscevamo benissimo tutti gli argomenti pro e contro quelle critiche. In fondo java non era altro che la summa teologica dell'object-oriented e aveva preso a piene mani da tutti e tre i filoni dell'object-oriented, CLOS compreso.
Pochi mesi dopo, Sinapsi, che in verità era stata fondata qualche mese prima della pubblicazione del White Paper di Gosling, divenne operativa e java faceva già parte del suo bagaglio tecnologico. La nostra propensione tanto precoce per java, oltre che essere motivata da considerazioni di natura squisitamente tecnica, fu orientata anche dalla nostra debolissima competenza sulla piattaforma Microsoft Windows.
Nel laboratorio di ricerca dell'Agip c'erano solo un paio di PC condivisi e un mucchio di workstation Sun Microsoystem, IBM Risc/6000 e Silicon Graphics. La java virtual machine ci avrebbe consentito, una volta gettatici con Sinapsi nel mercato della system integration, di fare il mestiere più antico del mondo, tamponando la nostra carenza di competenze sulla piattaforma Microsoft Windows che proprio in quegli anni si stava affermando nei centri servizi di realtà aziendali molto meno propense alla ricerca e al calcolo intensivo rispetto all'Agip.
No Unix, no Internet
Una tempesta solare
Con il termine *NIX si identificano tutte le varie versioni, compreso GNU/Linux, di UNIX, il sistema operativo senza il quale internet non sarebbe mai esistita. La nostra esposizione verso *NIX passò attraverso la prima SPARCstation di Sun Microsystem del 1989. Le workstation di Sun Microsystem uccisero letteralmente il mercato delle LISP-Machine, una delle quali, una straordinaria Texas Instruments Explorer II, era la risorsa più contesa del nostro laboratorio.
Aspettammo mesi dalla data dell'ordine, prima che la Sun ci consegnasse quella strana creatura tanto cost-effective rispetto alle LISP-machine. Infatti, in quello stesso periodo Banca Popolare di Bergamo decise di cominciare la sua storia di eretica tecnologica, ordinando a Sun un tale numero di SPARCStation che, oltre a garantire una rendita significativa all'account di Sun che portò a casa il contratto, mise in seria difficoltà la produzione americana.
Se non è zuppa è pan bagnato
Dopo quella prima attesissima workstation *nix, ne seguirono a breve molte altre, non solo di Sun. Anche di HP, di IBM e di Silicon Graphics (spettacolare quest'ultima), ma di wintel, come già accennato, poco o nulla e solo per scrivere articoli e presentazioni per qualche congresso di intelligenza artificiale applicata cui ci capitava di partecipare di tanto in tanto. Quando si utilizzano più versioni proprietarie di un sistema operativo il cui core è sostanzialmente comune, si cominciano anche ad apprezzare le tecnologie “agnostiche” rispetto ai differenti sapori della stessa ministra. A quel punto, per noi, un qualsiasi sistema operativo *nix era la minestra che, vestita in giacca e cravatta, viene detta anche commodity. Certo, ognuno aveva delle preferenze per questo o per quall'altro sapore, anche solo per abitudine, ma sono sottigliezze che non vale la pena approfondire in questo contesto. Ciò che invece vale la pena approfondire sono le tecnologie “agnostiche” rispetto al sistema operativo sottostante.
Grazie Emacs
Liberi e incoscienti
Già sulle LISP-Machine, senza quasi saperlo, utilizzavamo quintali di F/OSS. Lo stesso sistema operativo delle LISP-Machine era disponible in forma sorgente. Soprattutto, utilizzavamo Emacs (che nella versione della TI Explorer II si chiamava Zmacs), il notissimo editor per programmatori la cui versione in codice sorgente per *NIX fu donata da James Gosling, ancora lui, alla FSF, fondata a metà degli anni ottanta da Richard Stallman.
Emacs è stato il nostro primo strumento agnostico o libero che dir si voglia. Ha accelerato significativamente il nostro passaggio da LISP-Machine a workstation *NIX. Nessuno di noi imparò mai veramente l'arte dell'editing con VI, altrettanto famoso editor disponibile nativamente su qualsiasi sistema operativo *NIX, per il sempliceme motivo che conoscevamo Emacs e LeLisp meglio dell'italiano. Cui prodest impararsi una valanga di nuovi comandi per il VI quando su Emacs hai imparato a suonare come un concertista? Emacs è stato per noi anche l'abilitatore del canale FSF/GNU. Attraverso Emacs abbiamo scoperto, una volta passati su workstation *NIX, il mondo del Free Software (Software Libero). Cominciammo ad acquistarne le distribuzioni su CD , perchè internet era ancora di la da venire e, soprattutto, ad utilizzarlo molto profiquamente.
F/OSS come standard aziendale nella più grande impresa italiana già nel 1995
In particolare utilizzavamo il compilatore c/c++ di gcc. Il motivo era molto semplice. Il compilatore nativo che accompagnava allora le workstation di Sun era letteralmente inaffidabile.
Ricordiamo con una certa soddisfazione quando, nel 1995, riuscimmo a fronte di documentati errori di compilazione che cambiavano significativamente i risultati di studi di giacimento, a imporre il compilatore gcc come standard aziendale di Agip Spa per tutte le applicazioni sviluppate in C/C++.
La stessa Sun, conscia dei limiti di quel compilatore very basic, vendeva, a parte, la propria suite di compilatori professionali che, però, aveva un paio di difetti: il primo era che costava parecchio e il secondo che ci obbligava a seguire l'iter di acquisto che nelle grandi aziende non è mai breve e neppure indolore per chi abbia fretta di mettere le mani al codice e una certa allergia per la burocrazia.
