Live data from Hacker News

Why is Common Lisp not the most popular programming language?

daninus14.github.io

61–70 of 339 posts

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

#61
post #51

C does what I say but not always what I mean. C++ is too complicated to even bother, and looks a completely different language every five years; I have yet to meet anyone that knows its syntax fully (C++ compilers included). Writing C/C++ means spending your time managing memory and then debugging memory management errors rather than thinking about the problem domain. Python is very slow and has horrible package mana…

> No version of Julia could even compile the example of the Julia book I bought, nor some of its own tutoials.

This was either many years ago, or is a skill issue. Post-1.0 Julia backwards compatibility isn't perfect, but it's held to a high standard. Being unable to run its own tutorials is not a thing that actually happens, and the language isn't responsible for bugs in whatever book you were referring to.

If this was pre-1.0, sure, that's what a version starting with 0 means. But after? Skill issue.

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

#62
post #22

Because most programming is done by people trying to do a job and it requires broad tooling support and familiarity, LISP is a language that has neither. LISP, (similarly to Haskell) requires you to bend your mind and pay an upfront mental cost in order to access it's benefits, which are that everything is equally easy to describe. No construct in LISP feels like it requires you to bend the language in an awful way b…

I didn't find Lisp to be particularly costly in terms of mental energy to become competent in. Rust, however, was a heavy lift. Perhaps different people are inherently more or less compatible with different languages?

I feel like Rust is easy; it's just responsible, 21st century C code with more data structures in the standard library.

Functional languages are like being forced to fry an egg while on LSD. Eventually, you get the hang of it, and you start seeing Spinoza's God in the form constants, but holy shit was it difficult! It's a totally disorienting and mind-bending challenge of re-learning how to do the most basic things!

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

#63
I tried before because I read a lot of praise about it. But it seemed to me that there's not much of a standard library or included batteries (at the time, I was looking for something that can open image files or compute FFTs). Perhaps the problems I wanted to solve just weren't a good fit.

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

#64
post #25

Earlier quoted context omitted.

I disagree. I have no problem with lists obsession in other languages like OCaml. The parentheses are just too much. I get how elegant and unambiguous they are for computers but I am not a computer. It's like RPN. It's elegant and easy for code to parse and unambiguous and all these nice things.... except it isn't easy for me to parse. Compilers are perfectly capable of compiling readable code like Rust so I don't se…

> It's like RPN That's genuinely fascinating for me, because I find postfix notation to be more intuitive and easy to parse than infix notation.

For simple stuff, sure. Try -b±√(b²-4ac))/2a. Or anything complicated really. You end up counting parenthesis, writing down intermediate values, and just blowing it and starting over.

It's really nice to have something complicated, being able to sanity check intermediate values, and having a visible stack made things crazy easier.

I had friends in high school, for anything non trivial they would call out "anyone get 123.5 for the answer?". Look at me, and if they didn't get my answer they would try again.

So sure, postfix is easier for the simple stuff (which is easy either way), but postfix is MUCH easier for anything non-trivial.

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

#66
post #24

The same reason as why Esperanto is not the most popular spoken language. It's historical reasons and network effects.

No, it's difficult to read and understand. It's a parenthesis circus. For example - https://github.com/dimitri/pgloader/blob/master/src/pgsql/pg...

I clicked thinking I was going to see some gnarly Lisp code. It's out there!

This, on the other hand, is perfectly legible if you know the language. I'd say it's even perfectly legible if you don't, but how would I know?

There are a couple good examples in there of what I said in another comment, about how, quite aside from getting the hang of reading and writing sexprs, one also has to learn a rather more foreign discipline of building up linked lists in the idiomatic way. Which is a greater barrier than learning to read `(and foo bar)` as `foo && bar`. That part really doesn't take long.

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

#67

Earlier quoted context omitted.

I love programming in blah. It has made programming fun again. I don't know if that makes me a blah person. I just know it makes programming fun for me.

This sort of conduct isn't welcome here.

What kind of conduct do you mean? can you explain? Or are you just mentioning random feelings like the comment I replied to with feelings of my own

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

#68
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'm trying to understand why lists matter. Yes, there are some oddities where some base constructs don't play as well with hashmaps as they do with lists, but it is far from difficult to work with a hashmap. Or an array. What difficulty are you talking about, specifically? (Genuine question.)

Biggest difference I know of, off the top of my head, is the LOOP macro having constructs that care which one you have. Curious if there is more.

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

#69

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…

I love Python's list comprehensions. When I first discovered them I had a kind of "mind blown" moment. They look like this, for anyone who doesn't know: squared_div_by_3 = [i**2 for i in range(10) if i % 3 == 0] Without using a list comprehension, this is equivalent to: squared_div_by_3 = [] for i in range(10): if i % 3 == 0: squared_div_by_3.append(i**2)

Of course, Python would have been way more awesome if they did not reject the much more reader-friendly and idiomatic:

  squared_div_by_3 = [
      for i in range(10):
          if i % 3 == 0:
              i**2
  ]
That is, just transforming the normal for loop and if into a list comprehension by surrounding it with brackets. It would even preserve the friendly forced blocking and indentation. Can you imagine?

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

#70
post #50

Earlier quoted context omitted.

Rust requires people to learn how to adapt to Rust’s borrow checker, which can be challenging for programmers coming from other languages, yet this hasn’t stopped Rust’s rapid adoption in systems programming. In fact, Rust’s safety features are Rust’s selling point. Of course, it helps that Rust came from Mozilla and that it’s used in Firefox. Other than Grammarly and some internal Google products, I don’t know any m…

I'm not sure if Rust is a good comparison though. Rust is a lot closer to C, it is a language influenced by C, and current popular programming languages tend to also be influenced by C. So while there is a lot different with Rust, a lot of knowledge from, lets say, a C developer can carry over. Say your a C developer, or C++ developer and I am a Rust developer trying to sell you on Rust. You have to learn a new langu…

I'd argue Lisps are worse today. They encourage a thing that's generally discouraged in C: macro programming and typedefs. You're coding in Lisp, but you're actually coding in your own dialect of Lisp, eventually, with lots of idiosyncratic code that's difficult to reason about. That doesn't scale well in collaborative environments, where many people are touching a vast codebase (which I don't think was really a thing back in the '70s).

That's when you want the uniformity and clarity of static type declarations and C++'s header functions. With Rust, you're just adding modernity and safety on top of that. Great! Lisp is crazy lone wizard shit.

Post reply on HN