Perl è un linguaggio ideato da Larry Wall verso la fine degli anni ’80 che, nel decennio successivo, sarebbe divenuto sinonimo stesso di Web dinamico, consentendo ai web server di andare oltre le classiche pagine HTML statiche: grazie alla Common Gateway Interface (CGI) implementata da Rob McCool sul server NCSA HTTPD a fine 1993, il linguaggio divenne rapidamente lo strumento essenziale per realizzare script CGI pronti all’uso (es: guestbook, contatori con il numero delle visite); nacquero anche diversi “portali-database” con una vasta selezione di script come Not Matt’s Scripts. Nell’approfondimento di oggi ripercorreremo le vicende che hanno portato alla “consacrazione” del linguaggio.
L’identità, lo “scopo” delle Rete ed i processi alla base del suo funzionamento furono decisi tra il 1990 ed il 1993 (presentazione del primo NCSA Mosaic browser e del progetto WWW, nascita dell’URL etc.). Si trattò di una gestazione lenta e complessa durante la quale si presero in considerazione diverse idee e punti di vista – non sempre concordanti. Per capire meglio il legame tra Perl e web dinamico occorre tornare al biennio 1991-1992, periodo nel quale fecero la loro comparsa i primi gateway, server custom ideati da Berners Lee ed altri pionieri in grado di connettersi a determinate risorse – come un’applicazione del CERN, un databse Oracle e via dicendo. Secondo il punto di vista di Lee e soci i gateway avevano un solo scopo, ovvero quello di collegarsi ad un altro elemento/risorsa (network, applicazione, database). Lee concepiva il Web come un’interfaccia universale da utilizzare per accedere ad eterogenei sistemi di informazioni ed è per questo che incoraggiò la diffusione dei server single purpose.
Sul finire del 1992, Jim Davis presentava invece con Gateway to the U Mich Geography server una concezione alternativa di gateway. Perchè ricorrere ad un altro server quando, con un “piccolo add-on” (uno script), è possibile utilizzarlo anche per altre task? Il lavoro di David, scritto in Perl, era paragonabile ad una sorta di antenato delle attuali web API in quanto in grado di estrarre dati da un altro server in base alle query dell’utente. Berners-Lee si interessò naturalmente alla vicenda e, fedele all’idea di un sistema di consultazione delle notizie ordinato, dichiarò che “dal punto di vista della Rete” fosse preferibile lasciare che solo un server mettesse a disposizione determinate informazioni.
Davis aveva dato inconsapevolmente un prezioso contributo alla nascita del web dinamico: gli script, molto più versatili di un server web single purpose, aprivano infatti nuovi scenari sull’utilizzo del Web estendendone le potenzialità oltre la semplice visualizzazione di pagine statiche.
Il web server Perl HTTPD
Alcuni mesi dopo, si parla di inizio 1993, fu compiuto un ulteriore passo in avanti grazie allo studente Marc Van Heyningen a Bloomington (Università dell’Indiana) e Perl HTTPD – un web server sviluppato da zero in Perl ed in grado di garantire espandibilità e la possibilità di implementare varie funzionalità riducendo i downtime. Fu la necessità di creare pagine generate dinamicamente (documenti virtuali, utilizzando il termine scelto dallo stesso studente) a convincere Marc a creare un’alternativa alla soluzione del CERN (sarebbe stato difficile raggiungere l’obiettivo con il loro server).
Secondo Marc i server non dovevano essere destinati tanto ad un singolo utilizzo quanto ad un eventuale impiego per varie task: il server dove essere una sorta di cantiere aperto ed in costante evoluzione – concezione che poi sarebbe divenuta la norma per quanto riguarda lo sviluppo di software Web.
Perl HTTPD venne impiegato in ambito universitario per collegare varie risorse dati, rispettando in tal senso le “volontà” di Berners-Lee. Ciò non impedì a Marc ed altri studenti di sfruttarlo per varie attività come la pubblicazione di documenti, fotografie e notizie inerenti un noto caso giudiziario dell’epoca. Perl HTTPD fu un esperimento lungimirante ma il suo ciclo di vita fu abbastanza breve. Ad ogni modo l’idea alla base del “server multiuso” andò oltre la dipartita del progetto grazie alla condivisione del codice sorgente di Perl HTTPD online. Marc ricevette infatti un sorprendente numero di richieste e decise di accontentare gli estimatori del server.
La community di appassionati/pionieri riprese subito i lavori ed in breve tempo fu presentata una versione “portatile” del server (Plexus) sviluppata dal programmatore Tony Sanders. L’operato di quest’ultimo ispirò infine Rob McCool, citato in apertura, che ideò in un primo momento un htbin (un pacchetto per l’esecuzione di script) per il server NCSA HTTPD e successivamente procedette all’implementazione di CGI, avviando il “glorioso” periodo di Perl.
Tim O’Reilly, alcuni anni dopo, definì la Rete e Perl come parte di una vasta gamma di cambiamenti che stavano interessando in quel periodo il settore. In chiusura riportiamo un estratto della pubblicazione “The Open Source Revolution” (novembre 1998) curata da Reilly ed Esther Dyson nel quale venne introdotto anche il neologismo “infoware“, legato all’affermazione del linguaggio e del web dinamico.
“Di recente ho parlato con alcuni amici che non dispongono di un personal computer. Stavano pensando di procurarsene uno in modo da poter andare su Amazon e comprare dei CD. [Volevano un PC] non per utilizzare “Internet” [o il Web] ma per andare su Amazon. Ecco, questa è la classica definizione di killer application: un’applicazione che spinge qualcuno ad andare a comprare un computer. La cosa interessante è che questa killer application non è un’applicazione desktop per la produttività o un sistema software di back-office enterprise, ma qualcosa di completamente nuovo, qualcosa che potreste chiamare “applicazioni di informazioni” o anche “infoware”.
Le applicazioni di informazioni sono utilizzate per computerizzare task non alla portata del vecchio modello di computing. Pochi anni fa, se volevi effettuare una ricerca in un database con milioni di libri, dovevi parlare con un bibliotecario [che conosceva l’arcana sintassi di ricerca degli strumenti disponibili e poteva essere in grado di individuare quel che cercavi]. Se volevi acquistare un libro andavi in una libreria e consultavi la relativamente contenuta selezione presente. Adesso, ogni giorno, decine di migliaia di persone trovano ed acquistano libri online da [un] database [con milioni di titoli] [Amazon ndr].
Il segreto è che i computer [si sono ispirati al modo con cui le persone comunicano tra loro, avvicinandovisi]. Per costruire la propria interfaccia le applicazioni web si affidano all’Inglese: parole ed immagini [al posto di un’arcana sintassi comprensibile solo da chi ha familiarizzato con il software]”.
Fonti
- https://opensource.com/life/16/11/perl-and-birth-dynamic-web
- https://web.archive.org/web/20000815230603/http://www.edventure.com/release1/1198.html