Informatica
Per stampare le informazioni, scegliere Stampa dal menu File.
Informatica
4. Evoluzione del software

All’evoluzione dell’architettura interna dell’elaboratore si sono naturalmente accompagnati lo sviluppo del software necessario a far funzionare le macchine (il sistema operativo), dei programmi (o applicazioni) che su tali macchine possono essere utilizzati e dei linguaggi in cui i programmi sono scritti.

I primi sistemi operativi facevano uso di modalità batch (sistemi di elaborazione sequenziale) di esecuzione dei programmi, attualmente ancora utilizzata solo nei centri di calcolo per l’elaborazione di programmi molto lunghi, dotati di funzioni e calcoli laboriosi; più comunemente oggi l’elaborazione avviene in modo interattivo, ovvero con una risposta immediata della macchina alle richieste dell’utente.

I primi linguaggi di programmazione di alto livello, sviluppati a partire dalla metà degli anni Cinquanta, furono il FORTRAN, orientato alle applicazioni scientifiche, e il COBOL, orientato alle applicazioni di carattere commerciale. Intorno agli anni Sessanta gli studi sull’intelligenza artificiale portarono allo sviluppo di linguaggi funzionali, costituiti essenzialmente da un sistema di definizioni di funzioni e dalle loro chiamate. Il più famoso di questi linguaggi è il LISP, ebbe poca fortuna inizialmente, riuscendo ad affermarsi solo a partire dalla fine degli anni Settanta, soprattutto in settori dove non era applicabile l’analisi numerica, ma si rendeva necessaria una programmazione in termini di simboli e strutture.

Le varietà degli utenti dei sistemi informatici ha accresciuto la differenziazione fra i sistemi operativi e i linguaggi di programmazione dei computer per l’utenza scientifica (macchine molto potenti, progettate per eseguire calcoli numerici) e di quelli per il vasto pubblico (macchine pensate prevalentemente per la stesura di testi, meno potenti, ma con maggiore facilità di utilizzo e migliori interfacce per l’utente). La necessità di poter rendere disponibile uno stesso computer a più utenti (multiutenza), in centri di ricerca, università e aziende, condusse allo sviluppo di sistemi operativi multiutente come Unix.

Per quello che riguarda i piccoli elaboratori, l’esigenza di unificare l’offerta sul mercato si tradusse nella progettazione di sistemi operativi più flessibili come, ad esempio, il System-360 dell’IBM, che permetteva di utilizzare il medesimo software su computer diversi, per prestazioni e prezzo.

La proliferazione degli utilizzi dei computer condusse i programmatori a richiedere e sviluppare linguaggi più potenti e versatili: nacquero così linguaggi come il C (dalle necessità degli sviluppatori di Unix), il Pascal (linguaggio creato per scopi didattici), Ada (su direttive del Dipartimento della Difesa); intanto il bisogno di scambiare dati e programmi in maniera affidabile fra i vari utilizzatori della tecnologia spingeva gli operatori verso lo sviluppo di una rete di trasmissione delle informazioni facilmente accessibile da qualsiasi parte del mondo. In particolare, si deve alla richiesta del Dipartimento della Difesa statunitense di progettare un sistema di trasmissione di dati abbastanza robusto da “sopravvivere” a un conflitto mondiale lo sviluppo, nella prima metà degli anni Settanta, dei protocolli TCP-IP, su cui è basato Internet.

La comparsa di computer più potenti fornì un notevole impulso agli studi di informatica in quanto, allargandosi l’utenza e l’utilizzo, si presentava la necessità di risolvere nuovi problemi sia di elettronica che di linguaggio.

Negli anni Ottanta nacquero linguaggi di programmazione da utilizzare su macchine speciali, come il C++, un’estensione del C orientata agli oggetti, per la programmazione di calcolatori paralleli, o il Prolog, progettato per l’intelligenza artificiale; vengono intanto sviluppati linguaggi orientati a compiti particolari e ben specifici: Postscript Adobe (per la gestione delle comunicazione con sistemi di stampa e visualizzazione), SQL (per l’interrogazione di database client-server), Tcl/Tk (per la realizzazione di interfacce utente), HTML (per la realizzazione di pagine Web), Mathematica (allo stesso tempo linguaggio di programmazione e software per la gestione di problemi matematici).