Episode Details

Back to Episodes
Cinque Domande sulla Progettazione dei Linguaggi di Programmazione // Five Questions about Language Design

Cinque Domande sulla Progettazione dei Linguaggi di Programmazione // Five Questions about Language Design

Published 2 years, 6 months ago
Description

Traduzione in italiano di Emmanuela Alesiani dall’essay originale di Paul Graham "Five Questions about Language Design" [Maggio 2001]. La lettura dell'articolo è di Irene Mingozzi.

(Queste sono alcune note che ho scritto per una tavola rotonda sulla progettazione dei linguaggi di programmazione al MIT il 10 maggio 2001.)

1. I linguaggi di programmazione sono per le persone.

I linguaggi di programmazione sono creati per essere utilizzati dalle persone. Essi permettono di comunicare con i computer, che sarebbero disposti a "parlare" qualsiasi lingua, purché sia chiara e univoca. Tuttavia, abbiamo bisogno di linguaggi ad alto livello perché non siamo in grado di gestire direttamente il linguaggio macchina. L'obiettivo dei linguaggi di programmazione è di proteggere le nostre fragili menti umane dall'essere sopraffatte dalla complessità e dai dettagli.

Gli architetti sanno che alcuni tipi di problemi progettuali riguardano più da vicino le caratteristiche individuali, le esigenze e le preferenze delle persone. In altre parole, alcune sfide nella progettazione richiedono una maggiore attenzione alle differenze tra gli individui e a come queste influenzano il modo in cui interagiscono con l'oggetto o il sistema progettato.

Ad esempio, progettare ponti è un compito astratto in cui il principale obiettivo è coprire una distanza con il minor materiale possibile. D'altra parte, progettare sedie richiede di concentrarsi sulle esigenze e le caratteristiche fisiche degli esseri umani.

Anche il software presenta simili sfumature. Progettare algoritmi per instradare i dati attraverso una rete è un compito astratto, simile alla progettazione dei ponti. Tuttavia, progettare linguaggi di programmazione è più simile alla progettazione delle sedie, poiché implica tenere conto delle limitazioni e delle differenze umane.

Molti di noi non amano ammettere che debbano considerare queste debolezze. Infatti, l'idea di progettare soluzioni efficienti, comprensibili e ben strutturate, sembra molto più attraente. Tuttavia, è importante rendersi conto che questo non è un fine in sé.

Quando si parla di adattare i linguaggi di programmazione alle differenze umane, non si intende che debbano essere creati solo per i programmatori meno esperti. Al contrario, bisognerebbe progettare pensando ai migliori programmatori, che comunque hanno delle limitazioni. Nessuno, infatti, apprezzerebbe un linguaggio in cui tutte le variabili fossero rappresentate dalla lettera "x" seguita da indici numerici.

2. Progetta per te stesso e per i tuoi amici

Se si osserva la storia dei linguaggi di programmazione, molti dei migliori sono stati progettati per essere utilizzati dai loro stessi autori, mentre molti dei peggiori sono stati progettati per essere usati da altre persone.

Quando i linguaggi vengono progettati per gli altri, si tratta sempre di un gruppo specifico di persone: persone meno intelligenti rispetto al progettista del linguaggio. Così si ottiene un linguaggio che sembra parlare dall'alto in basso. Cobol è il caso più estremo, ma molti linguaggi sono pervasi da questo spirito.

Questo non ha nulla a che fare con quanto astratto sia il linguaggio. Il linguaggio C è piuttosto a basso livello, ma è stato progettato per essere utilizzato dai suoi autori, ed è per questo che gli hacker lo apprezzano.

L'argomento per la progettazione di linguaggi per programmatori scadenti è che ci sono più programmatori scadenti che bravi programmatori. Può darsi. Ma quei pochi bravi programmatori scrivono una percentuale sproporzionatamente alta del software.

Sono interessato alla domand

Listen Now

Love PodBriefly?

If you like Podbriefly.com, please consider donating to support the ongoing development.

Support Us