Live data from Hacker News

Why is Common Lisp not the most popular programming language?

daninus14.github.io

271–280 of 339 posts

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

#271
post #75

Earlier quoted context omitted.

It's definitely easier to parse programatically, but IMO it's a nightmare to read as a human. e.g. compare these expressions: (x+y)^2 = x^2 + 2xy + y^2 x y + 2 ^ = x 2 ^ 2 x y * * y 2 ^ + + I find it nearly impossible to parse this without actually maintaining the stack in my mind.

It's exactly how you would do the calculation if you ran it by hand, unlike the regular algebraic notation. I am flabbergasted that anyone uses the latter, especially as for most of the history of mathematics calculation was done by hand!

Many languages have different verb order - English is notionally SVO (subject-verb-object), while Hindi is SOV.

That is probably much more related to why we use prefix/infix/postfix notation: because it maps to our native languages better.

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

#272

Popularity is a matter of luck. But suppose that the forces that drive luck somehow aligned themselves with promoting Lisp. There are ways Lisp would sabotage the luck being radiated upon it. Programmers who get into CL will hit various silly obstacles: - No standard way to express special characters in string literals. - No standard Unicode support; no \u1234 notation in the standard. I/O with character encodings is…

Re: “”Ironically poor REPL experience in the free implementations, given that Lisp gave us that word.”” I just always wrap SBCL, etc. in rlwrap when started on the command line, in fact I alias SBCL to rlwrap . When I start SBCL in Slime, I use the full path in my .emacs file. Easy problem to fix.

GNU/Unix command line tool mitigates Lisp problem, in other words.

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

#273

Earlier quoted context omitted.

This is so often mentioned, it must be true. Or is it? To put numbers on it, I counted the occurrences of brackets, braces and parenthesis in Frank Busse's Arabesque cellular automata (just a small program for which I had the C version and a Common Lisp translation, which I happened to have looked at recently for no good reason). The C version had 86 of those characters, while the Common Lisp version 196. Yeah, more…

It makes it very hard to, at a glance, parse what is happening.

I do recall difficulties with this in the beginning (the first few years in my case ;-} And I still find old LISP code (the one where symbols were still capitalized) hard to parse. With modern (say, since the 90s or so), well written style where the depth of the expression is indicated by the indentation, I trust that the editor indented correctly, which allows me to forget about the parentheses. I wouldn't attempt to find a syntax error in a CL program w/o an editor supporting the language.

Above might be interpreted as a case for a language with semantic whitespace and w/o excessive parentheses, e.g. like Python, but there I find it all to easy to introduce subtle bugs during refactoring.

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

#274

The vast majority of people who want to create something that executes on a computer are not inclined to write in a language that more closely resembles parse trees than it does human language. To many, Lisp is nearly as inscrutable as an intentionally esoteric language.

It is kind of tricky to read and probably a bit part of Python's success is down to it being maybe the easiest to read, especially for people who are not very techy as it reads kind of like English.

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

#275
post #75

Earlier quoted context omitted.

It's definitely easier to parse programatically, but IMO it's a nightmare to read as a human. e.g. compare these expressions: (x+y)^2 = x^2 + 2xy + y^2 x y + 2 ^ = x 2 ^ 2 x y * * y 2 ^ + + I find it nearly impossible to parse this without actually maintaining the stack in my mind.

It's exactly how you would do the calculation if you ran it by hand, unlike the regular algebraic notation. I am flabbergasted that anyone uses the latter, especially as for most of the history of mathematics calculation was done by hand!

[deleted]

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

#276

Earlier quoted context omitted.

> Also: a maintenance nightmare as soon as you have more than ~1 person working on the codebase! Lisp isn't any harder to maintain than any other language. The Lisp codebases I've worked on, even professionally, were originally written by talented, experienced engineers and were in fact wonderful to maintain. > Now imagine something like Lisp where every developer & team morphs it in a different way and you have a pr…

> I think you might be on to something. Symbolics was very much in danger of making large software projects possible by one person or a small team of people. It seems as if the corporate world has responded to the proliferation of more powerful software development tools -- not only in Lisp, but certainly Lisp and Smalltalk had an outsized influence -- by lowering the skill ceiling to make devs more fungible, and cre…

Lisp's primordial sin is the fact that it is FP. US cooperations never supported FP (see Microsoft and F#). FP is largely a European phenomenon.

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

#277
It's the learnability of the language. Remember BASIC? You could show someone a FOR ... NEXT loop and they would completely understand. After a couple more 10 line programs and you can safely hand over the keyboard and handle the "how do I?" questions

You had to show very little before they understood. Now try Lisp ...

M: This is a list

S: What can I do with it?

M: By itself nothing but trust me it is important. This is how we take the head of a list

S: Cool, why would I want to do that?

M: We'll get to that later. This is how you take the tail of a list

S: ...

M: This is how to append to a list

S: Is this going anywhere?

The number of things you are shown but do not understand keeps piling up before they are supposedly going to magically work together to do something underwhelming (when BASIC did very little it took very little to do it). Add to that the function names were either cryptic, "cddar" anyone - "EQ" and "EQUAL", or insanely long

You have too much to learn before you can make sense of anything. Least that was how Lisp was taught to me in the 80s :)

I self taught Forth and Prolog because with both once you learn something you can do something

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

#278
post #186

Earlier quoted context omitted.

SBCL is a Common Lisp implementation with: * a runtime in-memory native code compiler (-> COMPILE) * a file native code compiler (-> COMPILE-FILE) * and a runtime native code loader (-> LOAD) Apple forbids providing compiled languages on (I'm talking about "ON THE DEVICE") iOS. Good luck getting those onto iOS. Their own Javascript runtime JIT is allowed, others are not. Common Lisp runtime native compilers are not.…

> Good luck getting those onto iOS. That's what I said, yes. Although as long as you're not distributing the code these restrictions don't apply. Depending on what you're doing that's either a technicality or that's how you intend to proceed, there's a reasonable amount of iOS code out there which pays no attention to Apple's rules whatsoever, and which you can't download binaries from the App Store of.

[deleted]

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

#279
post #265

Earlier quoted context omitted.

Now you are rewriting history :) Turbo Pascal was responsible for the Pascal success. And then came delphi along and somehow lost against Visual Basic.

Early Mac Systems were written in pascal, well, Clascal as they called their Object Pascal system in those days, Clascal was developed internally at Apple with Wirth as a consultant. Think Pascal was the primary alternative to MPW until mid System 6 era. MacApp remained Apple's primary API until the mid 90s, and it was 100% written in Object Pascal (formerly Clascal). Some chunks of Windows were also written in Pasca…

They were not. The early Mac operating system and Toolbox were written in assembly, with a Pascal API. MacApp was ported to C++ in the late 1980s and went C++ only in the very early 1990s, about 1991-2 with MacApp 3.

MacApp was the framework Apple wrote and promoted, but it wasn’t the primary API; lots of developers wrote directly for the Mac Toolbox or used any of a number of other frameworks like THINK Class Library.

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

#280

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.

I've felt my way around a new problem domains many times, and my experience is that a vector and a map will do just fine.
Post reply on HN