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::$_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::$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::$_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_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::$_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_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::$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::$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::$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
Turbo Pascal compie 40 anni: cos'è e perché vive ancora oggi

Turbo Pascal compie 40 anni: cos'è e perché vive ancora oggi

Il linguaggio di programmazione Turbo Pascal festeggia 40 anni: cos'è e perché il suo IDE ha davvero rivoluzionato il mondo dello sviluppo, dando la spinta alla nascita di prodotti largamente utilizzati ancora oggi.

Era la fine di novembre 1983 quando Borland rilasciò uno degli ambienti di sviluppo integrato (IDE) e compilatori più influenti nel campo della programmazione software: Turbo Pascal. Chi, fino agli anni ’90, si è avvicinato al mondo dello sviluppo, soprattutto in ambito didattico e accademico, non può non aver lavorato con Turbo Pascal.

Perché fu chiamato Turbo Pascal? Il linguaggio di programmazione Pascal esisteva già: fu progettato negli anni ’60 dal docente svizzero Niklaus Wirth, per poi essere ufficialmente lanciato nel 1971 principalmente per finalità di insegnamento e per lo sviluppo di software affidabile. Pascal, tuttavia, era privo di un IDE e di un compilatore ottimizzato. Gli sviluppatori dovevano utilizzare diversi strumenti separati per scrivere, modificare e compilare il codice. Turbo Pascal ebbe l’enorme vantaggio di integrare tutte queste funzionalità in un singolo ambiente, rendendo il flusso di lavoro molto più fluido.

Cos’è Turbo Pascal e come divenne un successo planetario

Gli strumenti offerti agli sviluppatori che utilizzavano il linguaggio Pascal, almeno nelle prime fasi, erano principalmente interpreti, non compilatori, ed erano basati su un’architettura non molto diversa da quella della Java JVM. I programmi erano comunque significativamente più veloci di quelli sviluppati ricorrendo al linguaggio BASIC.

Turbo Pascal è nato per portare il linguaggio Pascal dal contesto accademico a un pubblico più ampio di sviluppatori professionisti, fornendo strumenti avanzati e un ambiente di sviluppo integrato. La presentazione di Turbo Pascal coincise con un periodo davvero “frizzante” per il mondo dell’informatica in generale. I primi anni ’80 segnarono l’arrivo sul mercato dei PC IBM: con i personal computer arrivò il supporto diretto per linguaggi di programmazione quali BASIC, C e Pascal.

Nel ripercorrere la storia di Turbo Pascal, Marco Cantù – esperto Delphi di lungo corso, autore di decine di testi tecnici e Product Manager per RAD Studio presso Embarcadero Technologies – racconta la nascita dell’IDE e del relativo compilatore.

L’accordo tra Philippe Kahn (Borland) e l’autore del compilatore, Anders Hejisberg, che divenne la base di Turbo Pascal

Quasi contemporaneamente al lancio dei primi PC IBM, scrive Cantù, “un imprenditore francese (Philippe Kahn, fondatore di Borland, n.d.r.) che aveva studiato matematica al Politecnico di Zurigo (…) scoprì che qualcuno in Danimarca (Anders Hejisberg, n.d.r.) aveva scritto un compilatore Pascal molto veloce per i computer CP/M, (…) per una società chiamata PolyData. Lo vendevano principalmente alle persone della zona. Una volta ho parlato con uno sviluppatore che andò in bicicletta a casa di Anders per ottenere una copia patchata“.

Kahn e Hejisberg si accordarono e il primo, che all’epoca era squattrinato, contattò il magazine Byte (la rivista di informatica più famosa dell’epoca) per pubblicare un annuncio senza pagarlo in anticipo. L’imprenditore francese si mise insomma a vendere quel performante compilatore Pascal per la modica cifra di 49,99 dollari. Gli altri strumenti simili costavano ben oltre i 300 dollari. L’interesse degli sviluppatori fu enorme e quel prodotto, battezzato Turbo Pascal, convinse subito tutti. Tanto che lo stesso Hejisberg si trasferì dalla Danimarca a Scotts Valley, in California, per lavorare a tempo pieno sul prodotto.

Annuncio Turbo Pascal Borland

Lo storico annuncio Borland che offriva l’acquisto di una licenza di Turbo Pascal, per posta.

Nei primi due anni dal lancio, Borland vendette circa 250.000 copie di Turbo Pascal: un’enormità se si pensa che l’attività di commercializzazione avveniva esclusivamente con ordini per posta e che si trattava di un strumento per gli sviluppatori dei primi anni ’80.

Le caratteristiche vincenti di Turbo Pascal

Tanti aspetti diversi contribuirono al successo sconfinato di Turbo Pascal. Il linguaggio alla base del prodotto era convincente ma, soprattutto, Turbo Pascal era uno dei primi IDE: la possibilità di compilare il codice sorgente ed effettuare direttamente le attività di debugging era qualcosa di impagabile. Un enorme risparmio di tempo rispetto alle modalità operative per lo sviluppo software che fino ad allora si utilizzavano.

L’altro fiore all’occhiello di Turbo Pascal erano le prestazioni: gran parte del codice alla base del suo funzionamento era scritto in Assembly. Inoltre, Turbo Pascal usava un “single pass compiler“: la caratteristica principale di un “single pass compiler” è che analizza, elabora e genera il codice oggetto in una singola iterazione attraverso il codice sorgente. Il compilatore legge il codice sorgente una sola volta e genera direttamente il codice oggetto senza effettuare passaggi intermedi.

È vero che i “single pass compiler” soffrono di alcune limitazioni intrinseche (alcune ottimizzazioni avanzate, ad esempio, richiedono una visione più completa del codice sorgente), ma sono comunque veloci. Cantù ricorda che alcuni compilatori di oggi sono ancora “single pass compiler“: Delphi 11 Alexandria, ad esempio, è uno di essi.

Turbo Pascal vive ancora oggi: ecco dove

Non crediate che Turbo Pascal sia ormai un linguaggio superato, qualcosa che ormai appartiene alla storia dell’informatica. Le idee alla base di Turbo Pascal hanno infatti portato Borland a lavorare dapprima su un progetto interno chiamato AppBuilder per poi evolvere nel 1995 in Delphi. Quest’ultimo arrivò sul mercato introducendo una nuova importante rivoluzione: fu uno dei primi strumenti di sviluppo RAD (Rapid Application Development) e il primo ambiente di sviluppo completamente visuale, basato su di un compilatore estremamente veloce se paragonato con quelli dell’epoca.

Delphi è noto per la sua facilità d’uso, la rapidità di sviluppo e la possibilità di creare applicazioni con un’interfaccia utente grafica. Combinava le fondamenta di Turbo Pascal con Object Pascal, estensione di Pascal che aggiunge il concetto di programmazione orientata agli oggetti (presentato da Apple nel 1986).

Dopo un “passaggio di mano” intermedio, Delphi continua a essere sviluppato, oggi, sotto l’egida di Embarcadero Technologies che ha raccolto il lavoro inizialmente svolto da Borland per proseguire lo sviluppo del linguaggio di programmazione.

Delphi ha raccolto il testimone da Turbo Pascal

Cantù racconta che lo sviluppo con Delphi rimane centrale in ambiente Windows: la piattaforma è in continua evoluzione, sotto il nome di RAD Studio. “Ho lavorato molto in questo settore. Dall’integrazione del controllo WebView 2 (il motore del browser Chromium Edge) al supporto MSIX, per citarne un paio di aree su cui mi sono concentrato“, spiega Cantù.

Il prodotto ha subito molte trasformazioni. Delphi 2 aveva un compilatore a 32 bit per Windows 95. Nel periodo di Delphi 6, Borland ha creato Kylix, un IDE basato su Linux per la creazione di applicazioni desktop Linux. Successivamente, l’azienda si è avvicinata a .NET e ha creato una nuova architettura IDE chiamata “Galileo”, che sopravvive ancora oggi.

“Delphi ha chiaramente superato i suoi giorni d’oro, ma il prodotto è ancora vivo e genera un buon business, giustificando un solido investimento in ricerca e sviluppo. E la comunità Delphi è ancora al lavoro per costruire software di ogni tipo e in ogni latitudine“, osserva Cantù spiegando di aver stilato una lista di settori in cui Delphi, e quindi Pascal, sono attivamente utilizzati ai giorni nostri. L’elenco è davvero incredibile, e non sono “casi teorici”.

Codice compilato in Pascal è utilizzato a vari livelli ai giorni nostri

Alcuni dei casi d’uso sono davvero meravigliosi. Il codice compilato in Pascal sta aiutando ad illuminare le cascate del Niagara, a muovere le gru dei container nei porti, a mostrare dati sui giocatori in tempo reale in TV, a presentare dichiarazioni fiscali e inviare fatture elettroniche, a progettare CPU,…

Qual è l’applicazione più riuscita costruita con Object Pascal? “In termini di business e industry disruption (cambiamento significativo e radicale in un settore industriale a causa di nuove tecnologie, modelli di business innovativi o altre forze che cambiano il panorama competitivo in modo sostanziale, n.d.r.) citerei Skype. Microsoft ci ha speso miliardi“, osserva ancora Cantù.

Delphi è incentrato principalmente sullo sviluppo di applicazioni desktop utilizzando Object Pascal, mentre RAD Studio è una suite più ampia che offre la possibilità di sviluppare applicazioni multipiattaforma utilizzando vari linguaggi di programmazione. Delphi è inclusa come componente di RAD Studio, e l’acquisto di una licenza RAD Studio fornisce funzionalità più estese rispetto al solo Delphi.

Le immagini nell’articolo sono tratte dal post di Marco Cantù.

Ti consigliamo anche

Link copiato negli appunti