Il Lisp è diverso

warningQuesto –vi avviso subito– è uno di quei post senza troppo senso in cui tento di giutificarmi di quello che faccio. Una roba che capita ogni tanto l’ultima volta credo sia stata questa: Perché Lisp.

Il post è nato in condizioni di serendipity funzionale e ricorsiva. Cioè in seguito a una discussione partita su Facebook e proseguita via mail su quale sia la struttura migliore dei linguaggi di programmazione poi deragliata. Magari ne parlerò in futuro ma forse sono cose che interessano solo i vecchi (anche il mio interlocutore aveva iniziato con il Fortran) mentre oggi sono tutti alle prese con C++, Java, Matlab (di cui se ne parla poco ma c’è). A dire il vero chi seguo su Twitter (il mio social-coso preferito) dice di programmazione funzionale, Clojure, Haskell, Scala e peggio ancora. Che poi è quello che vorrei approfondire, forse probabilmente i miei seguiti non sono tipici, pochissimi gattini pucciosi 😉

10-90

OK, TL;DR, vengo al dunque: a seguito della discussione ho googlato un po’ (neanche tanto) e serendipiticamente (le ricerche non sono mai perfette e a volte, come in questo caso, per fortuna) sono finito su un vecchio post di John D. Cook, questo: The myth of the Lisp genius.

Questo post mi ha fatto deragliare –al solito! Non tanto quello che dice John (sempre ottimo) ma i commenti.
Adesso, senza prenderlo troppo sul serio, come un gioco, riporto qualcosa copiando –come sempre– di brutto.

Lisp has jokingly been called ‘the most intelligent way to misuse a computer’. I think that description is a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
Sì, è EW Dijkstra, riportato da Jan Galkowski nel commento del 3 dicembre.

Christopher (Kotfila, si trova su Twitter): Learning LISP is valuable because it provides a completely different perspective on what a programing language is.

Andrew Pennebaker: Verbosity distinguishes programming lanugages. Because Lisp requires less typing than other languages, Lisp affords programmers the mental space to write more complex programs. That’s why AI is typically done in Lisp.
È da leggere tutto il commento, anche divertente.
You don’t have to be a genius to learn Lisp or to use functional programming, but there is a correlation between Lispers and Computer Science education, interest in theory, and natural curiosity.

Personalmente concordo con Jason in tutto e per tutto il suo commento (che non copio, è di là).
Ma ci sono tutti gli altri, tanti spunti.
Ho controllato anche chi sono i commentatori, à la NSA, dove possibile per quelli che maggiormente mi piacciono e ho scoperto una cosa, forse. O forse no, è normale: sono tutti importanti! A volte salta fuori un post in un blog di un giovanissimo che ti piace, lo RSSisci ma il blog muore, il giovane ha trovato lavoro e/o non ha più voglia e tempo. Peccato. Questi invece interagiscono, spesso in proprio o sul blog di John.

Infine aggiungo una cosa mia, anzi tre:

  • le s-expressions che ritornano un valore con la concatenazione e l’annidamento rendono diverso il Lisp da Fortran, Algol e derivati (C++, Java, Python);
  • l’omoiconicità, la struttura del programma è simile alla sua sintassi, e quindi rappresentazione interna del programma può dedurre leggendo il layout del testo;
  • le macro, non è che le padroneggio come vorrei ma sono quelle che unite all’omoiconicità rendono il Lisp un linguaggio di programmazione programmabile.

x-y

:mrgreen:

Advertisements
Post a comment or leave a trackback: Trackback URL.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: