vai alla Homepage di Apogeonline

 

Cos'è OpenPress


Glossario


Linux-FAQ


Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico


Libri:

Italian crackdown

Open Sources

MediaMorfosi


Risorse


Feedback


vai alla Homepage di Apogeo Editore

Vai alla homepage di OpenPress

Torna al sommario
di Open Sources
Hardware, software e infoware
di Tim O'Reilly

Parlavo recentemente con alcuni amici che non possiedono un computer; stavano pensando, però, di acquistarne uno per usare Amazon.com e comprare libri e CD. Attenzione: non per usare "l'Internet", non per usare "il Web": per usare Amazon.com.

Ecco un esempio classico di "killer application": di quel genere che, da sola, basta a convincere qualcuno ad andare a comprarsi il computer.

È notevole che una killer application, oggi, non sia più un programma di produttività individuale o anche un software aziendale di back-office, ma un singolo sito Web. Se cominciamo a pensare ai siti Web come applicazioni, ci accorgeremo presto che essi rappresentano una specie del tutto nuova, qualche cosa che potremmo chiamare "applicazione informativa" o anche "infoware".

Le applicazioni informative servono per computerizzare compiti ingestibili dal vecchio modello informatico. Solo pochi anni fa, per fare ricerche all'interno di un database composto da un milione di libri ci si sarebbe dovuti rivolgere a un bibliotecario esperto della sintassi arcana degli strumenti informatici di ricerca allora disponibili e che - forse - avrebbe potuto trovare quanto cercato. Per comprare un libro si andava in una libreria e se ne esaminava la scelta, sempre relativamente ridotta. Oggi, ogni giorno, decine di migliaia di persone senza preparazione specifica trovano e comprano online libri in quel database da un milione di record.

Il segreto? I computer hanno compiuto un passo decisivo nell'avvicinarsi al modo in cui le persone comunicano fra loro. Le applicazioni residenti su Web costruiscono la loro interfaccia con la lingua corrente - parole e immagini anziché minuti controlli specializzati che assumono un significato solo per chi abbia prima imparato il software.

Il software tradizionale integra dosi modiche d'informazione entro una quantità ingente di software; l'infoware integra modiche dosi di software in una quantità ingente d'informazione. Le "azioni" richieste all'utente da un infoware sono di solito abbastanza semplici: fare una scelta, comprare o vendere, inserire qualche dato e ottenerne un risultato personalizzato.

Queste azioni sono per lo più eseguite da uno script correlato a un collegamento (link) ipertestuale tramite una specifica d'interfaccia nota come CGI (Common Gateway Interface). La CGI definisce un modo in cui un server Web può richiamare un qualunque programma esterno e restituirne l'output in forma di pagina Web. I programmi CGI possono non essere altro che piccoli script che eseguono semplici calcoli, ovvero possono connettersi a server di database back-end di grandi dimensioni. Ma anche quando un sito cela un motore software complesso, l'interfaccia utente non risulta composta di software tradizionale. Essa consiste infatti di pagine Web non necessariamente create da un programmatore, ma magari da un giornalista, da un redattore o da un grafico.

Le interfacce informative sono normalmente dinamiche. Per esempio, la presentazione dei libri in Amazon.com è determinata da classifiche di vendita aggiornate di ora in ora. I clienti possono aggiungere al volo, in tempo reale, commenti e voti, che diventano parte integrante dell'interfaccia ad alto tasso informativo che supporta le decisioni degli acquirenti. Un sito progettato per aiutare l'utente a comprare o a vendere online quote azionarie deve fornire non solo i valori aggiornati delle azioni ma anche le ultime notizie rilevanti, informazioni sulle aziende, consigli di analisti e magari anche gruppi di discussione composti da utenti. L'interfaccia informativa consiste dunque di una variata miscela di documenti generati manualmente, di dati generati da programmi e di collegamenti a server per applicazioni specializzate (email, chat, conferenze online).

Le interfacce informative sono meno efficienti delle pure interfacce software nello svolgere compiti ripetitivi, ma sono molto preferibili per compiti eseguiti raramente, oppure ogni volta in maniera diversa. In particolare, sono adatte alle interfacce in cui l'utente è indotto a operare una scelta sulla base di informazioni presentategli. Sia che si acquisti un libro o un CD su Amazon.com, o uno stock d'azioni su E*Trade, l'atto dell'acquisto in sé non è che la parte più banale dell'interazione. È la qualità informativa fornita in supporto alla decisione che forma il cuore dell'applicazione con cui s'interagisce.

Il modo in cui il Web sta trasformando l'intero paradigma informatico non mi è mai apparso tanto chiaro quanto nel 1994, prima cioè che la Microsoft si convertisse alla religione Web. Mi trovavo allora in Giappone, in occasione di un evento NTT, a dividere il palcoscenico (via satellite) con il vice-presidente di Microsoft, Craig Mundie. Mundie stava dando dimostrazione della progettata interfaccia del server "Tiger" di Microsoft, che avrebbe dovuto rendere possibile il video-on-demand. L'interfaccia emulava Windows, con menu a tendina in risposta a una sorta di cambiacanali in forma di telecomando virtuale.

Risultava abbastanza chiaro a chiunque conoscesse il Web che l'interfaccia giusta per il video-on-demand, se e quando ne fosse venuto il momento, era un'interfaccia informativa in stile Web. Suona ironico che già allora la Microsoft si trovasse per le mani l'interfaccia perfetta del video-on-demand: Cinemania, la sua enciclopedia del cinema su CD-ROM. Quale sistema migliore per scegliere un film che ricercarlo in un elenco per categorie, leggerne qualche recensione, vederne qualche clip e quindi, ultimato il compitino, fare clic su un link ipertestuale e farlo partire? Fuorché l'ultimo passo, Cinemania aveva tutto questo. L'autentica potenza dei prodotti informativi ipertestuali si rivela solo quando essi sono connessi a dei server di rete. Di colpo, l'informazione non è più fine a se stessa, ma è un'interfaccia che permette a chi la usa di controllare uno spazio d'applicazione di gran lunga troppo complesso per un'applicazione software tradizionale (Amazon.com, è chiaro, questo lo sa bene: la loro acquisizione dell'Internet Movie Database, una raccolta di recensioni di utenti e di informazioni assortite sui film, li piazza in pole position non solo per la vendita online di videocassette, ma anche come futura rampa per i servizi di video-on-demand).

Le interfacce informative sono ideali per applicazioni di ausilio alle decisioni, ma sono utili anche per compiti occasionali. In un certo senso, un esempio della medesima tendenza sono i "wizard", le procedure interattive per l'installazione del software.

Esistono anche applicazioni informative che interagiscono con l'utente attraverso interfacce più semplici e più affini al software, ma che forniscono un risultato informativo dinamico. L'esempio che più mi piace fare è una cosa che solo poco tempo fa sarebbe stata praticamente impensabile come applicazione: ottenere carte e indicazioni geografiche. In maps.yahoo.com, sito dedicato alla carte geografiche, s'inseriscono due località e se ne ottiene una mappa stradale e una serie di indicazioni per andare dall'una all'altra.

D'accordo: ma che cosa ha tutto ciò a che fare con il software Open Source?

Una possibile risposta è ovvia: la maggior parte delle tecnologie che rendono possibile il Web sono Open Source.

Internet stessa - e mi riferisco a funzioni quali il protocollo di rete TCP/IP e a elementi chiave d'infrastruttura come il Domain Name System (DNS) - sono stati sviluppati tramite un processo Open Source. Si potrebbe facilmente osservare che il programma Open Source BIND (Berkeley Internet Name Daemon), che esegue il DNS, è la singola applicazione più vitale per l'Internet. Anche se la maggior parte del browsing su Web è fatto con prodotti proprietari (Navigator di Netscape e Internet Explorer di Microsoft), entrambi provengono dai lombi dell'implementazione Web originale - e Open Source - e dalle specifiche a protocollo aperto di Tim Berners-Lee. Secondo la ricognizione automatica dei server Web compiuta da Netcraft (http://www.netcraft.co.uk/survey), oltre il 50% di tutti i siti Web visibili sono serviti dal server Web Open Source Apache. La maggioranza dei contenuti dinamici su base Web viene generata da linguaggi di scripting Open Source (Perl, Python, Tcl, ecc).

Ma queste ovvietà non raccontano l'intera storia. Perché, dopo tutto, sarà il Web, anziché qualche tecnologia proprietaria, la base delle applicazioni informative in rete di domani?

Microsoft, di fatto, era avanti a tutti nell'intuire il potenziale della multimedialità online. Nel 1994, anno del decollo del Web, i CD-ROM Microsoft come Encarta, enciclopedia online, e Cinemania, di cui s'è detto, superavano il Web nel fornire documenti online riccamente multimediali, collegati ipertestualmente. Microsoft finì addirittura con l'accorgersi dell'importanza di fornire risorse informative tramite reti online.

Uno solo era il problema nella concezione Microsoft del Microsoft Network: altissime barriere all'entrata. I fornitori di contenuti avrebbero dovuto usare strumenti Microsoft, sottoporsi a un esame d'ammissione di Microsoft e pagare per esserci. Di contro, un sito Web poteva essere allestito da chiunque. Il software necessario era gratis. Le specifiche per la creazione di documenti e contenuti dinamici erano semplici, aperte e complete di chiara documentazione. Cosa ancora più importante, tanto la tecnologia che l'etica Internet rendevano legittimo il copiare dai siti altrui. Le pagine HTML (HyperText Markup Language) adoperate nell'implementazione di varie funzioni su un sito Web si potevano tranquillamente salvare e imitare. Anche gli script CGI usati per creare contenuti dinamici erano copiabili. Proprio in virtù della sua accessibilità, Perl diventò il linguaggio d'elezione delle CGI, malgrado la maggiore velocità d'esecuzione di linguaggi tradizionali quali il C. Perl è potente abbastanza per scrivere applicazioni importanti, ma allo stesso tempo un programmatore dilettante può usarlo in piccoli script per compiti specializzati. Soprattutto, visto che Perl non è un linguaggio compilato, gli script in uso sulle pagine Web possono essere visualizzati, copiati e modificati dagli utenti. Si aggiunga che sono stati per tempo allestiti e condivisi fra gli sviluppatori Web degli archivi pieni di utili script Perl. L'agevole clonazione di siti Web costruiti con il trio HTML + CGI + Perl significava che, per la prima volta, la creazione di applicazioni potenti era alla portata di non-programmatori.

È interessante, a questo proposito, osservare che i primi tentativi dell'industria del software per migliorare l'interfaccia Web tramite contenuti attivi (tecnologie come gli applet Java dal lato del browser e i controlli ActiveX di Microsoft) fallirono, perché indirizzati a programmatori di professione e non imitabili e implementabili facilmente dai dilettanti che, di fatto, stavano costruendo il Web. I produttori, cioè, vedevano il Web in termini di software, non comprendendo che il Web cambiava non solo la natura delle applicazioni create, ma anche gli strumenti necessari ai loro creatori.

Gli analisti dell'industria vanno pronosticando da anni l'eclisse di Perl e CGI a opera di tecnologie software più avanzate. Ma ancora oggi, quando i siti Web più grandi impiegano staff immensi di professionisti della programmazione, e tecnologie nuove come le ASP (Active Server Pages) di Microsoft e le servlet Java di Sun stanno soppiantando le CGI con le loro prestazioni superiori, ancora oggi la popolarità di Perl è in crescita. Perl, così come altri linguaggi di scripting Open Source, quali Python e Tcl, rimane d'importanza centrale in siti Web grandi e piccoli: perché le applicazioni infoware sono essenzialmente diverse da quelle software, e richiedono strumenti diversi.

Date un'occhiata a un sito immane come Yahoo!. Vedrete che, dietro le quinte, schiere di amministratori di sistema e di programmatori fanno e disfano senza sosta il prodotto. I contenuti dinamici non sono generati in automatico così semplicemente: vogliono spesso un aggiustamento manuale, di solito fatto con strumenti di scripting veloci e non molto raffinati.

"Qui a Yahoo! noi non creiamo contenuti: li assembliamo", dice Jeffrey Friedl, autore del libro "Mastering Regular Expressions" e programmatore Perl a tempo pieno a Yahoo!. "Riceviamo materiali da migliaia di fonti, e ognuna usa un suo formato. Pratichiamo un intensissimo trattamento dei materiali, per ripulirli o per trovare loro la giusta collocazione su Yahoo!". Per esempio, in quotes.yahoo.com, l'area borsistica di Yahoo!, per collegare con un link un servizio a un ticker (banner pubblicitario scorrevole), Friedl ha dovuto scrivere un programma di riconoscimento in grado di ricercare oltre 15.000 nomi di aziende. Ciò è stato reso possibile dalla capacità di Perl di analizzare, attraverso potenti espressioni regolari, del testo non formattato.

Perl è anche un componente centrale nell'infrastruttura d'amministrazione di sistema che mantiene il sito vivo e aggiornato. Un enorme numero di script in Perl perlustra in continuazione i server di Yahoo! e i loro link a siti esterni, precettando lo staff ogni qual volta un URL non restituisca il risultato dovuto. Il più noto di questi "crawler" è chiamato "the Grim Reaper", "la Cupa Mietitrice". Se la connessione automatica a un URL fallisce oltre un certo numero di volte, la pagina viene depennata dalla directory di Yahoo!.

Anche Amazon.com consuma Perl in quantità industriali. Il suo ambiente di authoring è una dimostrazione della potenza di Perl nel tenere assieme strumenti disparati: è un "linguaggio colla" per eccellenza. Un utente crea un documento nuovo con un modulo che richiama un programma Perl, che genera un documento parziale in SGML e quindi lancia Microsoft Word o GNU Emacs (l'utente lo decide), ma integra anche CVS (Concurrent Versioning System) con gli strumenti proprietari SGML di Amazon.com. Le classi SGML di Amazon.com vengono usate per generare sezioni diverse del sito Web (per esempio, HTML con o senza grafiche) dal medesimo codice sorgente. Un parser basato su Perl traduce lo SGML in HTML per l'approvazione, prima che l'autore invii le modifiche.

Perl è stato definito "il nastro adesivo di Internet" e, come il nastro adesivo, viene utile nei modi più inattesi. Come un set cinematografico allestito usando nastro adesivo, un sito Web è spesso montato e smontato nel giro di un giorno, e richiede per questo strumenti leggeri e soluzioni veloci ed efficaci.

Il fiasco di Microsoft nel riportare l'infoware a software per mezzo di ActiveX si spiega col modo in cui i paradigmi cambiano nell'industria informatica. Quando un certo segmento di mercato diviene maturo, gli attori in gioco hanno un interesse enorme, per quanto dissimulato, nel mantenere lo status quo. È questo che rende loro difficile abbracciare alcunché di veramente nuovo, e che mette in grado, o meglio, obbliga, i nuovi attori ("i barbari", per dirla con Philippe Kahn) a intervenire per creare nuovi mercati.

Il prevalere di Microsoft su IBM nel dettar legge all'industria informatica è un esempio classico di come ciò si sia svolto nel passato recente. IBM ha ceduto il mercato a Microsoft perché non ha colto come il trapasso di potere non fosse solo dalla "casa di vetro" al desktop, ma anche dall'hardware proprietario all'hardware come categoria merceologica, e dall'hardware al software.

Allo stesso modo, e a dispetto dei suoi sforzi per mettere il piede in varie imprese collegate all'informazione, Microsoft non si accorge ancora (ma potrebbe accorgersene e continuare a essere Microsoft?) che il software, come essa l'ha sempre conosciuto, non è più l'impulso centrale alla creazione di valore nell'industria informatica.

Ai tempi del dominio IBM, l'hardware era re e le barriere per venire ammessi nel business dei computer erano alte. Quasi tutto il software era opera dei costruttori di hardware, o di produttori di software loro satelliti.

La disponibilità del PC come piattaforma e non più come marchio di fabbrica (così come lo sviluppo di piattaforme a sistemi aperti come Unix) ha sovvertito le regole. Improvvisamente le barriere si sono abbassate e imprenditori come Mitch Kapor di Lotus e Bill Gates sono entrati in orbita.

Se si guarda ai primordi del Web, si può distinguere un'impronta simile. Il monopolio di Microsoft sul software desktop ha reso insostenibilmente alte le barriere d'entrata nel business del software. Di più, le applicazioni software sono diventate sempre più complesse, con Microsoft a erigere deliberatamente ostacoli all'entrata di concorrenti nel mercato. Non esisteva più la possibilità che un programmatore, lavorando in solitudine nel suo garage (o nella sua soffitta), producesse un qualche impatto.

È questa forse l'osservazione più significativa a proposito del software Open Source: abbassa le barriere per entrare nel mercato del software. Un prodotto nuovo si può provare gratis, ma non solo, l'utente se lo può personalizzare, sempre gratis. Il codice sorgente è disponibile all'ispezione totale dei concorrenti. Se una caratteristica non piace, la si può togliere o affiancare o reimplementare. Quando una modifica è a sua volta offerta liberamente alla comunità, può venire adottata in modo esteso in men che non si dica.

E dal momento che gli sviluppatori (almeno nella fase iniziale) non stanno cercando la competizione nel segmento business, preferendo concentrarsi sulla risoluzione di problemi reali, c'è spazio per la sperimentazione in un ambiente meno punitivo. Com'è anche stato detto, col software Open Source ciascuno "si cucina la minestra che vuole". Grazie al paradigma dello sviluppo distribuito, in cui le nuove funzioni vengono aggiunte dagli utenti, evoluzione e progettazione dei programmi Open Source vanno di pari passo.

È facile capire che le forze evolutive del mercato sono più libere di operare secondo la loro natura allorché sono meno gravate da barriere o da strategie di marketing (l'equivalente delle protesi per certi handicap fisici).

     L'evoluzione non produce un vincitore, ma la diversità.

È proprio nella natura idiosincratica di tanti dei programmi Open Source che risiede la loro forza. Una volta di più, il successo di Perl è istruttivo. Larry Wall creò Perl per automatizzare alcuni compiti ripetitivi che gli si presentavano nell'amministrazione di sistema. Dopo aver rilasciato su Internet il software, trovò applicazioni sempre più numerose e il linguaggio crebbe, spesso in direzioni inaspettate.

Perl è stato descritto come "un linguaggio lavandino" a causa delle sue caratteristiche, caotiche agli occhi dei creatori di linguaggi più "ortogonali". Ma spesso il caos rivela una struttura più ricca: può addirittura essere indispensabile per imitare quello che è intrinsecamente complesso. I linguaggi umani sono complessi perché riproducono la realtà. Scrive Wall nell'intervento contenuto in questo volume: "La praticità della lingua inglese sta nel suo disordine. Dato che l'Inglese è disordinato, si adatta bene a mappare lo spazio dei problemi, ch'è pure disordinato... Analogamente, Perl fu progettato per essere disordinato (anche se nel modo meno sgradevole possibile)".

Il paradigma di sviluppo Open Source è una maniera incredibilmente efficiente di mettere gli sviluppatori al lavoro sulle funzioni che contano davvero. Il nuovo software è sviluppato in stretto feedback circolare con le necessità dei clienti, senza le distorsioni indotte dalle forze del marketing o da decisioni d'acquisto provenienti dall'alto. Lo sviluppo software dal basso è quel che ci vuole per risolvere i problemi che "dal basso" provengono.

Adoperando il software Open Source che è al cuore del Web e il suo paradigma semplificato di sviluppo, imprenditori come Jarry Yang e David Filo hanno fatto proprio questo. Non è per caso che Yahoo!, il sito più grande e di maggior successo al mondo, sia costruito attorno a software Open Source disponibile liberamente: il sistema operativo FreeBSD, Apache e Perl.

Così come è avvenuto l'ultima volta, la chiave del prossimo stadio dell'industria informatica è infatti nella liberazione dello stadio precedente dai vincoli proprietari. Come ha notato Bob Young di Red Hat, distributore leader di Linux, il suo fine non è di scalzare Microsoft dal trono dei sistemi operativi, ma piuttosto di restringere il valore monetario di quel mercato. Il punto è che il software Open Source non deve proporsi di battere Microsoft facendo il suo gioco, ma invece di cambiare la natura del gioco.

Di certo, e malgrado le loro capitalizzazioni astronomiche, i fornitori di applicazioni informative quali Amazon.com e Yahoo! sono ancora piccoli a paragone di Microsoft. Ma la scritta sul muro parla chiaro: la punta avanzata dell'interazione uomo-computer, le opportunità di computerizzare compiti mai computerizzati prima, risiedono non nel software, ma nell'infoware.

Nel momento in cui emergono queste nuove "killer application", il ruolo del software appare sempre più quello di agevolare l'infoware. Infinite sono le opportunità commerciali per chi fornisce server Web, back-end per database, server per applicazioni e linguaggi di programmazione di rete come Java, purché questi prodotti sappiano adattarsi al nuovo modello anziché tentare di soppiantarlo. Si noti che in passato, nella migrazione da un'industria informatica hardware-centrica a una software-centrica, l'hardware non è scomparso; l'IBM è tuttora un'azienda fiorente (anche se molti dei suoi concorrenti si sono ridotti, o sono malridotti). Ma altri attori dell'hardware sono emersi che hanno saputo adottare le regole nuove: Dell, Compaq e soprattutto Intel.

Intel ha capito che la sua vera opportunità non era vincere la guerra dei sistemi, ma fornire le armi ai combattenti.

La sfida autentica, per il software Open Source, non è: rimpiazzerà Microsoft nel predominio sui desktop? ma piuttosto: saprà escogitare una strategia commerciale che gli consenta di diventare l'"Intel Inside" della prossima generazione di applicazioni per computer? Se non vorranno capire questo, i pionieri dell'Open Source saranno spinti brutalmente da parte (come avvenne a Digital Research nel business dei sistemi operativi per PC) da chi avrà intuito precisamente dove stanno le vere occasioni.

Comunque vada, il software Open Source ha già creato una biforcazione di percorso. Proprio come i pionieri del microcomputer (hardware e software) allestirono la scena per l'industria odierna, il software Open Source ha allestito la scena per il dramma che va svolgendosi sotto i nostri occhi, e che condurrà a una riforma radicale del paesaggio dell'industria informatica nel corso dei cinque o dieci anni a venire.

Copyright © 1995-1999 Apogeo srl, Milano