L'evoluzione del linguaggio di programmazione Uno degli aspetti che hanno fortemente condizionato la storia dell’informatica è l’evoluzione dei linguaggi di programmazione, finalizzata alla semplificazione dell’attività di sviluppo e all’aumento delle funzionalità. Uno dei modi per catalogare i linguaggio di programmazione è in modo generazionale: prima generazione: all'inizio, negli anni '40, l'unico metodo per programmare era il linguaggio macchina, in altre parole il lavoro del programmatore era quello di settare ogni singolo bit a 1 o 0 su enormi computer che occupavano stanze intere e pesavano decine di tonnellate; questo tipo di procedimento era faticoso e riservato ad una cerchia ristretta di persone. Quello che può essere considerato il progenitore di tutti i computer è sicuramente l'ENIAC (Electronic Numerical Integrator And Calculator ), un mastodontico calcolatore pesante 30 tonnellate, al cui progetto partecipò il matematico Neumann. seconda generazione, tra cui Assembly. Tale linguaggio, molto simile al linguaggio macchina, consente al programmatore di ottenere gli stessi risultati dei linguaggi di prima generazione adoperando un minor numero di istruzioni. Inoltre, affinché tale linguaggio possa essere tradotto in linguaggio macchina è necessario uno strumento apposito, detto assembler (per l’operazione inversa viene invece utilizzato il cosiddetto disassembler); terza generazione: gli sforzi volti a cercare di inventare linguaggi di programmazione che mettessero a disposizione strumenti sempre più potenti e semplici per la codifica di algoritmi, dalla metà del secolo scorso ha portato alla nascita di diversi linguaggi: •il Fortran (Formula Translation) per lo sviluppo di applicazioni scientifiche; •il COBOL (Common Business Oriented Language) per lo sviluppo di applicazioni gestionali, tuttora, per la loro solidità, utilizzati; •il Basic, il linguaggio di programmazione per i principianti, che ha come caratteristica quella di essere molto semplice e, infatti, diventa in pochi anni uno dei linguaggi più utilizzati al mondo; •il Pascal, per andare incontro alle esigenze di apprendimento dei neo-programmatori, introducendo però la possibilità di creare programmi più leggeri e comprensibili di quelli sviluppati in Basic. Ancora oggi il Pascal viene usato come linguaggio di apprendimento nelle scuole; •il Pl/1, venne introdotto dall’IBM insieme al sistema IBM360; combina molte delle idee di Fortran e COBOL (capacità di calcolo, gestione e strutturazione). PL/I riusciva a combinare l’efficienza a run-time (tipica del Fortran e COBOL) con una buona flessibilità, a prezzo di un incremento di complessità; in questo senso è uno dei linguaggi più completi; quarta generazione: abbreviato in 4GL , acronimo di fourth-generation programming language. Si tratta di linguaggi caratterizzati da sintassi semplice e specificità di applicazione, esempi potrebbero essere i linguaggi SQL. Il vantaggio dei linguaggi specializzati è il paradigma, il quale permette di esprimere facilmente concetti difficili. Lo svantaggio consiste nella difficoltà di esprimere concetti al di fuori dello specifico campo di applicazione; quinta generazione: contiene dei linguaggi che non sono adibiti ad un uso generale, ma cercano di spostare l’attenzione su particolari settori come la matematica e l’elettronica, inserendo progettazione visuale, database e una risoluzione di problemi logici. La quinta generazione si è inoltre specializzata sulla ricerca robotica, ponendo particolare attenzione sulla costruzione di Intelligenze Artificiali. Quest’ultima generazione non si è ancora imposta, essendo tuttora in fase di ricerca nei laboratori di tutto il mondo, e diventerà popolare solamente quando la robotica sarà una realtà apprezzata e sviluppata nella nostra vita giornaliera. Due esempi sono: • la Lisp: si presenta come interprete, ma è anche possibile compilare i programmi, disponendo dell’ambiente di un interprete e della velocità di un compilatore. • la Prolog: ( Programmation en Logique) è un linguaggio di programmazione che adotta il paradigma di programmazione logica. È impiegato in molti programmi di intelligenza artificiale, la sua sintassi e la semantica sono molto semplici e chiare (lo scopo primitivo era quello di fornire uno strumento di lavoro a linguisti privi di conoscenze informatiche). Linguaggi orientati agli oggetti La programmazione orientata agli oggetti è un paradigma di programmazione che permette di definire oggetti software in grado di interagire gli uni con gli altri attraverso lo scambio di messaggi. Un ambito che più di altri riesce a sfruttare i vantaggi della programmazione ad oggetti è quello delle interfacce grafiche. Tra gli altri vantaggi della programmazione orientata agli oggetti: -fornisce un supporto naturale alla modellazione software degli oggetti del mondo reale o del modello astratto da riprodurre; -permette una più facile gestione e manutenzione di progetti di grandi dimensioni; -l'organizzazione del codice sotto forma di classi favorisce la modularità e il riuso di codice. Tre esempi sono: •la Small talk, è un linguaggio di programmazione orientato agli oggetti con gestione dinamica dei tipi e con un paradigma di programmazione riflessivo. È stato creato come un linguaggio per sostenere un nuovo mondo di programmazione, ovvero come la simbiosi dell'umano con il calcolatore. •l'Eifel, è un linguaggio di programmazione orientato agli oggetti che enfatizza la scrittura di programmi robusti. Fu uno dei primi linguaggi a oggetti compilati e pensati per l'utilizzo industriale. La sua sintassi ricorda quella di Pascal. Eiffel ha una tipizzazione statica, e una gestione automatica e affidabile della memoria •la Java, è un linguaggio di programmazione nato negli anni novanta, e destinato a diventare in breve tempo, il linguaggio più utilizzato in assoluto. Nato per scopi di ricerca in ambito universitario, Java si pone come un "superlinguaggio" che supera i limiti e i difetti che hanno altri linguaggi. La Sun Microsystems ha poi fatto in modo che dal linguaggio, si sia poi evoluta una serie di famose tecnologie che si stanno diffondendo in molti ambiti del mondo della programmazione. Linguaggi orientati al web Servono per creare siti web e applicazioni orientate al web, i tre più importanti sono: •Html, (HyperText Markup Language) è il linguaggio solitamente usato per la formattazione di documenti ipertestuali disponibili nel World Wide Web sotto forma di pagine web. È un linguaggio di pubblico dominio, la cui sintassi è stabilita dal World Wide Web Consortium, ed è derivato da un altro linguaggio avente scopi più generici, l'SGML. •Php, è un linguaggio server side di scripting completamente Open Source che si sta diffondendo sempre di più sul mercato per la sua potenza e perché è un'alternativa alle costose soluzioni Microsoft. Attraverso l'interazione con HTML è possibile creare pagine web dinamiche che vengono processate dal server e in maniera rapida ed efficiente mostrate al visitatore del sito. •Asp, è una tecnologia della Microsoft mediante la quale è possibile costruire pagine web dinamiche. Mediante le pagina ASP è possibile mostrare all'utente una serie di dati memorizzati di solito dentro il database, fogli elettronici di calcolo (Excel ad esempio), file di testo e di modificare questi stessi dati o di aggiungerne di nuovi.