Perché il Lisp

small-coverOggi parto seguendo Practical Common Lisp di Peter Seibel. Intanto un po’ di info, chi è Peter? Ci sarà senz’altro la Wiki… OOPS! no, c’è solo una pagina cortissima, ma bellissima, la copioncollo quasi tutta:

Practical Common Lisp (ISBN 1590592395) is an introductory book on Common Lisp by Peter Seibel which intersperses “practical” chapters along with a fairly complete introduction to the language. In the practical chapters Seibel develops various pieces of software […]

E nella stessa pagina un link a una recensione su Slashdot, lunga, completa.
Poi una bio di Peter l’ho trovata, nelle presentazioni degli Invited Speakers di International Lisp Conference 2010.

OK, pronti via!
Quasi. Intanto per ambientarmi comincio il libro (c’è tutto online) dall’inizio e –prima di subito– cambio la scaletta preparata.
L’introduzione è, secondo me, da leggere attentamente, piena di suggestioni. Ne riporto qualcuna:

It’s hard, in only a few pages of an introductory chapter, to explain why users of a language like it, and it’s even harder to make the case for why you should invest your time in learning a certain language. Personal history only gets us so far. Perhaps I like Lisp because of some quirk in the way my brain is wired.
[…]
So, why Common Lisp? There’s no immediately obvious payoff for adopting Common Lisp the way there is for C, Java, and C++ (unless, of course, you happen to own a Lisp Machine). The benefits of using Lisp have much more to do with the experience of using it. I’ll spend the rest of this book showing you the specific features of Common Lisp and how to use them so you can see for yourself what it’s like. For now I’ll try to give you a sense of Lisp’s philosophy.
The nearest thing Common Lisp has to a motto is the koan-like description, “the programmable programming language.” While cryptic, that description gets at the root of the biggest advantage Common Lisp still has over other languages. More than any other language, Common Lisp follows the philosophy that what’s good for the language’s designer is good for the language’s users. Thus, when you’re programming in Common Lisp, you almost never find yourself wishing the language supported some feature that would make your program easier to write, because, as you’ll see throughout this book, you can just add the feature yourself.

Da dove viene Common Lisp, quali sono le origini?

Common Lisp is the modern descendant of the Lisp language first conceived by John McCarthy in 1956. Lisp circa 1956 was designed for “symbolic data processing”7 and derived its name from one of the things it was quite good at: LISt Processing. We’ve come a long way since then: Common Lisp sports as fine an array of modern data types as you can ask for: a condition system that […] provides a whole level of flexibility missing from the exception systems of languages such as Java, Python, and C++; powerful facilities for doing object-oriented programming; and several language facilities that just don’t exist in other programming languages. How is this possible? What on Earth would provoke the evolution of such a well-equipped language?
[…]
[B]y the early 1980s, with various AI labs and the Lisp machine vendors all providing their own Lisp implementations, there was such a proliferation of Lisp systems and dialects that the folks at DARPA began to express concern about the Lisp community splintering. To address this concern, a grassroots group of Lisp hackers got together in 1981 and began the process of standardizing a new language called Common Lisp that combined the best features from the existing Lisp dialects. Their work was documented in the book Common Lisp the Language by Guy Steele (Digital Press, 1984)–CLtL to the Lisp-cognoscenti.
[…]
In 1996, the American National Standards Institute (ANSI) released a standard for Common Lisp that built on and extended the language specified in CLtL, adding some major new features such as the CLOS and the condition system.

E quindi questo libro per chi è?

This book is for you if you’re curious about Common Lisp, regardless of whether you’re already convinced you want to use it or if you just want to know what all the fuss is about.
If you’ve learned some Lisp already but have had trouble making the leap from academic exercises to real programs, this book should get you on your way. On the other hand, you don’t have to be already convinced that you want to use Lisp to get something out of this book.
[…]
After you finish this book, you’ll be familiar with all the most important features of the language and how they fit together, you’ll have used Common Lisp to write several nontrivial programs, and you’ll be well prepared to continue exploring the language on your own. While everyone’s road to Lisp is different, I hope this book will help smooth the way for you. So, let’s begin.

OK. Due osservazioni:

  • Non so se questo è il modo corretto di scrivere un post; è mio o di Peter? dai lo ammetto è tutto di Peter, ho copiato signora maestra! Ma solo perché lui l’ha detto meglio di quanto sarei stato capace di dirlo io; ma ho capito tutto (credo, spero) e conto di dimostrarlo prossimamente;
  • È un linguaggio diverso da quelli usuali, ne ho parlato in qualche misura sul blog e discusso più volte a voce, ne sono cosciente ma continuo per questa strada. Ai linguaggi citati da Peter potrei aggiungerne altri che hanno forti sostenitori, p.es. VisualBasic, Ruby, Lua, Matlab (quest’ultimo poi…). Dai è il mio blog, o quasi, diciamo che questi sono i miei post.
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: