Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_wordproof_timestamp is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_4b74f649fd4acc577d148ed32491480a is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_4b74f649fd4acc577d148ed32491480a is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_61a5cf4172e6a987461e5550672abba5 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_61a5cf4172e6a987461e5550672abba5 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_deb7aeb1b59332e0adf3c5e66f1c2655 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_deb7aeb1b59332e0adf3c5e66f1c2655 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
BASIC, 60 anni fa nasceva il linguaggio che ha rivoluzionato l'informatica

BASIC, 60 anni fa nasceva il linguaggio che ha rivoluzionato l'informatica

Cos'è il linguaggio BASIC: nato 60 anni fa ha rivoluzionato la storia dell'informatica democratizzando l'accesso alla programmazione. Com'è cambiato nel tempo e quale eredità ci consegna.
BASIC, 60 anni fa nasceva il linguaggio che ha rivoluzionato l'informatica

Era il 1° maggio 1964 quando, alle ore 4 del mattino, i matematici John G. Kemeny e Thomas E. Kurtz (Dartmouth College, Hanover, USA) hanno eseguito con successo il primo programma scritto nel linguaggio di programmazione da loro sviluppato. Si chiamava BASIC (Beginner’s All-Purpose Symbolic Instruction Code) e aveva come obiettivo quello di semplificare le attività di programmazione.

Prima che i computer diventassero piccoli, economici e “personal”, fornire alla macchina le attività da svolgere implicava una serie di passaggi sull’hardware e perfino l’utilizzo di schede perforate. Con il tempo, gli ingegneri hanno iniziato a individuare approcci innovativi per astrarre le operazioni di programmazione a basso livello, fornendo interfacce decisamente più amichevoli.

Prima del BASIC, linguaggi come Fortran, Algol e COBOL risultavano complessi e astrusi, se non per una manciata di professionisti. Kemeny e Kurtz hanno visto la necessità di usare uno schema più semplice e immediato: dopo due esperimenti non andati a buon fine, il 1964 ha segnato la nascita del BASIC, che ha avuto il merito di rompere davvero con il passato.

Cos’è il BASIC e quali sono i suoi meriti

All’epoca Kemeny e Kurtz non potevano saperlo ma il loro lavoro avrebbe davvero contribuito a democratizzare lo sviluppo software, ispirando generazioni di programmatori nei successivi decenni.

Nella sua forma più tradizionale, il BASIC è un linguaggio di programmazione interpretato le cui istruzioni sono eseguite riga per riga, l’una dopo l’altra. Ogni riga è inoltre contraddistinto da un numero univoco. Ecco un esempio di programma che stampa a video una richiesta, chiede l’inserimento di un dato e mostra un output:

10 PRINT "INSERISCI IL TUO NOME"

20 INPUT N$

30 PRINT "CIAO, ";N$

La sintassi di BASIC era semplicissima: utilizzava infatti semplici parole chiave in inglese. Inoltre, il programmatore poteva introdurre istruzioni di salto, come GOTO (seguito dal numero di riga di destinazione), che consentivano di gestire il flusso di elaborazione.

Sessant’anni fa, i due matematici usarono il mainframe General Electric GE-225 del college per condurre i loro primi esperimenti con il linguaggio BASIC. Grazie al sistema operativo inizialmente sviluppato per General Electric, istituzioni didattiche e soggetti interessati hanno potuto collegarsi, all’interno degli USA, con i vari computer mainframe e cominciare a sperimentare i i vantaggi del BASIC.

BASIC si diffonde sui personal computer

All’epoca i computer non erano ancora “personal” ma nel 1975 Paul Allen e Bill Gates adottarono il linguaggio BASIC in uno dei primi microcomputer della storia dell’informatica: l’Altair 8800. Ne parliamo nell’articolo dedicato al rilascio di MS-DOS 4.0 come software open source. Si può dire che la fondazione di Microsoft è radicata proprio nel BASIC.

Nel 1976, Steve Wozniak ha sviluppato da zero un interprete BASIC per il sistema Apple I, con un approccio da autodidatta e un impegno minimo in termini di risorse. Il lavoro svolto da Wozniak è diventato l’Integer BASIC per Apple II, e il linguaggio (noto in questo caso come Applesoft BASIC) è rimasto una parte fondamentale del computer della Mela.

Tra la fine degli anni ’70 e nei primi anni ’80, il BASIC ha continuato a svolgere un ruolo di spicco come strumento di programmazione sui vari sistemi operativi così come nei più popolari “home computer” come l’Atari 800, il TRS-80, il Commodore VIC-20, il Commodore 64, il TI-99/4A, il BBC Micro e gli IBM PC. Qui era preinstallato nella ROM o era fornito come ambiente di programmazione facilmente accessibile.

Altro che linguaggio retrò: il BASIC vive ancora oggi

Sebbene le prime implementazioni del BASIC siano ormai da “museo dell’informatica”, il linguaggio ha continuato ad evolvere senza mai ricusare l’idea che ne ha portato alla nascita.

Dopo il GW-BASIC e il QuickBasic di Microsoft, altri discendenti del BASIC come Microsoft Small Basic, Visual Basic for Applications (VBA) e Visual Basic sono ancora in uso.

Sebbene sia ritirato ufficialmente a partire da giugno 2024, VBA è rimasto per decenni (e resta ancora oggi) un punto di riferimento per lo scripting e l’automazione nelle applicazioni Microsoft Office. Visual Basic, invece, nato nel 1991, è diventato una scelta popolare per lo sviluppo di applicazioni Windows. Lo stesso storico IDE (ambiente di sviluppo integrato) dell’azienda di Redmond, Visual Studio, integra la possibilità di realizzare applicazioni Visual Basic; Visual Studio Code ne supporta direttamente il codice; Windows integra uno strumento per sviluppare programmi .NET con Visual Basic senza installare Visual Studio.

Oggi, la maggior parte dei linguaggi di programmazione utilizza diversi tipi di paradigmi strutturali (come le funzioni e la programmazione orientata agli oggetti).

Programmazione orientata agli oggetti e funzioni

Il passaggio dal BASIC alla programmazione orientata agli oggetti e alle funzioni rappresenta un punto di svolta significativo nella storia dell’informatica. Mentre il BASIC ha svolto un ruolo fondamentale affinché tante persone potessero avvicinarsi alla programmazione, l’evoluzione del software e delle esigenze dei programmatori ha portato a una transizione verso approcci più avanzati e strutturati rispetto alla scrittura del codice.

La programmazione orientata agli oggetti (OOP) è uno dei paradigmi più influenti che si è evoluto nel tempo. Piuttosto che concentrarsi sul flusso di controllo lineare e sulle procedure distinte, l’OOP organizza il codice intorno agli “oggetti”, che rappresentano entità con attributi e comportamenti specifici. Questo approccio consente una maggiore modularità, riutilizzo del codice e astrazione dei concetti, rendendo più semplice la gestione e la manutenzione del software su larga scala.

Le funzioni, successivamente introdotte nella “filosofia BASIC”, consentono di suddividere il codice in unità più piccole e gestibili, ciascuna svolgendo un compito specifico. Questo approccio favorisce la riduzione della complessità del software e facilita la risoluzione dei problemi in modo più logico ed efficiente.

Una delle frasi più belle per chi si avvicina alla programmazione

Nel tutorial Applesoft che prendeva per mano gli utenti e forniva i primi rudimenti per la programmazione in BASIC si legge una frase che dovrebbe essere tenuta sempre a mente:

There is nothing you can do by typing at the keyboard that can do any damage to the computer. Unless you type with a hammer. So feel free to experiment. With your fingers.

Ovvero: “Non c’è nulla che si possa fare digitando sulla tastiera che possa danneggiare il computer. A meno che non si scriva con un martello. Quindi sentitevi liberi di sperimentare. Con le dita“.

Ti consigliamo anche

Link copiato negli appunti