Introduzione
Ciao. Benvenuti. Spero che stiate tutti bene Giugno è stato un mese importante per Exercism, con il lancio di Premium e il nostro decimo anniversario. E spero che vi siate divertiti a giocare con i Lisp durante il Summer of Sexps. E ora passiamo al mese 7 del 2023 e al nostro sesto mese a tema: Jurassic July.
Cosa intendiamo con Jurassic? Beh, non nel senso che questi linguaggi siano estinti, anche se al giorno d'oggi è improbabile che tu scriva nuovo software in COBOL Ma questi sono alcuni dei linguaggi più antichi, alcuni dei quali hanno più di 60 anni. Con essi è stata scritta una quantità incredibile di software (soprattutto software aziendale). Sono tutti linguaggi di incredibile successo.
Quindi, quali sono i linguaggi? Beh, parliamo di C, C++, COBOL, Fortran e Visual Basic. Non esploreremo C e C++ in questo video, dato che li abbiamo già trattati nel Mechanical March: dai un'occhiata a quel video se ti interessano questi linguaggi. Ma tra poco vedremo COBOL, Fortran e Visual Basic!
I badge
Ottieni il badge completando 5 esercizi in uno di questi linguaggi questo mese. E per il badge annuale, devi completare:
- Bob: lavora con le stringhe e la logica condizionale
- Allergie: lavora con stringhe, numeri e operazioni bit a bit
- Stringa al contrario: itera sui caratteri di una stringa
- Punteggi migliori: itera su array di numeri
- Numeri di Armstrong: lavora con i numeri, i cicli e l'iterazione
Panoramiche
Fortran
-
Avviato da John Backus presso IBM negli anni '50 per sviluppare un'alternativa più pratica al linguaggio assembly per programmare il loro mainframe IBM 704
-
Progettato per essere efficace nella creazione di applicazioni scientifiche e ingegneristiche (il nome è l'abbreviazione di Formula Translating System)
-
Primo linguaggio di programmazione ad alto livello (riduce le righe di codice di circa un fattore 20)
-
Anche il primo compilatore ottimizzante (i clienti erano restii a usare un linguaggio di programmazione ad alto livello a meno che il suo compilatore non potesse generare codice con prestazioni paragonabili a quelle del linguaggio assembly scritto a mano)
-
Linguaggio a tipizzazione statica e forte
-
Inizialmente supportava solo la programmazione imperativa, ma poco dopo fu aggiunta la programmazione procedurale. Estensioni successive aggiunsero il supporto per altri paradigmi, come la programmazione orientata agli oggetti e la programmazione ad array
-
Standardizzato, per la prima volta nel 1966 con Fortran 66, e aggiornato l'ultima volta nel 2018!
-
Molto influente, da Basic ad ALGOL, fonte di ispirazione per molti linguaggi. Gran parte della ricerca iniziale sui linguaggi di programmazione mirava a migliorare Fortran
-
Sviluppato ancora attivamente, con nuove funzionalità in arrivo, pur mantenendo solide garanzie di compatibilità all'indietro (il vecchio codice di solito si compila e funziona ancora)
-
Parallelismo integrato tramite coarray, un metodo sicuro ed efficiente per esprimere il parallelismo. Le funzioni possono essere contrassegnate come pure, il che aiuta il compilatore a ottimizzare per il calcolo parallelo
-
Gestione sicura della memoria tramite variabili allocatable, in cui il compilatore è responsabile della liberazione della memoria.
-
Interoperabilità integrata con C
COBOL
-
Progettato nel 1959 dal consorzio CODASYL (sponsorizzato dal Dipartimento della Difesa!) nel tentativo di ridurre i costi di sviluppo delle applicazioni aziendali (il nome sta per Common Business-Oriented Language)
-
È diventato uno standard nel 1968, con l'ultima revisione nel 2014
-
Diverse implementazioni, come IBM COBOL, GnuCOBOL (che compila in C) e Micro Focus™ Visual COBOL, che gira sia sulla JVM che sul runtime .NET
-
Linguaggio a tipizzazione statica
-
Multi-paradigma, supporta la programmazione imperativa e orientata agli oggetti
-
Sintassi verbosa (molte parole chiave) ma molto leggibile per gli esseri umani. Vantaggiosa per leggibilità e manutenzione
-
Buona compatibilità all'indietro, con una specifica stabile. Collaudato sul campo
-
Buone prestazioni (usato in ambito finanziario)
Visual Basic
-
Sviluppato da Microsoft come successore di Visual Basic che gira sul runtime .NET (il suffisso .NET è stato eliminato dopo Visual Basic 2003)
-
La prima versione è stata rilasciata nel 2002 e il linguaggio è stato contrassegnato come «stable» nel 2023. Questo significa che non verrà aggiunta nuova sintassi al linguaggio, ma resta comunque un linguaggio supportato
-
Condivide in gran parte la sintassi con Visual Basic, ma sono state apportate alcune modifiche
-
Linguaggio a tipizzazione statica che supporta la tipizzazione forte e debole
-
Linguaggio multi-paradigma: principalmente orientato agli oggetti, ma anche programmazione imperativa e a eventi
-
Facile da imparare (Visual Basic è stato progettato per essere facile da imparare)
-
Ottimo supporto per la programmazione orientata agli oggetti
-
Gira sul runtime .NET collaudato, con accesso a tutte le librerie .NET
-
Rilascio semplice con ClickOnce
Casi d'uso
Fortran
Usato in scenari di calcolo ad alte prestazioni (supercomputer), come le previsioni meteorologiche, l'astronomia e l'ingegneria strutturale. È anche usato in software CAD e molte applicazioni si basano su FORTRAN, ad esempio vari moduli NumPy usano le librerie FORTRAN 77
COBOL
Molto usato in ambito finanziario, con molti sistemi finanziari che ancora oggi si basano in gran parte su software COBOL (secondo le stime, circa l'80% delle transazioni finanziarie è alimentato da COBOL), anche se oggigiorno si tratta soprattutto di manutenzione. Usato anche per molte applicazioni aziendali, e persino per un archivio chiave/valore usato da Walmart.
Visual Basic
Usato per le GUI (ad esempio interfacce verso database) e per siti web generati lato server. Tra le aziende ci sono Boeing, Wells Fargo e General Electric
In cosa differiscono dal punto di vista della programmazione?
Fortran
Inizialmente supportava solo la programmazione imperativa, ma poco dopo fu aggiunta la programmazione procedurale. Estensioni successive aggiunsero il supporto per altri paradigmi, come la programmazione orientata agli oggetti e la programmazione ad array
COBOL
Multi-paradigma, supporta la programmazione imperativa e orientata agli oggetti
Visual Basic
Linguaggio multi-paradigma: principalmente orientato agli oggetti, ma anche programmazione imperativa e a eventi
Caratteristiche di spicco
Fortran
- Prestazioni. Il linguaggio Fortran e i suoi tipi di dato/strutture dati sono progettati per essere efficienti e avere ottime prestazioni. Ecco perché è usato nei supercomputer
- Di default, supporta molte funzioni matematiche
- La programmazione ad array è un modo molto elegante per applicare operazioni su array e sezioni di array senza dover fare iterazioni manuali né specificare i confini degli array
COBOL
- L'aritmetica a virgola fissa non ha errori di arrotondamento, a differenza dei numeri in virgola mobile. Questo lo rende ottimo per la finanza
- Ottimo per leggere e scrivere file (record)
- Supporto integrato di COBOL per la generazione di report (un altro motivo della sua popolarità nelle applicazioni aziendali)
Visual Basic
- Eccellente per creare applicazioni con GUI usando Windows Forms. Editor WYSIWYG drag and drop
- Ottimo supporto IDE, con riorganizzazioni, completamento del codice e molto altro
Quale provare?
- Se ti interessa il calcolo scientifico o le alte prestazioni, Fortran è un'ottima scelta
- Se vuoi farti un'idea di come si costruivano un tempo le applicazioni aziendali, COBOL è ottimo
- Se ti interessa costruire applicazioni con GUI o sei già sulla piattaforma .NET, Visual Basic funziona davvero bene
- Se ti interessa la storia della programmazione, COBOL e Fortran sono entrambi bei track da esplorare