Paul Graham: il pifferaio magico dei nerd
Paul Graham: il pifferaio magico dei nerd
Strani Linguaggi // Weird Languages
0:00
-3:14

Strani Linguaggi // Weird Languages

Traduzione in italiano di Rocco Ciracì dall’essay originale di Paul Graham "Weird Languages"
Traduzione in italiano di Rocco Ciracì dall’essay originale di Paul Graham "Weird Languages" [Agosto 2021].
Immagine generata con Midjourney

Quando le persone affermano che, secondo la loro esperienza, tutti i linguaggi di programmazione sono sostanzialmente equivalenti, stanno facendo una dichiarazione non sui linguaggi, ma sul tipo di programmazione che hanno fatto.

Il 99,5% della programmazione consiste nell'incollare insieme chiamate a funzioni di libreria. Tutti i linguaggi più diffusi sono ugualmente buoni in questo. Quindi si può facilmente passare l'intera carriera operando nell'intersezione dei linguaggi di programmazione più diffusi.

Ma il restante 0,5% della programmazione è sproporzionatamente più interessante. E se si vuole imparare in che cosa consiste, la stranezza dei linguaggi non ordinari è un buon indizio da seguire.

I linguaggi non ordinari non sono strani di per se. Non quelli buoni, almeno. La stranezza di quelli buoni di solito implica l'esistenza di una qualche forma di programmazione che non è solo il solito copy/paste di chiamate di libreria.

Un esempio concreto: Le macro Lisp. Le macro Lisp sembrano strane anche a molti programmatori Lisp. Non solo non rientrano nell'intersezione dei linguaggi più diffusi, ma per loro natura sarebbero difficili da implementare correttamente in un altro linguaggio senza trasformarlo in un dialetto del Lisp. E le macro sono sicuramente una prova di tecniche che vanno oltre il glue coding. Per esempio, risolvendo i problemi scrivendo prima un linguaggio per problemi di quel tipo e poi scrivendo con esso la propria applicazione specifica. Non è tutto ciò che si può fare con le macro; è solo una parte di uno spettro delle tecniche di manipolazione del coding che ancora oggi è ben lungi dall'essere completamente esplorato.

Quindi, se volete ampliare il vostro concetto di programmazione, un modo per farlo è imparare linguaggi non ordinari. Scegliete un linguaggio che la maggior parte dei programmatori considera strano, ma il cui utente medio considera smart, e poi concentratevi sulle differenze tra questo linguaggio e l'intersezione dei linguaggi più diffusi. Cosa si può dire in questo linguaggio che sarebbe impossibile dire in altri? Nel processo di apprendimento di come dire cose che prima non si potevano dire, probabilmente si imparerà a pensare cose che prima non si potevano pensare.

Discussion about this episode

User's avatar