lunedì 26 marzo 2012

Hello world

L'interfaccia grafica utente, note anche come GUI (dall'inglese Graphical User Interface), comunemente abbreviata in interfaccia grafica, è un tipo di interfaccia utente che consente all'utente di interagire con la macchina manipolando oggetti grafici convenzionali.
A fianco:
La GUI di un programma scritto in Perl
che stampa il messaggio "hello world!"

Dartmouth

Il Dartmouth BASIC nacque come linguaggio compilato[2]. Era basato su elementi ripresi dall'Algol-6 e dal FORTRAN II con nuove aggiunte scritte per favorire la programmazione da parte dei nuovi utenti del sistema di timesharing, utenti iscritti a facoltà non matematiche con limitate conoscenze di programmazione.
Il Dartmouth BASIC fu scritto seguendo alcuni principi:
fosse facile da usare dai principianti;
fosse un linguaggio di uso generale;
fosse interattivo;
avesse delle caratteristiche più avanzate per gli utenti più esperti;
avesse messaggi di errore chiari;
fosse rapido nell'eseguire piccoli programmi;
fosse astratto dall'hardware (non richiedesse, cioè, la conoscenza delle specifiche della macchina su cui girava);
isolasse l'utente dal sistema operativo.
Kemeny e Kurtz non registrarono il linguaggio distribuendolo liberamente ma lo presentarono anche ad altri istituti scolastici favorendone la conoscenza. In questo modo il BASIC si diffuse rapidamente finendo per essere adottato da diversi costruttori di minicomputer quali la serie PDP di DEC ed il Nova di Data General. Il Dartmouth BASIC fu usato anche nell'HP Time-Shared BASIC, venduto tra la fine degli anni sessanta e l'inizio degli anni settanta, e nel sistema operativo Pick: questi ultimi utilizzi usavano una versione interpretata del linguaggio.
Alcuni anni dopo il suo rilascio, il Darthmouth BASIC fu oggetto di pesanti attacchi da parte di alcuni programmatori, in special modo Edsger Dijkstra, che esprimevano una dura presa di posizione contro l'utilizzo incondizionato delle istruzioni di salto del linguaggio, colpevoli di portare alla scrittura di codice illeggibile e di bassa qualità.[4] La lettera non menzionava nessun linguaggio ma era chiaro il riferimento al Dartmouth BASIC, che del GOTO, non avendo costrutti di programmazione strutturata, faceva un abbondante uso.
In un altro suo scritto del 1975 Dijkstra puntava nuovamente il dito contro l'uso del GOTO citando però esplicitamente il linguaggio BASIC

Origini

Fino agli anni sessanta i computer erano ingombranti, estremamente costosi e difficili da programmare. Erano acquistati da industrie, istituti governativi o università. Data la loro scarsa potenza elaborativa, i linguaggi di programmazione erano orientati alla massima efficienza sacrificando la facilità di scrittura del codice e la sua leggibilità. Questi fattori, uniti alla difficoltà di poter accedere ad un computer, relegavano l'uso di queste macchine a poche persone e per particolari compiti.
Nel 1959 anche l'università di Dartmouth acquistò un proprio computer, un LGP-30, affidato al reparto informatico sotto la direzione di Kurtz. Gli utenti non potevano avere un accesso libero alla macchina ma dovevano inserire i loro programmi nel sistema che li eseguiva poi nell'ordine in cui li aveva ricevuti. Dall'inserimento all'ottenimento dei risultati poteva quindi passare un discreto lasso di tempo (ore ma anche giorni). Per ovviare a questo problema Kemeny e Kurtz iniziarono a sviluppare un sistema di timesharing per poter consentire l'accesso a più utenti contemporaneamente e l'esecuzione di più programmi simultaneamente.
Per permettere ciò l'università acquistò anche un nuovo computer, un GE-235, e 30 terminali GE Datanet-30 che furono dislocati in vari ambienti di Dartmouth grazie ai quali gli studenti potevano inserire i loro programmi nell'unità centrale in modo rapido e semplificato. Il sistema supportava inizialmente anche altri linguaggi come il FORTRAN e l'ALGOL ma Kurtz e Kemeny studiarono un altro linguaggio che fosse più semplice da imparare e di uso generale sviluppando così il BASIC.[3]
Negli anni seguenti, con il nascere di diverse versioni del linguaggio, il BASIC sviluppato originariamente da Kemeny e Kurtz fu indicato come Dartmouth BASIC.

Basic

In informatica il BASIC (acronimo dell'inglese "Beginner's All purpose Symbolic Instruction Code",[1] in italiano "codice di istruzioni simboliche di uso generale per principianti") è un linguaggio di programmazione ad alto livello sviluppato nel 1964 presso l'Università di Dartmouth sul calcolatore GE-225. Ne furono coinventori i professori John George Kemeny e Thomas Eugene Kurtz. Il primo programma in BASIC "girò" il 1º maggio 1964 alle ore 4:00.[2]
Il BASIC, almeno nelle versioni di Kemeny e Kurtz che costituiscono il cosiddetto Dartmouth BASIC, fu progettato per essere un linguaggio semplice da imparare. Per questo si differenziò dalla maggior parte dei linguaggi suoi coetanei enfatizzando la semplicità d'uso piuttosto che la potenza espressiva. Nacque infatti, come dice il suo nome, per poter essere usato anche da principianti (il 75% degli studenti dell'Università di Dartmouth era iscritto a facoltà umanistiche). Le istruzioni erano poche e non complesse. Il BASIC offriva inoltre (non per scelta degli autori, ma solo perché era figlio del suo tempo) pochi costrutti strutturati, quindi orientati alla creazione di programmi chiari e comprensibili. Fu pensato inoltre come un linguaggio algoritmico, adatto cioè a programmare algoritmi.
Il BASIC fu anche progettato per essere un linguaggio facilmente trasportabile su calcolatori diversi dal GE-225 su cui giravano le prime versioni. Concepito e realizzato originariamente come linguaggio compilato, molte delle sue versioni più note fanno tuttavia uso di interpreti.
Una delle più famose versioni è il Microsoft BASIC, sviluppato da Bill Gates, Monte Davidoff e Paul Allen come Altair BASIC per l'Altair 8800, poi evolutasi nel GW-BASIC per il primo MS-DOS. I microcomputer e gli home computer degli anni settanta ed ottanta, come l'Apple II, gli ZX80/ZX81/ZX Spectrum, i famosi VIC-20 e C-64, gli MSX, integravano nel loro firmware un interprete BASIC.
Con gli anni il BASIC ha subito notevoli evoluzioni e cambiamenti, diventando un linguaggio strutturato con potenzialità molto simili a quelle di altri linguaggi più evoluti. Le numerose versioni attuali del BASIC affiancano ai concetti originari nuovi concetti, quali la gestione degli oggetti, la ricorsività, la strutturazione: vedi ad esempio il Visual Basic o il REALbasic.