Live data from Hacker News

Why didn't Common Lisp fix the world?

quora.com

21–30 of 127 posts

Re: Why didn't Common Lisp fix the world?

#21
post #8

Why on earth would it fix the world? It was a step forward in the history of programming languages; but somehow the end of it, the final fix? Why would anyone expect that? Programming languages are about providing a useful way for humans to formulate and implement their ideas. Starting by turning things on their head reverse polish notation style is bad start as it is counter intuitive to nearly everyone.

My theory is that because programming is mostly about fighting incidental complexity, it is very easy to believe that if there were some way of getting rid of it, programs would write itself and programming would be reduced to sipping daiquiris on a beach.

Lisp (especially compared to C) indeed helps to reduce incidental complexity to some extent. So it is easy fall into almost religious belief that Lisp is the way to pure programming bliss. Of course the promise is never fulfilled because domain complexity and even incidental complexity is here to stay.

Re: Why didn't Common Lisp fix the world?

#22
post #16

Yes. I have. People with gray beard, strong views on programming languages, politics and UFOs. I always assumed that were dressed up for the occasion and not really real; like someone doing a role playing game or maybe being Santa for the kids during Christmas.

You should meet Robert Smith or Peter Norvig, then, shatter some of those stereotypes.

Re: Why didn't Common Lisp fix the world?

#23
i feel like a lot of lisps are trying to drag this "everything is a list" abstraction way too far than they should. clojure takes more practical and pragmatic approach of giving native residency in a language for useful data structures like arrays, maps and sets and it (along with many other features) has totally won me over. it's incredibly important for a language to be convenient.

edit: and not only me it seems: https://www.google.com/trends/explore#q=%2Fm%2F03yb8hb%2C%20...

Re: Why didn't Common Lisp fix the world?

#24
post #13

While i do like the the idea of DSLs and they certainly do have a place, what I would love to have is to be able to enforce a strict subset of a language in a piece of code. Where first there was discipline and hardly passed on conventions, there now would be statically enforced rule coerction. I deeply believe that the utility of language is not in what it enables, but in what it forbids. For example Clojure and Rus…

Racket.

It's built as a platform for defining arbitrarily simple or complex languages and integrating them together. You should take a look at it. See http://www.ccs.neu.edu/home/matthias/Thoughts/Racket_is____.... :

> To a language designer, Racket is a programming language laboratory. This does not mean that the language is unstable. The designers do not change the language in a whimsical manner. That is, Racket comes with a unique collection of linguistic mechanisms that enable the quick construction of reliable languages, language fragments, and their composition. These tools are so easy to use that plain programmers can design a language after a little bit of instruction. So when a well-trained programmer decides that none of the available dialects is well-suited for a task, he designs a new dialect and writes his program in it. As Paul Hudak said, “the ultimate abstraction is a domain specific language.”

Re: Why didn't Common Lisp fix the world?

#25
post #12

I often think it's because Common Lisp was one of the last pre-web languages to be designed (or standardised anyway). Newer languages like Java/Javascript/Clojure/etc. had the advantage of being able to build a strong community on the web. Whereas Lisp was just on its way out as the web was rising. The hardware and the long standardisation process didn't help either. That, combined with it being both an old and a new…

Perl and python, and c++. Perl especially was influenced by newsgroups, so maybe that doesn't count.

Re: Why didn't Common Lisp fix the world?

#26
It lacks a graphical application development framework that's portable and usable. Java eventually solved this problem (more or less) but neither Garnet nor CLIM ever reached a level where most Gtk/Qt/* programmers would seriously consider using them. Web front ends are find for certain things, but for a lot of the application domains where you might consider Lisp you want a proper desktop GUI application. (This would have been especially true in the early years.) The expressiveness and power of Lisp look a lot less attractive when you run headlong into the practical problems of combining that power with a modern GUI.

There are still a few problem domains (like Computer Algebra) where Lisp provides enough benefits to be worth bridging the gap between its world and modern operating system environments, but by and large the inability to be a complete solution I think serves as a disincentive to use Lisp.

Re: Why didn't Common Lisp fix the world?

#27
post #18

I'm pretty sure the biggest reason it hasn't caught on is the syntax. http://jordi.platinum.linux.pl/piccies/lisp.png It's the most frequent complaint uttered against Lisp for a reason. All of the other things mentioned in the top responses are addressed by modern Lisp variants. If Rust or Swift were implemented with sexps and everything else about them were equal, they would have a lot of difficulty winning hearts a…

Usually people that complain, don't spend time counting the amount of times () [] {} appear on their beloved programming languages.

   print(args) => (print args)

   if (cond) { exp1} else {exp2 } => (if (cond) (exp1) (exp2))
   
   array[index] => (index array)

And so on. On average there is probably the same amount, but visually it kind of appears to be more.

Re: Why didn't Common Lisp fix the world?

#28
post #14
post #11

Earlier quoted context omitted.

Eval? The entire point of Lisp macros is toying around with evalulation in a safe fashion. It's other languages that do it so dangerously that gives eval a bad name. Lisp is the shining example of how to do it right.

AFAIK macros in Lisp are turing complete and executed at compile time. This means (in principle) that there is no guarantee that a Lisp compile will ever terminate. I don't know why the OP is been down voted. Lisp is not for everyone and every application; I think that is a perfectly reasonable point of view.

The OP is being downvoted because he lies.

Common Lisp does have strong and optional static typing. It does have namespaces.

As for CL having `eval` - well, this is true at least. But I fail to see how in the world could that be a bad thing...

Re: Why didn't Common Lisp fix the world?

#29
post #23

i feel like a lot of lisps are trying to drag this "everything is a list" abstraction way too far than they should. clojure takes more practical and pragmatic approach of giving native residency in a language for useful data structures like arrays, maps and sets and it (along with many other features) has totally won me over. it's incredibly important for a language to be convenient. edit: and not only me it seems: h…

>i feel like a lot of lisps are trying to drag this "everything is a list"

I think you are speaking out of ignorance here. "everything is a list" is just a metaphor. Everything is either list or atom and almost everything is atom.

Re: Why didn't Common Lisp fix the world?

#30
post #8

Why on earth would it fix the world? It was a step forward in the history of programming languages; but somehow the end of it, the final fix? Why would anyone expect that? Programming languages are about providing a useful way for humans to formulate and implement their ideas. Starting by turning things on their head reverse polish notation style is bad start as it is counter intuitive to nearly everyone.

By "fixing", I suppose, they meant "to eliminate the known evil that rooted deeply in the software world, such as unsafe languages, unexpressive boilerplate languages, and so on". Making sure the evil is dead for good would have been quite an achievement, sufficient to be called a "fix". Definitely not a final fix, but a step in a right direction indeed.
Post reply on HN