3 ms·
The crust of the article is: > The reason Lisp failed was that it was too successful at what it was designed for. Lisp, alone amongst the early languages was f
by sametmax 7y ago
The crust of the article is:
> The reason Lisp failed was that it was too successful at what it was designed for. Lisp, alone amongst the early languages was flexible enough that the language itself could be remade into whatever the user required. [...] However, the process causes Balkanization. It results in many sub-languages all slightly different. This is the true reason why Lisp code is unreadable to others. In most other languages it is relatively simple to work out what a given line of code does. Lisp, with its extreme expressibility, causes problems as a given symbol could be a variable, function or operator, and a large amount of code may need to be read to find out which.
And I perfectly agree. You can see it in tutorials too. You can even see it in any Lisp-lover comments showing you a proud snippet of how "it can be solved better with lisp": it's too clever.
A little bit of clever is fun, it's good for the soul, it can even be productive. But Lisp is just a big pile of cleverness.
Being clever is so appealing to my geek nature. It's so cool. Yet experience (in coding and life) taught me it is not a good property to build a community around. Or a project for that matter.
At best, it's something that can emerge from a battle against long and arduous stream of problems. And then you can rest, you try to factor away the cleverness. But not as a goal. Not as a basic proposition.
- reikonomusha 7y agoDo you have examples of otherwise well regarded Common Lisp software that has the criteria you state? People have used Lisp cleverly, but most modern libraries are a bunch of functions and classes. Sometimes more foreign features are used, like macros or even reader macros, but they do so to help one express him/herself. Even the open source Common Lisp compilers, written by arguably the lispiest of Lispers, don’t have a lot of “cleverness”. Check out SBCL, CCL, or ECL. Some of the prolific library writers—Weitz, Fukamachi, Hafner (aka Shinmera), Strandh, Beane, etc.—all produce good libraries and good code, and aren’t at all as you describe. Check out Hunchentoot (a web server), Clasp (a new CL compiler), CL-PPCRE (regex library), Radiance (a web framework), Quicklisp (package manager), ... These are all easy to jump into and relatively easy to understand if you know the domain. Even if you go back and look at the Symbolics sources, there really isn’t a lot of cleverness. If the complaint is that some lone wolf programmers write obscure code, then I’m not sure what’s to worry about. Somebody’s lone wolf code isn’t what you’re going to be importing or depending on. I hear this opinion you state somewhat often by drive-by comments, but I never see examples, just anecdotes.
- ksaj 7y agoDon't write clever. Write clear.
- thsealienbstrds 7y agoOn the other hand, this big pile of cleverness seems to be extremely successful: https://en.wikipedia.org/wiki/Design_Patterns https://en.wikipedia.org/wiki/Design_Patterns :)
- flavio81 7y ago> But Lisp is just a big pile of cleverness. That is an opinion that is not grounded on actual usage. In practice we have many libraries that have a source code that is very easy to understand, no doubt thanks to Lisp expressive power.