SlideShare a Scribd company logo
1 of 11
Download to read offline
Per un Museo del Codice Sorgente
Una presentazione visuale
8

EXIT
1

Concetti

2

Contesti

3

Attori

4

Linguaggi

5

Stili

6

Poetica

7

Interfacce

8

Shop - Bar

ENTRY
7
2
1

3

Versione presentata all'Hackmeeting 2010

6

4

5
Potrebbe essere definito il primo museo
non dell'hardware, ma del software.
Museo inteso come spazio di
conservazione e/o catalogazione (il
backend del museo),
ma anche come spazio di continua
riorganizzazione, di didattica, di
ripensamento e riproposizione in termini
nuovi (frontend).
Il visitatore che è entrato con l'aspettativa
di trovarsi davanti serie di simboli e
numeri, deve passare attraverso una
sorpresa dopo l'altra e uscire con il
bisogno di ripensare le sue categorie
relative al codice sorgente e all'attività
della programmazione. Deve percepire
sensorialmente il dubbio:
attività umanistica o scientifica?
processo meccanico o estetico?
E' un museo dedicato sia agli utenti che
non sanno nulla di programmazione, sia
ai programmatori. Si può pensare anche
a due percorsi distinti, marcati
visibilmente, dedicati alle due tipologie

8

EXIT
ENTRY

7
2
1

3

6

4

5
Le Stanze

1

Concetti

2

Contesti

3

Attori

4

Linguaggi

5

Stili

6

Poetica

7

Interfacce

Con riferimento alle stanze delle poesie rinascimentali il
concetto di stanza contiene tre diverse dimensioni:
- l'ambiente in cui il poeta si ritira per creare,
- lo spazio della dinamica interiore da cui la parola poetica
scaturisce,
- la forma che essa assume traducendosi in scrittura.
Le Stanze sono dunque i contesti di lavoro reali ma anche i
luoghi mentali dove il programmatore/autore immagina i suoi
testi.
Sono Stanze Espositive in cui su diversi supporti (pannelli,
proiezioni,
schermi
multimediali,
audio...)
vengono
rappresentati estratti di sorgenti, schede informative, foto
d'epoca, grafici o filmati.
Stanze come ipertesti. quando necessario, o utile, gli oggetti
esposti portano l'indicazione di “link” ad altri oggetti in altre
Stanze.
Questa stanza introduce i concetti chiave; utilizza un linguaggio
visivo, iconico.
1

Deve trattare alcuni punti chiave:
– cos'è un pro/gramma
– programmi come testi, come storie narrate
– indicatori sociolinguistici
–…

Concetti

8
7

2
1

3

6

4

5

Concetti chiave per non addetti:
– generazioni di linguaggi (1G- 5GL)
– diversi modelli di linguaggio (imperativo, funzionale,
orientato agli oggetti, dichiarativo)
– interpretazione o compilazione, etc
– la manutenzione del codice sorgente
– I linguaggi artificiali come: linguaggi immaginari, linguaggi
ausiliari, linguaggi filosofici
Sintesi di alto livello:
– numero di linguaggi creati e usati e loro crescita nel tempo
– il movimento del free software e dell'open source
– numero di codici sorgenti rilasciati e disponibili
2

E' una stanza particolare, riproduce un tipico luogo di lavoro del
programmatore: il tavolo, i monitor, i libri, la luce ... ma anche
gli strumenti virtuali: gli editor, i forum di autoaiuto e i siti di
Documentazione.

Contesti
8
7

2
1

3

Vengono rappresentati anche fatti numerici: quanto può essere
lungo il codice di un programma che un programmatore tiene
sotto controllo, quanti linguaggi in media conosce un
programmatore, quando comincia ad imparare, per quanti anni
riesce a lavorare...

6

4

Un'altra sottosezione contiene brani tratti da commenti o post in
forum scritti da programmatori.

5

Questo deve essere uno spazio vissuto, dal quale si può
accedere ad un “guestbook” (moderato, sul sito web
dell'esposizione) per permettere ai visitatori di lasciare la
propria esperienza, accrescendo così le informazioni catalogate
dal museo.
Da Ada Lovelace Byron a Larry Wall, questa stanza contiene
ed espone le informazioni sulle persone che hanno contribuito
a fare la storia del codice sorgente, inventando linguaggi
(Backus, Wirth, Wall, ... ), algoritmi (Hoare, ...), programmi
(Brickin, Stallman, Torvalds, …)
3

Attori

Per ognuna una scheda, una foto, con informazioni non solo
relative al lato professionale, ma anche la vita, le curiosità.

8
7

2
1

3

6

4

5

L'obiettivo è mostrare persone a tutto tondo, che investono tutta
la loro personalità nel lavoro di “creatori di artefatti digitali”.
Una sottosezione è dedicata a personaggi che hanno creato
dei punti di svolta, o di intersezione:
– Gottfried Willhehm Leibniz e altri autori di lingue filosofiche
– Noel Arnaud (OuLiPo: ALGOL poem)
– Pierre Lévy ...
La lista mantenuta presso l'università di Ginevra (lang-list.txt)
contiene 2350 linguaggi.

4

Linguaggi
8
7

2
1

3

6

4

5

Sarebbe pero possibile presentare differenti descrizioni generali
dei linguaggi di programmazione, sotto forma di mappe
(es.O'Reilly)
o
tabelle
riassuntive
(http://it.wikipedia.org/wiki/Elenco_di_lingue_parlate_nel_mond
o):
– per data di invenzione
– per luogo di invenzione
– per filiazione
– per ambiti d'uso
– per frequenza di uso
– ...
Per ogni linguaggio, una scheda con le informazioni principali,
un esempio di codice (es. 99_bottles o hello_world).
Speciali sezioni sono dedicate ad alcune particolari categorie di
linguaggi:
– linguaggi esoterici (brainfuck, Intercal, LOLCODE, Chef, ...)
– linguaggi nazionali (GOST, AMMORIA, Fjolnir...)
– linguaggi artistici (Piet)
– linguaggi senza parentesi e aperti (PERL)
e ad alcuni fatti significativi:
– rapporto tra lingua dei programmatori e lessico dei
linguaggi, nel tempo
– linguaggi più insegnati/imparati
– ...
8
7

2
1

6

3

4
5

Stili

5

Come i linguaggi hanno una storia, così gli stili di
programmazione, a volte strettamente legati ad essi ma a volte
indipendenti.
Il museo può presentare esempi della programmazione
strutturata (Wirth, Dijkstra, Warner, Jackson) e di quella a
oggetti (Dijkstra).
Vengono mostrati alcuni standard di scrittura nei diversi
linguaggi.
Una sezione importante è quella dedicata al paradigma del
Literate Programming di Donald Knuth, che è uno dei momenti
storici chiave per capire il rapporto tra stile e scrittura.
8
7

2
1

6

3

4

6

Poetica

5

Questa stanza è dedicata ad un periodo particolare, intorno agli
anni '90, in cui diversi artisti/programmatori si sono cimentati
con la scrittura di veri e propri componimenti poetici scritti
in un linguaggio di programmazione, solitamente il PERL
Si possono esporre esempi di queste opere (Wall, Hopkins) in
maniera fantasiosa in modo da recuperare gli aspetti tipografici
(contestuali) della fruizione della poesia.
Una sottosezione potrebbe essere dedicata alla formattazione
del codice, all'applicazione dell'ASCI art al codice sorgente,
come in alcuni esempi tratti dalle competizioni di obfuscated
coding.
Un' altra sottosezione è dedicata all'estetica dei virus (Jaromil).
Potrebbe essere interessante uscire dall'esposizione con una
copia cartacea di una di queste opere.
8
7

2
1

6

3

4

7

5

Interfacce

In questa stanza possono essere inventate e mostrate
rappresentazioni alternative, aumentate, multimediali, del
codice sorgente, al di là di quelle standard usate dai
programmatori per scrivere e leggere il codice.
Verranno esposte versioni del codice:
– sonore: esecuzioni vocali, rappresentazioni audio (es.
LYCAY)
– grafiche non alfabetiche: disegno del codice
– grafico-alfabetiche: uso degli accorgimenti tipografici per
evidenziare parti o categorie diverse, come negli editor di
codice
– alfabetiche non lineari: circolari, tridimensionali
– alfabetiche non statiche: testina di lettura in movimento
– dinamiche: rappresentazioni basate sull'interazione con
l'utente
8
7

2
1

6

3

4

5

Per un Museo del Codice Sorgente
Testo Stefano Penge - steve@lynxlab.com
Editing Francesco Fagnini francesco@sapete.org

8

Shop –
Credits

Copyright Stefano Penge 2010 CC BY-NC-SA

More Related Content

Similar to Per un museo del codice sorgente

Un Grande Informatico
Un Grande InformaticoUn Grande Informatico
Un Grande Informaticoguest7f82ed
 
Convegno ArCo - Architettura della Conoscenza
Convegno ArCo - Architettura della ConoscenzaConvegno ArCo - Architettura della Conoscenza
Convegno ArCo - Architettura della ConoscenzaArcoProject
 
Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...
Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...
Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...Paolo Tentori
 
Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...
Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...
Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...Salvatore Vassallo
 
Beni Culturali 2.2 Applicazioni Os
Beni Culturali 2.2  Applicazioni OsBeni Culturali 2.2  Applicazioni Os
Beni Culturali 2.2 Applicazioni OsCaterina Policaro
 
10 Il computer come calcolatore - 4
10 Il computer come calcolatore - 410 Il computer come calcolatore - 4
10 Il computer come calcolatore - 4Federico Gobbo
 
Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010
Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010
Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010tesicamp
 
Mostra virtuale sulla letteratura per l'infanzia
Mostra virtuale sulla letteratura per l'infanziaMostra virtuale sulla letteratura per l'infanzia
Mostra virtuale sulla letteratura per l'infanziaEmma Dal Cortivo
 
Una mostra virtuale per APICE
Una mostra virtuale per APICEUna mostra virtuale per APICE
Una mostra virtuale per APICEemmadc
 
E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...
E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...
E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...libriedocumenti
 
7.Ingegneria e creativita'
7.Ingegneria e creativita'7.Ingegneria e creativita'
7.Ingegneria e creativita'Roberto Polillo
 
Informatica umanistica 2016 - 4
Informatica umanistica   2016 - 4Informatica umanistica   2016 - 4
Informatica umanistica 2016 - 4Stefano Lariccia
 

Similar to Per un museo del codice sorgente (20)

Un Grande Informatico
Un Grande InformaticoUn Grande Informatico
Un Grande Informatico
 
Convegno ArCo - Architettura della Conoscenza
Convegno ArCo - Architettura della ConoscenzaConvegno ArCo - Architettura della Conoscenza
Convegno ArCo - Architettura della Conoscenza
 
Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...
Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...
Abstract from "Cataloging in the era of the semantic web: Arabic, Cyrillic an...
 
Les Bibliothèques Virtuelles Humanistes e il progetto EDITEF
Les Bibliothèques Virtuelles Humanistes e il progetto EDITEFLes Bibliothèques Virtuelles Humanistes e il progetto EDITEF
Les Bibliothèques Virtuelles Humanistes e il progetto EDITEF
 
Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...
Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...
Orientarsi nel museo virtuale: le Topic Maps e ontologie multilingua in accre...
 
Beni Culturali 2.2 Applicazioni Os
Beni Culturali 2.2  Applicazioni OsBeni Culturali 2.2  Applicazioni Os
Beni Culturali 2.2 Applicazioni Os
 
10 Il computer come calcolatore - 4
10 Il computer come calcolatore - 410 Il computer come calcolatore - 4
10 Il computer come calcolatore - 4
 
Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010
Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010
Nicola Capelli - Fondo Giuseppe Pontiggia - TesiCamp 2010
 
Mostra virtuale sulla letteratura per l'infanzia
Mostra virtuale sulla letteratura per l'infanziaMostra virtuale sulla letteratura per l'infanzia
Mostra virtuale sulla letteratura per l'infanzia
 
Una mostra virtuale per APICE
Una mostra virtuale per APICEUna mostra virtuale per APICE
Una mostra virtuale per APICE
 
2006 Py01 intro
2006 Py01 intro2006 Py01 intro
2006 Py01 intro
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
E gutenberg visivamente parlando
E gutenberg visivamente parlandoE gutenberg visivamente parlando
E gutenberg visivamente parlando
 
E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...
E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...
E-LIS : Un Open Archive disciplinare: problematiche e gestione / Antonella De...
 
Linux day
Linux dayLinux day
Linux day
 
7.Ingegneria e creativita'
7.Ingegneria e creativita'7.Ingegneria e creativita'
7.Ingegneria e creativita'
 
Tecnologie per l'insegnamento
Tecnologie per l'insegnamentoTecnologie per l'insegnamento
Tecnologie per l'insegnamento
 
Software open
Software openSoftware open
Software open
 
Informatica umanistica 2016 - 4
Informatica umanistica   2016 - 4Informatica umanistica   2016 - 4
Informatica umanistica 2016 - 4
 
Pensiero computazionale
Pensiero computazionalePensiero computazionale
Pensiero computazionale
 

More from Stefano Penge

Valutare (nel, con il) digitale
Valutare  (nel, con il) digitaleValutare  (nel, con il) digitale
Valutare (nel, con il) digitaleStefano Penge
 
Verso un uso consapevole dei dati digitali nell'educazione
Verso un uso  consapevole dei dati digitali nell'educazioneVerso un uso  consapevole dei dati digitali nell'educazione
Verso un uso consapevole dei dati digitali nell'educazioneStefano Penge
 
Programma o sarai programmato
Programma o sarai programmatoProgramma o sarai programmato
Programma o sarai programmatoStefano Penge
 
Creiamo una app Android con gli Opendata di Ipocad
Creiamo  una app Android con gli Opendata di IpocadCreiamo  una app Android con gli Opendata di Ipocad
Creiamo una app Android con gli Opendata di IpocadStefano Penge
 
Un automa linguistico
Un automa linguisticoUn automa linguistico
Un automa linguisticoStefano Penge
 
SCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_LynxSCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_LynxStefano Penge
 
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...Stefano Penge
 
Filckr apprendimento informale
Filckr apprendimento informaleFilckr apprendimento informale
Filckr apprendimento informaleStefano Penge
 
Social tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitaleSocial tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitaleStefano Penge
 
Attori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integratoAttori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integratoStefano Penge
 
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Stefano Penge
 
Strumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento onlineStrumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento onlineStefano Penge
 
Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...Stefano Penge
 
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...Stefano Penge
 
Opendata e opensource
Opendata e opensourceOpendata e opensource
Opendata e opensourceStefano Penge
 
Presentazione wikibolario online
Presentazione wikibolario onlinePresentazione wikibolario online
Presentazione wikibolario onlineStefano Penge
 

More from Stefano Penge (18)

Valutare (nel, con il) digitale
Valutare  (nel, con il) digitaleValutare  (nel, con il) digitale
Valutare (nel, con il) digitale
 
Verso un uso consapevole dei dati digitali nell'educazione
Verso un uso  consapevole dei dati digitali nell'educazioneVerso un uso  consapevole dei dati digitali nell'educazione
Verso un uso consapevole dei dati digitali nell'educazione
 
Rodari digitale
Rodari digitaleRodari digitale
Rodari digitale
 
Programma o sarai programmato
Programma o sarai programmatoProgramma o sarai programmato
Programma o sarai programmato
 
Creiamo una app Android con gli Opendata di Ipocad
Creiamo  una app Android con gli Opendata di IpocadCreiamo  una app Android con gli Opendata di Ipocad
Creiamo una app Android con gli Opendata di Ipocad
 
Mako
MakoMako
Mako
 
Un automa linguistico
Un automa linguisticoUn automa linguistico
Un automa linguistico
 
SCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_LynxSCE2014_ACADEMY_Lynx
SCE2014_ACADEMY_Lynx
 
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
Preparare il futuro: finanziamenti pubblici per idee innovative basata sull'o...
 
Filckr apprendimento informale
Filckr apprendimento informaleFilckr apprendimento informale
Filckr apprendimento informale
 
Social tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitaleSocial tagging in un ambiente di apprendimento digitale
Social tagging in un ambiente di apprendimento digitale
 
Attori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integratoAttori, ambienti e oggetti: un modello integrato
Attori, ambienti e oggetti: un modello integrato
 
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
Collaborare con gli sviluppatori per organizzare e sviluppare servizi di orie...
 
Strumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento onlineStrumenti di analisi per la valutazione di un gruppo di apprendimento online
Strumenti di analisi per la valutazione di un gruppo di apprendimento online
 
Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...Strategie collaborative di costruzione di un corso online: una metodologia a ...
Strategie collaborative di costruzione di un corso online: una metodologia a ...
 
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
Strumenti portabili per l'analisi di un forum in un ambiente di apprendimento...
 
Opendata e opensource
Opendata e opensourceOpendata e opensource
Opendata e opensource
 
Presentazione wikibolario online
Presentazione wikibolario onlinePresentazione wikibolario online
Presentazione wikibolario online
 

Per un museo del codice sorgente

  • 1. Per un Museo del Codice Sorgente Una presentazione visuale 8 EXIT 1 Concetti 2 Contesti 3 Attori 4 Linguaggi 5 Stili 6 Poetica 7 Interfacce 8 Shop - Bar ENTRY 7 2 1 3 Versione presentata all'Hackmeeting 2010 6 4 5
  • 2. Potrebbe essere definito il primo museo non dell'hardware, ma del software. Museo inteso come spazio di conservazione e/o catalogazione (il backend del museo), ma anche come spazio di continua riorganizzazione, di didattica, di ripensamento e riproposizione in termini nuovi (frontend). Il visitatore che è entrato con l'aspettativa di trovarsi davanti serie di simboli e numeri, deve passare attraverso una sorpresa dopo l'altra e uscire con il bisogno di ripensare le sue categorie relative al codice sorgente e all'attività della programmazione. Deve percepire sensorialmente il dubbio: attività umanistica o scientifica? processo meccanico o estetico? E' un museo dedicato sia agli utenti che non sanno nulla di programmazione, sia ai programmatori. Si può pensare anche a due percorsi distinti, marcati visibilmente, dedicati alle due tipologie 8 EXIT ENTRY 7 2 1 3 6 4 5
  • 3. Le Stanze 1 Concetti 2 Contesti 3 Attori 4 Linguaggi 5 Stili 6 Poetica 7 Interfacce Con riferimento alle stanze delle poesie rinascimentali il concetto di stanza contiene tre diverse dimensioni: - l'ambiente in cui il poeta si ritira per creare, - lo spazio della dinamica interiore da cui la parola poetica scaturisce, - la forma che essa assume traducendosi in scrittura. Le Stanze sono dunque i contesti di lavoro reali ma anche i luoghi mentali dove il programmatore/autore immagina i suoi testi. Sono Stanze Espositive in cui su diversi supporti (pannelli, proiezioni, schermi multimediali, audio...) vengono rappresentati estratti di sorgenti, schede informative, foto d'epoca, grafici o filmati. Stanze come ipertesti. quando necessario, o utile, gli oggetti esposti portano l'indicazione di “link” ad altri oggetti in altre Stanze.
  • 4. Questa stanza introduce i concetti chiave; utilizza un linguaggio visivo, iconico. 1 Deve trattare alcuni punti chiave: – cos'è un pro/gramma – programmi come testi, come storie narrate – indicatori sociolinguistici –… Concetti 8 7 2 1 3 6 4 5 Concetti chiave per non addetti: – generazioni di linguaggi (1G- 5GL) – diversi modelli di linguaggio (imperativo, funzionale, orientato agli oggetti, dichiarativo) – interpretazione o compilazione, etc – la manutenzione del codice sorgente – I linguaggi artificiali come: linguaggi immaginari, linguaggi ausiliari, linguaggi filosofici Sintesi di alto livello: – numero di linguaggi creati e usati e loro crescita nel tempo – il movimento del free software e dell'open source – numero di codici sorgenti rilasciati e disponibili
  • 5. 2 E' una stanza particolare, riproduce un tipico luogo di lavoro del programmatore: il tavolo, i monitor, i libri, la luce ... ma anche gli strumenti virtuali: gli editor, i forum di autoaiuto e i siti di Documentazione. Contesti 8 7 2 1 3 Vengono rappresentati anche fatti numerici: quanto può essere lungo il codice di un programma che un programmatore tiene sotto controllo, quanti linguaggi in media conosce un programmatore, quando comincia ad imparare, per quanti anni riesce a lavorare... 6 4 Un'altra sottosezione contiene brani tratti da commenti o post in forum scritti da programmatori. 5 Questo deve essere uno spazio vissuto, dal quale si può accedere ad un “guestbook” (moderato, sul sito web dell'esposizione) per permettere ai visitatori di lasciare la propria esperienza, accrescendo così le informazioni catalogate dal museo.
  • 6. Da Ada Lovelace Byron a Larry Wall, questa stanza contiene ed espone le informazioni sulle persone che hanno contribuito a fare la storia del codice sorgente, inventando linguaggi (Backus, Wirth, Wall, ... ), algoritmi (Hoare, ...), programmi (Brickin, Stallman, Torvalds, …) 3 Attori Per ognuna una scheda, una foto, con informazioni non solo relative al lato professionale, ma anche la vita, le curiosità. 8 7 2 1 3 6 4 5 L'obiettivo è mostrare persone a tutto tondo, che investono tutta la loro personalità nel lavoro di “creatori di artefatti digitali”. Una sottosezione è dedicata a personaggi che hanno creato dei punti di svolta, o di intersezione: – Gottfried Willhehm Leibniz e altri autori di lingue filosofiche – Noel Arnaud (OuLiPo: ALGOL poem) – Pierre Lévy ...
  • 7. La lista mantenuta presso l'università di Ginevra (lang-list.txt) contiene 2350 linguaggi. 4 Linguaggi 8 7 2 1 3 6 4 5 Sarebbe pero possibile presentare differenti descrizioni generali dei linguaggi di programmazione, sotto forma di mappe (es.O'Reilly) o tabelle riassuntive (http://it.wikipedia.org/wiki/Elenco_di_lingue_parlate_nel_mond o): – per data di invenzione – per luogo di invenzione – per filiazione – per ambiti d'uso – per frequenza di uso – ... Per ogni linguaggio, una scheda con le informazioni principali, un esempio di codice (es. 99_bottles o hello_world). Speciali sezioni sono dedicate ad alcune particolari categorie di linguaggi: – linguaggi esoterici (brainfuck, Intercal, LOLCODE, Chef, ...) – linguaggi nazionali (GOST, AMMORIA, Fjolnir...) – linguaggi artistici (Piet) – linguaggi senza parentesi e aperti (PERL) e ad alcuni fatti significativi: – rapporto tra lingua dei programmatori e lessico dei linguaggi, nel tempo – linguaggi più insegnati/imparati – ...
  • 8. 8 7 2 1 6 3 4 5 Stili 5 Come i linguaggi hanno una storia, così gli stili di programmazione, a volte strettamente legati ad essi ma a volte indipendenti. Il museo può presentare esempi della programmazione strutturata (Wirth, Dijkstra, Warner, Jackson) e di quella a oggetti (Dijkstra). Vengono mostrati alcuni standard di scrittura nei diversi linguaggi. Una sezione importante è quella dedicata al paradigma del Literate Programming di Donald Knuth, che è uno dei momenti storici chiave per capire il rapporto tra stile e scrittura.
  • 9. 8 7 2 1 6 3 4 6 Poetica 5 Questa stanza è dedicata ad un periodo particolare, intorno agli anni '90, in cui diversi artisti/programmatori si sono cimentati con la scrittura di veri e propri componimenti poetici scritti in un linguaggio di programmazione, solitamente il PERL Si possono esporre esempi di queste opere (Wall, Hopkins) in maniera fantasiosa in modo da recuperare gli aspetti tipografici (contestuali) della fruizione della poesia. Una sottosezione potrebbe essere dedicata alla formattazione del codice, all'applicazione dell'ASCI art al codice sorgente, come in alcuni esempi tratti dalle competizioni di obfuscated coding. Un' altra sottosezione è dedicata all'estetica dei virus (Jaromil). Potrebbe essere interessante uscire dall'esposizione con una copia cartacea di una di queste opere.
  • 10. 8 7 2 1 6 3 4 7 5 Interfacce In questa stanza possono essere inventate e mostrate rappresentazioni alternative, aumentate, multimediali, del codice sorgente, al di là di quelle standard usate dai programmatori per scrivere e leggere il codice. Verranno esposte versioni del codice: – sonore: esecuzioni vocali, rappresentazioni audio (es. LYCAY) – grafiche non alfabetiche: disegno del codice – grafico-alfabetiche: uso degli accorgimenti tipografici per evidenziare parti o categorie diverse, come negli editor di codice – alfabetiche non lineari: circolari, tridimensionali – alfabetiche non statiche: testina di lettura in movimento – dinamiche: rappresentazioni basate sull'interazione con l'utente
  • 11. 8 7 2 1 6 3 4 5 Per un Museo del Codice Sorgente Testo Stefano Penge - steve@lynxlab.com Editing Francesco Fagnini francesco@sapete.org 8 Shop – Credits Copyright Stefano Penge 2010 CC BY-NC-SA