|
 |
 |
|
Articoli / Utilità e Programmazione |
|
 |
|
 |
|
Win Magazine n° 69
Novembre 2004
|
| La torre di Babele |
| Storia ed evoluzione dei principali linguaggi di programmazione |
Di linguaggi di programmazione ne esistono più di duemila; ma quelli importanti si contano sulle dita di una mano. Da quando è stato inventato il computer si è avvertita la necessità di poterlo utilizzare senza doversi ricordare, ogni volta, sequenze lunghissime di comandi. Da qui lÅidea di utilizzare linguaggi a metà strada tra quello quasi incomprensibile del computer e quello discorsivo della lingua parlata. Essendo gli americani i pionieri in questo campo, fu scelto di usare una sintassi semplificata della lingua inglese.
Gli albori Con la nascita del computer, allÅinizio del secolo, i primi a creare programmi furono matematici, fisici ed ingegneri. Questo perché i computer, allÅepoca costosissimi ed ingombranti, venivano usati principalmente per calcoli scientifici in ambito universitario. Nel 1954 prende vita il primo vero linguaggio di programmazione, il FORTRAN (FORmula TRANslator), il cui nome lascia presagire il suo utilizzo matematico; seguirono altri linguaggi per applicazioni scientifiche, come lÅAlgol (Algorithmic Language – 1958) ed il LISP (LISt Processing – 1959). Ma la vera rivoluzione si ebbe nel 1960, quando fece la sua comparsa il COBOL (COmmon Business Oriented Language), il primo linguaggio di programmazione che permetteva di operare non solo su numeri, ma anche su stringhe di testo. Da quel momento, la programmazione divenne un campo autonomo, iniziarono a nascere le prime software house e si delineò la figura del programmatore. Negli anni a venire i computer divennero sempre più potenti e piccoli; è per questo che nel 1964 nacque il BASIC. La sua caratteristica principale era una sintassi molto semplice ed una struttura che permetteva di numerare le righe di codice, al fine di effettuare eventuali richiami o inserire del nuovo codice senza problemi. Purtroppo, la sua struttura, negli anni, rendeva illeggibili i programmi che erano stati modificati più volte. Nel 1971 prende vita da Niklaus Wirth, il Pascal, un linguaggio di programmazione nato a scopo didattico, per insegnare a programmare in altri linguaggi, ma che è diventato uno dei più utilizzati fino a qualche anno fa. Un anno dopo, Dennies Ritchie rivoluzionò il mondo dei computer, inventando il linguaggio C, con il quale scrisse il sistema operativo UNIX. La sua caratteristica principale è la sintassi semplice e versatile, che rende di fatto possibile un tipo di programmazione avanzata, pur mantenendo una struttura procedurale. Viene definito il più basso dei linguaggi di alto livello, cioè il più vicino al linguaggio macchina, pur avendo una sintassi “leggibile”.
Programmare ad oggetti Per quasi dieci anni si è ritenuto che il C fosse “il migliore dei linguaggi possibili”, ma non era della stessa opinione Bjarne Stroustrup, ricercatore della AT&T che, per necessità lavorative, dette vita nel 1983 al C++. Chiamato inizialmente C con classi, è un linguaggio di programmazione che ha come base il C, ma che introduce un concetto nuovo, la programmazione ad oggetti (Object Oriented - OO), riprendendo dal linguaggio Simula del 1967 il concetto di “classe”: cioè, dividere lÅinterfaccia dal contenuto, in modo da avere tanti moduli che interagiscono tra loro. In questo modo, il C++ permette di riutilizzare senza problemi il codice, pur mantenendo la velocità e l’affidabilità raggiunta con il C. Successivamente ci fu una vera e propria esplosione di linguaggi di programmazione. Vennero creati il Perl (1987), il Python (1991), il Ruby (1993) ed il Delphi (1995), ma il C ed il C++ continuavano a farla da padrona. A metà degli Anni Å90 nacque la suite Microsoft Visual Studio, che forniva un ambiente di sviluppo proprietario per il C++ e per il Basic, rimodernizzato e ribattezzato come Visual Basic. La sua versione a finestre permise ad una sempre maggiore cerchia di persone di avvicinarsi alla programmazione, rendendo più facile ed intuitivo lo sviluppo di un programma.
I linguaggi moderni La parola chiave dei linguaggi moderni è “portabilità”. In questa tendenza, il vero linguaggio precursore è stato il Java (1995), inventato dalla Sun Microsystems. Java nasce con lÅesigenza di prendere il meglio del C++, come la programmazione ad oggetti, eliminando i suoi difetti (come la gestione della memoria). Sun ha poi avuto la geniale idea di rendere Java utilizzabile su qualsiasi sistema operativo, attraverso un semplice meccanismo: il compilatore Java non produce un eseguibile specifico per una piattaforma, ma genera un file in un formato chiamato Bytecode; questo formato viene poi interpretato da una Java Virtual Machine scritta appositamente per un sistema operativo. Una volta che esiste la Java Virtual Machine, Java può essere eseguito, ma con un problema: la velocità di esecuzione. Un programma in Java, proprio perché deve essere interpretato al volo, risulta più lento di un’applicazione nativa, soprattutto lavorando con la grafica. Java ha anche introdotto le famose Applet, applicazioni grafiche che possono girare allÅinterno di una pagina Web. AllÅinizio però, un poÅ per le ridotte prestazioni dei primi computer, un poÅ per la bassa velocità dei collegamenti Internet, Java non riuscì a decollare. Nella rincorsa alla portabilità, Microsoft ha sviluppato nel 2000 il framework.NET, un ambiente di sviluppo che permette di scrivere il codice una volta, per poi utilizzarlo in un ambiente dove è presente tale framework (esiste ed è in continuo sviluppo un porting di .NET per Linux), portandosi dietro il Visual Basic ed il Visual C++ ed introducendo un nuovo linguaggio, a metà strada tra C++ e Java, dal nome C# (C Sharp). Analogamente ha fatto Borland, produttrice di Delphi, nel 2001 creando Kylix, un ambiente di sviluppo per Linux in cui è possibile utilizzare codice Delphi sviluppato per Windows (e viceversa).
Conclusioni Chi ritiene che i linguaggi più nuovi siano migliori o sostitutivi di quelli più datati, si sbaglia. In molte università viene ancora utilizzato il Fortran, nelle banche è ancora presente il Cobol, il C viene usato per programmare i sistemi operativi ed il C++ è indispensabile per fare programmi che devono essere molto veloci, come i videogiochi. Certo, i linguaggi più moderni sono più semplici ed intuitivi, ma a volte hanno limitazioni in termini di prestazioni o di riutilizzo del codice. Il succo del discorso è che un linguaggio va bene per alcune cose, ma non per altre e la scelta su quello da utilizzare dipende unicamente dal campo di applicazione. Uno dei linguaggi che, forse, vince sugli altri è il Java: la sua semplicità e diffusione ne fanno, giorno dopo giorno, un linguaggio da utilizzare in ambiti sempre diversi. Parimenti, lÅaumento di prestazioni dei PC, la diffusione della banda larga e la creazione di chip che implementano la Java Virtual Machine, fanno sì che questo linguaggio possa diffondersi sempre di più in quei settori dove, oggi, ha prestazioni non proprio eccelse.
| Tipologie dei linguaggi di programmazione |
| Nella tabella sono riportati i principali linguaggi di programmazione. Per ognuno di essi scopriremo i punti di forza, di debolezza, il loro campo di applicazione, nonchè la difficoltà di apprendimento. |
nome |
difficoltà |
campo di applicazione |
vantaggi |
svantaggi |
sistemi operativi |
assembler
|
Alta
|
Programmazione di periferiche
|
Velocità di esecuzione elevata
|
Difficile da imparare e da utilizzare
|
Tutti
|
pascal
|
Bassa
|
Linguaggio didattico
|
Facile da apprendere
|
Non adatto a programmi complessi
|
Tutti |
c |
Alta |
Programmazione di sistemi operativi |
Prestazioni elevate e sintassi potente |
Linguaggio procedurale |
Tutti
(ricompilandolo a dovere)
|
c++ |
|
Qualsiasi programma, in particolare videogiochi
|
Riutilizzo del codice
e prestazioni elevate
|
Difficile da imparare |
Tutti
(ricompilandolo a dovere) |
visual basic |
|
Sviluppo di applicativi gestionali |
Sviluppo rapido del codice |
Prestazioni non elevate e non adatto
a grandi progetti
|
Principalmente Windows |
java |
|
Per tutto, ma principalmente
per il Web
|
Elevata portabilità e riutilizzo del codice |
Basse prestazioni in alcuni ambiti |
Tutti (senza ricompilare) |
delphi/ kylix |
|
Applicazioni medio /piccole
e gestionali
|
Portabilità e velocità di sviluppo |
Inizialmente disponibile solo
per Windows
|
Windows e Linux
|
c# |
|
Futuro concorrente del linguaggio Java |
Portabilità e facilità di sviluppo |
Linguaggio giovane
|
Windows (nativo)
e Linux (sperimentale) |
perl |
|
Adatto per programmi che girano su Web |
Potenza e flessibilità |
Limitato nei campi di applicazione |
Principalmente Linux |
python |
|
Server
Linguaggio di scripting;
usato per il framework Zope
|
Linguaggio molto versatile |
Non utilizzabile in alcuni ambiti |
Principalmente Linux |
php |
Media |
Programmazione per siti Internet |
Veloce e pratico |
Non adatto per applicazioni a finestre |
Tutti |
|
 |
 |
 |
|
 |
 |
 |
| STAMPA ARTICOLO |
 |
|
 |
 |
 |
 |
| INVIA AD UNA AMICO |
 |
|
 |
|
|