Linguaggi di scripting: presente e futuro

Immaginiamoci un giorno di poter programmare la nostra casa, per esempio con la lavatrice che si avvia quando usciamo e sceglie un programma impostato giorni prima, del quale ci ricorda tramite una notifica sullo smartphone. Pensiamo a quanto questa possibilità possa essere utile per chi ha una disabilità visiva o motoria, per esempio. Tutto questo può essere possibile oggi solo con costi eccessivi, nonostante già vi siano molti elettrodomestici “smart” in commercio. Ma se un giorno la nostra casa fosse collegata a un solo sistema operativo, dal quale possiamo impostare delle automatizzazioni tramite dei linguaggi di scripting per l’ambiente casalingo? Non è un futuro troppo lontano. 

Per linguaggio di scripting in informatica si intende un linguaggio di programmazione interpretato, ovvero un linguaggio che ha bisogno di un proprio programma per essere eseguito. Immaginiamoci il computer ai suoi albori. Inevitabilmente ogni programma, o software, si basava sul linguaggio che la macchina, o hardware, comprendeva e quindi eseguiva. Per fare ciò, in passato l’unica scelta era utilizzare una rappresentazione simbolica del linguaggio della macchina, anche conosciuto come Assembly. Al giorno d’oggi, è ancora possibile programmare in Assembly, ma la scelta ricade maggiormente su linguaggi di programmazione più intuitivi, che traducono le proprie istruzioni e quindi compilano il codice da eseguire in linguaggio macchina. 

In un periodo successivo sono nati anche i linguaggi di scripting o, come abbiamo detto, linguaggi di programmazione che non vengono compilati, ma interpretati da un programma aggiuntivo. In pratica abbiamo un “software”, un programma a tutti gli effetti che legge lo “script” ed esegue le istruzioni contenute in esso, basandosi sul proprio linguaggio macchina. In altre parole, uno script non è un file eseguibile, ma fornisce delle istruzioni che vengono interpretate da un file eseguibile. 

Gli script spesso sono molto più semplici di un programma scritto in un linguaggio di programmazione, e nascono dall’esigenza di automatizzare, in modo più semplice, alcune operazioni e fornire varie istruzioni ai software di sistema. 

 

Presente 

Nel presente i linguaggi di scripting sono molto diffusi nei nostri computer. Se si ha dimestichezza con i videogiochi, basta pensare che tante modifiche al videogioco originale, i cosiddetti “mod” dipendono da script che il videogioco legge ed esegue andando a modificare il funzionamento originale. Anche il famoso Microsoft Office fa utilizzo di script: i Macro, ovvero alcune automatizzazioni inserite nei documenti di office, non sono altro che script in linguaggio Visual Basic Script. Ma un esempio di portata immensa si può fare con Internet, infatti i siti web sono dinamici grazie a vari linguaggi: HTML, Javascript, PHP e altri, che sono linguaggi di scripting interpretati dal browser o dal server dove si trova fisicamente il sito. I linguaggi interpretati dal nostro browser sono detti “lato client”, e sono HTML, Javascript e CSS, mentre quelli interpretati dal server sono detti “lato server” e i più diffusi sono PHP e ASP. 

Un altro utilizzo è dato dal concetto di smart-home. Già da anni sono presenti varie soluzioni che comandano gli elettrodomestici “smart” grazie a delle catene di condizioni, per esempio: se il telefono si collega al modem di casa si accendono le luci, questo avviene grazie a degli script che interagiscono con gli strumenti dotati di sistema Android. Oppure le risposte della famosissima Alexa: se quando chiediamo che tempo fa vogliamo ricevere anche qualche informazione in più, esse sono impostabili grazie a degli script chiamati Alexa Skills. 

Come abbiamo detto quindi, anche gli elettrodomestici già si prestano a questi linguaggi di programmazione. La spiegazione è semplice: non avendo una infrastruttura elaborata come quella dei computer, è più facile che il sistema operativo dell’elettrodomestico “smart” esegua un semplice script piuttosto che convertire/compilare un programma nel proprio codice macchina. Questo può offrire una moltitudine di impostazioni orientate all’utilizzo che ne fa l’utente, comprese anche una accessibilità e adattabilità molto più elevate. Luci che si accendono grazie a un battito di mani o uno schiocco delle dita, già possibile? Sì, ma spesso grazie a delle funzioni implementate e difficilmente personalizzabili. Quando si potrebbe utilizzare uno script scritto in pochi minuti da una persona capace di programmare. Infatti, per ora stiamo solo ipotizzando un’evoluzione dell’odierno concetto di Smart Home, molto complesso e poco stabile quando si tratta di offrire una soluzione a 360 gradi e possibilmente durevole nel tempo. Questo a causa, appunto, di una poca apertura da parte delle case produttrici per ciò che riguarda la compatibilità dei propri prodotti con quelli degli altri marchi, ma anche di gamme diverse dallo stesso produttore. 

 

Futuro 

In futuro sarà possibile, sicuramente, una maggiore personalizzazione dell’Internet of Things per l’ambiente casalingo. La tecnologia IoT, infatti, è ben più estesa di ciò che riguarda la Smart Home, basta pensare all’applicazione che ci informa di quando l’autobus sarà presso la nostra fermata. Ma stiamo parlando di grandi lavori a progetto, che poco hanno a che vedere con gli strumenti Smart venduti sul mercato per le nostre case, e che spesso sono poco più che un capriccio. Ma, come avviene per la maggior parte delle tecnologie su larga scala, prima o poi diventa inevitabile una standardizzazione del prodotto con una maggiore apertura per ciò che riguarda il proprio sviluppo. Ne sono un esempio gli smartphone: vi ricordate i vecchi “videofonini”? A un certo punto della storia tutti i modelli (a eccezione di iPhone e pochi altri) sono passati al sistema operativo Android. E non è stata una scelta casuale. Android è infatti un sistema operativo Open Source, ovvero con il proprio codice sorgente distribuito al pubblico, gratuitamente. Chiunque può vedere come è programmato il sistema Android, e quindi anche modificarlo a proprio piacimento, dopo averlo scaricato. Senza addentrarci troppo sulla differenza tra Open Source o meno, è importante notare come, per il cliente, dopo anni, inizia a essere necessaria una maggiore integrazione tra dispositivi. E questo può essere l’inizio dell’ennesima innovazione nelle nostre vite: la possibilità di poter automatizzare l’integrazione tra i dispositivi della nostra casa. Il risultato sarà che, invece di dare ordini alla nostra Smart Home per fare cose spesso inutili, i dispositivi stessi ci ricorderanno di fare cose utili, aiutandoci in esse. 

 

Emanuele Giuliani