Why Learn Lisp When There Are Perl and Python
Python has readable syntax, a huge library, and bindings for what seems like every major in linux. Perl has CPAN. It seems with those languages if you want to do something all you have to do is import functionality from a library someone had written and use that. In lisp you'd have to “roll your own”.
Why should I keep on learning lisp when there are python and perl?
You question is a valid question. Unfortunately, so far in the 14 replies in the thread, vast majority are one-liner drivels from reactionary lispers, many of which are long time dwellers of comp.lang.lisp. A common scene in any programing newsgroup. They feel attacked, reasonably by your irrespective and incentive tone, and they have the need to sputter drivel back, to entertain themselves. (I wish perl and python programers take a glimpse of that thread to realize what computing factions are driveling behind each other's back)
Although your message is written in a taunting style, but it has a valid point, and in fact is a Frequently Ask Question among the vast majority of programers in the computing industry. Namely, today, languages such as Perl, PHP, and to a lesser degree Python, are so popular, and ubiquitous, widely deployed and widely demanded in the job market, and also, that these languages in general and in comparison to Lisp, have far wide library support and as well as community support, and also, that these comparatively young languages are relatively high-level modern languages, that they are at a level above C, Java, making them ideal for saving programer's time as does lisp.
So, what are some reasons, if any, should today's programer invest time into another language lisp (especially it has trivial percentage in programing job market), while not using the time, to perhaps master a industrial language they already know, such as Perl, or even venture into another language like Python, PHP or the new kid on the block Ruby?
So far, “D Herring” and “fireblade/bobi” has given their personal take
on this question. Lars Rune Nøstdal, provided a link
that details lispers's
stories on why lispers lisp.
Please allow me to give my take, and i believe it is a most important _technical_ reason, why, Perl, PHP, Python languages today simply cannot replace lisp. And why, if you are a programer with serious intention of refining your craft, then learning lisp is a good investment. (one practical reason in learning lisp, is that the widely popular programer's text editor emacs has lisp embedded as its extension language. As a coder, knowing emacs and lisp, will empower you greatly in the long term.)
I think the one most important technical aspect, that lisp is in fact superior and cannot be replaced by the current crop of high-level languages, is the peculiar fact that the language deals with symbols. Namely, sometimes called symbolic computing.
I have written a exposition on this issue before. It is archived at this page: What is Expressiveness in Programing Languages at the section Symbolic Computation.
There are many “papers” or articles that address the question of what does it mean when someone says lisp is a symbolic language. In my opinion, they are all fuzzy, or filled with academic jargons that is practically and most likely theoretically useless. In my exposition, you will see what lisp's “symbolic computation” in a way that makes you understand.
No, You Don't Need to Learn Lisp
Today, i do not think there's much reason to learn lisp. If i must advocate lisp, then the following are reasons:
- Emacs lisp. It is extremely useful in emacs. (emacs, although powerful, but is a dinasour that cannot be easily fixed due to its cult. This means, if you are not a emacs user, and do not care for the many gospels about emacs, then this reason is not relevant.) [see Practical Emacs Lisp]
- Clojure, is a modern lisp, practical functional language, with growing use in industry. This is a good reason to learn functional programing and lisp. (Note: most lisp fanatics (the Common/Scheme lisp camp), hate Clojure.) (Note: Clojure's community and aim is industrial use, as opposed to Haskell. Haskell is likely to stay in academia and hobbyist programing community forever, like the fate of Scheme lisp, due to the nature of their community. See: Language, Purity, Cult, and Deception.) [see Clojure Tutorial]
- Mathematica, is lisp-like at its core. The language is far superior than ALL (counting Haskell, F#, OCaml, erlang), in my opinion. [see Wolfram Language]