Vai al contenuto

Dietro il coding/Un po' di storia…

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Comunque, Scratch non è nato dal nulla: deriva da Squeak!, che deriva a sua volta da SmallTalk ma innestandoci le idee pedagogiche del Logo.

Ma per essere precisi, tutto è iniziato con il bistrattato BASIC, negli anni sessanta del millennio scorso.

Per dare un’idea: non erano ancora nati né il C (1973), né il PERL (1987) per non parlare di Java (1995).

In quella caverna preistorica c’erano degli uomini forse primitivi, ma con delle idee luminose.

Quando Kemeny e Kurtz alla Dartmouth University nel maggio del 1964 inventano il BASIC (Beginners’All-purpose Symbolic Instruction Code) l’idea era quella di proporre uno strumento con cui chiunque potesse programmare. Un linguaggio talmente facile da poter essere imparato senza conoscenze pregresse in matematica e logica.

Perché? Perché a quell’epoca programmare era un’attività riservata a pochi super esperti, che avessero accesso a macchine costose. E perché c’era l’idea che sapere programmare fosse una competenza che avrebbe migliorato la vita di chiunque.

Nasce perciò un linguaggio con una sintassi semplice, con delle istruzioni che assomigliano all’inglese, pensato in funzione dell’utente.

Un’idea che avrebbe dovuto aspettare ancora dieci anni prima di essere davvero realizzata, con la diffusione degli home computer e con un interprete BASIC capace di fare grafica e suonare. Incidentalmente, l’interprete che ha contribuito di più alla diffusione del linguaggio è stato scritto da Paul Allen, Monte Davidoff e Bill Gates.

Interprete Basic

Il Logo, altro elemento chiave del discorso, nasce pochi anni dopo l’invenzione del BASIC, cioè nel 1967.

L’obiettivo è completamente diverso: in origine era stato pensato da un gruppo ricercatori nel campo della nascente Intelligenza Artificiale (del calibro di Bobrow, Feurzeig e Salomon) per insegnare la programmazione in LISP agli studenti.

Con l’intervento di un matematico (Seymour Papert) Logo diventa una maniera alternativa di imparare la geometria che non passasse per la lettura di teoremi ma per la costruzione automatica di figure in soggettiva, dal punto di vista dell’utente, che si identifica in un avatar digitale: la famosa tartaruga.

Dunque con un obiettivo didattico, non legato alle tecnologie. Usare Logo non serve a diventare programmatori.

La base di partenza scelta è un po’ più nobile del BASIC, in termini di “generazioni dei linguaggi”: viene scelto il LISP che è un linguaggio funzionale, non imperativo.

Il modello di interazione è quello dell’insegnamento ad un robot. Che all'inizio è un robot vero, poi diventa solo un avatar sullo schermo.

Quando – molto più tardi – vengono realizzati degli interpreti per Apple e per PC IBM, cominciano a essere disponibili delle traduzioni nelle lingue nazionali, cioè in cui le istruzioni fossero parole comuni della lingua madre di chi lo utilizzava (SE…ALLORA, RIPETI…FINCHE), con l’idea di facilitare la scrittura di programmi da parte di bambini che non conoscono l’inglese.

Comandi Turtle

Dal Logo originale sono gemmate altre versioni che hanno lasciato da parte la geometria piana e si sono concentrate sulla concorrenza (cioè sulla possibilità di "lanciare" molte tartarughe contemporaneamente per simulare il comportamento di un alveare o del traffico all'ora di punta) o sulla multimedialità (la possibilità di "vestire" la tartaruga con immagini, animazioni e suoni), fino a versioni in cui non è più necessario scrivere i programmi, ma è sufficiente selezionare le azioni da un menù e comporle, esattamente come in Scratch.

Nelle pagine seguenti ne mostriamo due tra i più noti: NetLogo e StarLogo.

  • Ideato da Uri Wilenski presso il Center For Connected Learning and Computer Based Modelling, Northwestern University, a partire dal 2005
  • Scritto in SCALA, la versione web in Javascript Permette di connettere più istanze per effettuare simulazioni complesse (Netlogo Hubnet)
  • Opensource (GPL)
NelLogo
  • Ideato da Mitchel Resnick ed Eric Klopfer presso il MIT Media Lab a partire dal 2000
  • Scritto in Java (la versione più recente però usa Flash)
  • Non è del tutto opensource, perché non può essere utilizzato per fini commerciali !
StarLogo coding app

Con un finanziamento considerevole dell’ARPA, mirato a ripensare il mondo dell’interazione uomo-macchina, Alan Kay e altri colleghi del Learning Research Group allo Xerox Parc nel 1971 creano il linguaggio SmallTalk.

Per dire, quel gruppo di lavoro e quelle ricerche sono all’origine di innovazioni come finestre, mouse, ipertesti, tablet, programmazione ad oggetti e altre quisquilie.

Nato inizialmente come linguaggio educativo, nel tempo SmallTalk diventa anche uno strumento professionale. E’ semplice, ha una sintassi elegante e coerente. SmallTalk introduce un nuovo modo di programmare, in forma di dialogo tra oggetti. In SmallTalk tutto è oggetto, compreso l'interprete stesso; e tutti i comandi sono messaggi. 7 + 7 significa inviare il messaggio '+' all'oggetto 7. SmallTalk mette in scena degli attori, gli assegna le battute e assiste allo spettacolo.

SmallTalk

Scratch è figlio di queste tre idee potenti nate negli anni sessanta:

  • un linguaggio semplice adatto a tutti
  • un modello di interazione pensato per l'apprendimento
  • un ambiente grafico e una logica ad oggetti

Ma che ne è stato di quelle idee potenti?

  1. http://ccl.northwestern.edu/netlogo/
  2. http://education.mit.edu/projects/starlogo-tng