FP -> Haskell – un po’ di storia da un artefice

Io che sono vecchio posso permettermi di seguire cosa avrei voluto seguire quando ancora ero giovane. Per esempio l’informatica ma no, allora era troppo cosa esoterica, la tele parlava di cervelli elettronici (proprio come adesso l’AI 😉 ma in un altro senso). Allora sono finito tra li ingegneri civili (credo che adesso si chiamino edili). Ma poi ho trafficato con i ‘puters, sempre. A sproposito, senza tutta la preparazione che ci sarebbe voluta.

Adesso, come dicevo, sono arrivato, dopo il Lisp (e Scheme e Racket) a Haskell, FP pura 😋

E –serendipity qui– mi viene suggerito un video imperdibile, quasi un’ora di storia di Haskell! Da uno di quelli che l’hanno fatto. E con sorprese dentro: ce n’è una che qualcosa sapevo ma non che fosse così importante, almeno per me, sapete vengo dal Fortran.

John Hughes, il relatore, si presenta così:

25 years ago I published “Why Functional Programming Matters”, a manifesto for FP–but the subject is much older than that!

As software becomes more and more complex, it is more and more important to structure it well. Well-structured software is easy to write, easy to debug, and provides a collection of modules that can be re-used to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularised. Functional languages push those limits back. In this paper we show that two features of functional languages in particular, higher-order functions and lazy evaluation, can contribute greatly to modularity. As examples, we manipulate lists and trees, program several numerical algorithms, and implement the alpha-beta heuristic (an algorithm from Artificial Intelligence used in game-playing programs). Since modularity is the key to successful programming, functional languages are vitally important to the real world.

Video tutto da vedere (io più volte). A complemento —solo per uso personale— ho redatto una lista delle persone citate; m’interessa la storia e ho carenze (sono di una ‘gnuransa encyclopedica).

Anni ’40
Alonzo Church, lambda calculus.

Anni ’60 (inizia anche un po’ prima, secondo me)
John McCarthy, il Lisp.

1965
Peter J. Landin, The Next 700 Programming Languages.

1967
John Backus, sì quello del Fortran (per me), ma anche Algol e FP: Can Programming Be Liberated from the von Neumann Style? A functional Style and Its Algebra of Programs

1982
Peter Henderson,
Functional geometry: it seems there is a positive correlation between the simplicity of the rules and the quality of the algebra as a description tool.

1994
Paul Hudak and Mark P. Jones
Haskell vs. Ada vs. C++ vs. Awk vs… An Experiment in Software Prototyping Productivity

Volendo parecchi di questi papers si trovano ontehtoobz (alcuni ahumm-ahumm). Io che soffro d’insonnia probabilmente… forse… nell’anno che viene. Chissà. Appena supero lo shock di John Backus. Anzi mi verrebbe voglia di rifare (sì già fatto ma repetita juventus come dice Moggi) un post sul Fortran di quando ho cominciato, con i GOTOs, anzi IFs come si usavano allora (sì, erano GOTOs).

H/T a b3h3m0th.
🤩

Posta un commento o usa questo indirizzo per il trackback.

Rispondi

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

Logo di WordPress.com

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

Google photo

Stai commentando usando il tuo account Google. 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 )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

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