Breve storia della programmazione

Breve storia della programmazione

Al giorno d’oggi utilizziamo computer e applicazioni facilmente rispetto ad un centinaio di anni fa, dove la programmazione degli stessi e addirittura il loro funzionamento a livello meccanico, richiedevano la collaborazione di figure professionali altamente qualificate. Dai primi apparecchi meccanici ai più recenti linguaggi di programmazione, l’evoluzione ha compiuto un salto importante nel giro di pochi decenni, senza quasi che ce ne accorgessimo.

Partendo dall’inizio…

Telaio Jacquard

By David Monniaux (Own work) – CC-BY-SA-3.0 via Wikimedia Commons

Il primo passo compiuto verso la moderna programmazione, fu fatto nel 1801, quando Joseph Marie ideò il “Telaio Jacquard”, un telaio per la tessitura meccanico ed automatizzato mosso da una serie di schede perforate intercambiabili tramite un sistema di contrappesi cilindrici. Questo stesso metodo sarà utilizzato più tardi da Charles Babbage (matematico, filosofo e scienziato inglese) come metodo per l’immagazzinamento dei programmi per la sua macchina analitica, ovvero il primo prototipo di un computer meccanico sviluppato per eseguire compiti generici, che non si limitasse solamente a semplici calcoli matematici, ma che potesse anche “ragionare”.

Successivamente, tra il 1842 e il 1843, Ada Lovelace (matematica inglese e unica figlia legittima del poeta Lord Byron), tradusse un Ada Lovelacearticolo in inglese (dall’italiano) su Babbage e sulla macchina analitica, apportando anche delle note personali; una di quelle note descrive un algoritmo utilizzabile per la macchina analitica che sarà successivamente rinominato come il “Primo programma informatico” della storia, rendendola a tutti gli effetti la prima programmatrice. Lovelace teorizzò inoltre l’idea che i computer in un futuro avrebbero potuto riprodurre musica e giocare a scacchi.

In suo onore, un linguaggio di programmazione utilizzato dal dipartimento di difesa degli Stati Uniti, è stato intitolato a suo nome.

Primi passi verso la modernità…

Nel 1889, Herman Hollerith (ingegnere statunitense), sviluppò l’idea di un sistema elettrico di tabulazione che potesse leggere i dati, censito ufficialmente nel 1890 e grazie al quale vinse IBM Logosuccessivamente un dottorato di ricerca alla Columbia University. Questa macchina tabulatrice aveva alla base le stesse schede perforate di Charles Babbage, differenziandosi sulla specificazione che esse fornivano, ovvero gli output e gli input e non più direttamente il programma. Ogni scheda infatti rappresentava delle risposte utilizzando un codice particolare, chiamato oggi “Codice Hollerith” che, collegandosi ad un circuito elettrico, spegneva e riaccendeva quest’ultimo a seconda della presenza o meno dei fori nelle schede. Nel 1896 fondò una propria azienda, la Tabulating Machine Company che, dopo varie fusioni e cambiamenti di nome, nel 1924 diventò la International Business Machines Corporations o meglio conosciuta con il suo acronimo IBM. Nel frattempo, nel 1906, sviluppò inoltre un pannello di controllo che permetteva alle macchine di performare differenti tasks senza dover essere ricostruite.

Testato solamente nel 1942, ma apparso nel 1937, il primo computer digitale totalmente elettronico (Atanasoff-Berry, ABC), fu impiegato per risolvere equazioni lineari. Nonostante non fosse programmabile, utilizzava i numeri binari, effettuava i calcoli solamente attraverso circuiti elettronici al posto di ingranaggi, mentre il sistema era organizzato in due parti: una che si occupava dell’elaborazione dati e l’altra della memorizzazione tramite memorie da rigenerare.

Atanasoff Berry

© Mark Richards

La seconda guerra mondiale…

Allo scoppiare della seconda guerra mondiale, fu impiegato il Colossus, il secondo computer elettronico programmabile nella storia dell’informatica (il primo può essere considerato il Z1 nazista), costruito e messo in opera nel Regno Unito per forzare e leggere i codici sviluppati dai nazisti per proteggere la corrispondenza tra Adolf Hitler e i suoi capi di stato maggiore, oltre che alle comunicazioni giapponesi. Fu sviluppata sul concetto della “macchina di Turing” teorizzato per l’appunto da Alan Turing, uno dei padri dell’informatica.Primo bug storia

Durante quegli anni fu anche rilevato il primo “bug” della storia: nel 1947, Grace Murray Hopper, un ammiraglio della flotta americana e pioniere della programmazione all’interno di IBM, quando una falena rimase intrappolata nel calcolatore Harvard Mark II (sviluppato da Howard H. Aiken, fautore concettuale del computer Harvard Mark I dell’IBM). Quando la falena fu rimossa, il computer fu “debugged”.

L’ Electronic Delay Storage Automatic Calculator (EDSAC), nel 1949, fu invece il primo computer elettronico capace di immagazzinare al suo interno un programma (a programma memorizzato): calcolò una tavola di numeri quadrati e una lista di numeri primi. Occupava una superficie di 20 mq e il consumo energetico ammontava a 12 KW.

I linguaggi di programmazione…

Pur essendo il primo apparso verso la fine degli anni ’40 (il primo linguaggio di programmazione fu sviluppato da Short Code sulla base dell’idea di Von Neumann, ma era compilato a mano e quindi doveva essere tradotto in numeri di binari a mano), ma il primo linguaggio di programmazione di alto livello fu il Fortran (FORmula TRANslator), inventato da John Backus dell’IBM nel 1954, rilasciato commercialmente successivamente nel 1957. Di alto livello perché indica un linguaggio caratterizzato da una significativa astrazione dall’architettura della macchina e del sistema per essere facilmente comprensibile dall’essere umano. Fu il primo linguaggio “problem oriented” anziché “machine oriented”.

Precedentemente infatti, tutti i linguaggi utilizzati, erano di basso livello, ovvero coincidevano con l’insieme delle istruzioni eseguibili dall’hardware; risultano essere linguaggi specifici della macchina, illeggibili all’essere umano perché collegati all’architettura della macchina.

Nel corso dei decenni poi si sono sviluppati numerosi linguaggi di programmazione e ad oggi ne possiamo contare circa 8.512, ognuno con le proprie caratteristiche e adatto a differenti utilizzi e sviluppi. Nessuno dei linguaggi però sviluppati fino ad ora, rappresenta un nuovo ed innovativo approccio alla logica e alla computazione, tendono infatti ad una focalizzazione molto più sul lato dell’esperienza del developer nel loro utilizzo ed alcuni addirittura son stati sviluppati per risolvere determinati problemi, come il PHP o il SASS.

La classifica aggiornata e stilata dallo IEEE Spectrum – Institute of Electrical and Electronics Engineers dei linguaggi più utilizzati del 2017, in base ad una ricerca che ha coinvolto 48 linguaggi combinando più di 12 metriche:

  1. Python
  2. C
  3. Java
  4. C++
  5. C#
  6. R
  7. JavaScript
  8. PHP
  9. Go
  10. Swift

È difficile al momento comprendere dove la programmazione dove sta andando, sicuramente possiamo aspettarci una accelerazione di quelli che sono i trend che sono al centro anche dell’Industria 4.0 (di cui ne avevamo parlato qui):

  • Big Data
  • Virtualizzazione
  • Internet of Things

Le previsioni non possono essere accurate vista la corsa che la tecnologia e l’innovazione stanno affrontando, ma sicuramente la programmazione sta diventando una parte integrante delle skills anche per chi lavora nei settori delle vendite, del marketing e del design.

Noi utilizziamo principalmente Java, Javascript, PHP e ultimamente abbiamo scelto di programmare con AngularJs, il framework open source di Google per la parte di frontend, mentre NodeJS per la parte di backend, con i quali abbiamo sviluppato diversi applicativi come MayAPP per esempio.

Voi cosa ne pensate? Quale linguaggio di programmazione utilizzate?

 

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *