3 ms·
I'm a Lisp programmer amongst many other languages, but its quite sad that people quite often tend to say some anecdotal quotes from Graham or Raymond when this
by kettunen 6y ago
I'm a Lisp programmer amongst many other languages, but its quite sad that people quite often tend to say some anecdotal quotes from Graham or Raymond when this question is asked without really giving a good practical reason on why to learn this language. Truth is that you can do basically everything that Lisp can do in any other language only the clearness and conciseness on some things might change.
Best reason to learn it is just if you have some curiosity towards it, just go and learn it. Especially if Lisp might be something out of your comfort zone this could give lots of different ideas on your other work even though I might not use Lisp ever again. To me, Lisp tends to be my first go to language when I want to write something quickly and prototype something, which is mainly due to built-in interactivity in the language that allows this.
To me, what makes Lisp great is the fact how it generalizes the interaction between you and the machine. Basically everything that we as programmers do is to interact with data (programs being data for compilers), which Lisp makes almost indistinguishable from the code itself. This kind of approach with S-expressions makes data representation very easy and clean which the reduces your cognitive overhead since you don't need think about how the data is structured, since S-expressions itself provide an minimal syntax for it.
- ktpsns 6y agoMy closest encounter with LISP was a long project with Wolfram Mathematica. Can you elaborate which tooling and set of "standard libraries" you use? I'm doing day to day work in Python ("batteries included") and reall would like to make the switch.
- kettunen 6y agoPersonally I come from Common Lisp world, so can't say much about other Lisps tooling. In CL I just mainly use couple of different implementations, whatever might suit for the job best. Mainly SBCL with some CCL and ECL thrown in there. Library-wise not much out of the ordinary. Either just built-in tools or maybe some usage of the most common libraries like alexandria (basic utils), cl-ppcre (regex), uiop (OS stuff), usocket (sockets), bordeaux-threads (threads), Closer-MOP (meta-object protocol) and some web tools like Clack with Hunchentoot or Woo etc. So nothing really out of the ordinary in CL. The language spec of Common Lisp is pretty large (not necessarily a good thing) so the built-in libraries offer a lot so you don't necessarily need much third-party libraries. Issue with this along side the size of the spec is the fact that the spec is old, so it's missing some crucial stuff from it like threading etc. in which these third party libraries comes in handy.