Live data from Hacker News

Why is Common Lisp not the most popular programming language?

daninus14.github.io

251–260 of 339 posts

Re: Why is Common Lisp not the most popular programming language?

#251
post #189

Earlier quoted context omitted.

You’re biasing yourself to what you already (probably looks like C). There is nothing more difficult about some paren except you didn’t learn it first.

Nup. Not the language. See how long it takes you to set up a Common Lisp implementation from scratch. Eg steel bank. Better yet, watch a kid try it on for size. Land of Lisp isn’t all bad but they can’t limit themselves to just one! Brackets are beside the point.

apt install sbcl

sbcl —script hello.lisp

Re: Why is Common Lisp not the most popular programming language?

#252

Earlier quoted context omitted.

> nobody will ever advance the CL standard And that’s a good thing.

I suppose, if you are happy with the state of things and the size of the current userbase.

I can’t imagine a single feature that would be worth a change, and I have plenty of complaints about the library.

I also can’t see how that would make it more popular.

Re: Why is Common Lisp not the most popular programming language?

#253
post #88

Earlier quoted context omitted.

> I don't see why I should have to do the tedious work of figuring out all the parentheses manually. I think most people who write a lot of Lisp don't do that. I use Paredit mode in Emacs, which doesn't allow the parens to become mismatched and has operations like "move the last token out of this expression" and "jump to the next expression" so it actually feels like you're editing a tree rather than a chunk of text.…

> operations like "move the last token out of this expression" and "jump to the next expression" And that is the problem. When I am writing code, last thing I want to do is to think about tree manipulation and the numerous commands to do similar-but-not-the-same operations. This is the same reason I don't like Vim, it's hard enough to keep the problem domain in mind, there's no mental space to also remember the ed-st…

This must be where we think about code very differently.

Most code has a tree structure, though many put the root token outside the brackets that mark it. Languages like C, Java and Rust use brackets to express their tree structure much like Lisp does, though they use more flavors of bracket than Common Lisp. Python uses indentation, but it's still expressing a tree. Ruby, Lua, BASIC, and others add keywords, but the stuff inside `do ... end` is still a branch of a tree.

Without a structural editor, I'm still building a tree, but I have to keep more of it in my head.

Re: Why is Common Lisp not the most popular programming language?

#254
post #7

It's the lists. No, not the prefix notation, parenthesis, what have you, although that doesn't help. The lists themselves. In Lisp, code is data, and data is lists. Yes, of course, there are hashmaps, arrays, strings. But idiomatic Lisp code really does use linked lists extensively, it's an entire style of programming. Even if you'd prefer to use different data structures (and again, Common Lisp does support this ),…

I think it's strange that anyone would even ask why common lisp isn't popular. There is no payoff to writing something in it. The binaries are huge, it is going to be a lot less clear than modern C++, it won't be as fast, you still have a garbage collector, the libraries are niche, the syntax is reversed, the tools are niche, the ecosystem is niche, and everything you do is the opposite of what is intuitive at first.

Then on top of all this is built on linked lists which are essentially an obsolete data structure in their simplest form.

There is no reason to learn something with backwards syntax and ancient tools when there isn't even any payoff. Write something in C and the program is fast, small, native and can be compiled anywhere in a fraction of a second. There is still a payoff for all the very real pain. In lisp there is just no reason to use it from any angle other than how clever someone can be with macros and that is the exact opposite of good sustainable programming.

Re: Why is Common Lisp not the most popular programming language?

#255

Earlier quoted context omitted.

On the strength of your first four paragraphs, I have to plug Julia. It doesn't have the benefit you point to in your fifth paragraph, of having a decades-old standard; stability of the core language is good so long as you aren't comparing it with C or CL. But it has a full-fledged macro system, the kind where you can write an anaphoric if. It doesn't have the Zen of macros in a Lisp, but it has the power, and that's…

These points scare me: https://gist.github.com/vindarel/15f4021baad4d22d334cb5ce2be... I doubt Julia gives as many image-based tools for the REPL (no conditions and restarts?), no single-file binary? I guess Julia's ecosystem is less rich than CL's outside of science.

I realized I didn't address one of the main things you said, which was about image-based tools. That's better as its own reply I reckon.

Depends on what you mean by "image-based". Julia doesn't support reloading core dumps, but it has pre-compilation, and it has Revise, which will do everything it can to keep the REPL state up-to-date with changes to the source code. My experience is that it always updates state (silently) or fails and tells you, and when it fails can be predicted: if you modify the layout of a struct, or change an enum, it can't track that, so the prompt will turn yellow and you'll have to restart. You get the same yellow prompt (instead of green, and this is configurable to use textual cues btw) if there's a syntax error, but in that case, you fix the code and press enter and it goes green again.

Revise evals the minimum amount of code to update the program state, this is instantaneous for all practical purposes.

The Julia REPL is a massive improvement over any of the REPLs which ship with open-source Common Lisps, and head and shoulders above what comes with most other languages. It is not yet up to the standard of a commercial Lisp, or of the Emacs SLIME-mode approach, but the community lives in the REPL (and notebooks), so I expect to see the polishing process continue.

Re: Why is Common Lisp not the most popular programming language?

#256
post #189

Earlier quoted context omitted.

You’re biasing yourself to what you already (probably looks like C). There is nothing more difficult about some paren except you didn’t learn it first.

Nup. Not the language. See how long it takes you to set up a Common Lisp implementation from scratch. Eg steel bank. Better yet, watch a kid try it on for size. Land of Lisp isn’t all bad but they can’t limit themselves to just one! Brackets are beside the point.

Why would a professional judge the quality of their tools by the experience of children?

If a 3 year old has trouble using a hammer, you wouldn't conclude that hammers are difficult to use.

Re: Why is Common Lisp not the most popular programming language?

#257
post #190

None of these "programming language evolutionary fitness retrospective" discussions ever manage to address the real heart(s) of the question: - UNIX is C, so C-family languages won. - The network effect is by far the most dominant force in the matter. All of us would like to believe that we operate in a world where technical merit determines memetic fitness, because our jobs seem to depend on it: after all, if we bui…

MacOS, with a slight help from MS, very, very nearly tipped the balance to Pascal in the 80s. I dare say that without C++ hitting mainstream around 1990, C would have languished.

Now you are rewriting history :)

Turbo Pascal was responsible for the Pascal success. And then came delphi along and somehow lost against Visual Basic.

Re: Why is Common Lisp not the most popular programming language?

#258

Earlier quoted context omitted.

> But idiomatic Lisp code really does use linked lists extensively, Idiomatic python code uses lists extensively. In my (somewhat limited) experience, they're the default data structure to use for a lot of algorithms. Slightly more accurately, a lot of stuff in python uses sequences extensively, which are implemented by a number of types - but the default sequence is a list. And strings are lists. Yeah, if a list doe…

People confuse code at the exploratory phase with final production code. Linked lists are a massively flexible data structure which can be great when you are still feeling your way around a problem domain. Once you have a good sense for the shape of your data it is relatively trivial to go back and update the codebase with performance optimized structures.

That may or may not be the case (that they're great for exploratory code, I have actually mixed feelings about that), but it in fact points directly at the problem I was referring to: using Common Lisp in the idiomatic and expected way involves reading and writing a whole bunch of list processing code.

It's not so much that it's a foreign language in the syntactic sense (although it is) but the idiomatic semantics are also pretty foreign to the modern developer. That's a barrier whether or not the promised land is on the far side of the hill.

Re: Why is Common Lisp not the most popular programming language?

#259

I tried to learn lisp, and this may sound like a trite complaint, but I honestly just could not deal with all the parenthesis. Terrible ergonomics.

Try an editor that supports Lisps.

This is the kind of answer which drives people away: you just told someone doing one hard thing to do another at the same time, and that also has near certainty that they’ll hit some task which is easy in their default editor but non-trivial in whatever new one you recommended.

Re: Why is Common Lisp not the most popular programming language?

#260
post #205

Earlier quoted context omitted.

He was so often frustratingly right, too.

I particularly remember an extended rant that Lisp == Common Lisp, and Scheme is not Common Lisp, and therefore Scheme is not Lisp. I’m oversimplifying—Erik gave specific reasons—but that’s what it amounted to. Derailed an entire conversation, IIRC.

I think I remember that one, it was something about a Lisp being a Lisp-2 by definition. I shook my head in disagreement at the time, and still do.
Post reply on HN