Hacker News new | ask | show | jobs
by behnamoh 671 days ago
> Looking back, I think I was so into Lisp because I just wanted to feel superior and better than the dirty Java or Python programmers?

tbh, Paul Graham's articles on Lisp have done more harm than good to programmers. Calling Lisp a "secret weapon" that supercharges your startup and gives you immense competitive advantage is unrealistic and lacks concrete evidence.

1 comments

The problem is that those essays were written right after the 1990s when Common Lisp was much more ahead of other languages and when static typing hadn’t yet taken the form that is popular today. Back then, your alternatives were C/C++/Java/Pascal/Perl, and Python and Ruby were the novelties that were still much slower than CL and as I understand it had inferior tooling.

Since then, the landscape has changed.

I agree with this. But CL programmers seem to think Lisp is timeless and its best days are ahead of it still. I wonder if they're already awesome programmers and that's why they pick Lisp for maximum freedom (macros?). Most people aren't wizards, and can't (nor do they want to) invent small DSLs on the go.

With great power comes great responsibility, and most people don't want that responsibility.

I can assure you that most people are not considering Lisp and thinking, "huh, this is too much responsibility, so not for me."

Lisp has a higher barrier to entry compared to Python or Rust or other languages available. For that simple reason alone, it's not used. None of these imagined reasons about the theoretical power or anti-power of macros, or being a wizard, or whatever are part of the calculus of choosing a language.

Learning Lisp has a tricky part, and one of my classmates in undergrad despaired of ever learning it, but surely Rust is harder to learn than Lisp, which makes me wonder what you mean by "Lisp has a higher barrier to entry".
You have to first install a Lisp compiler whose REPL is so spartan than even using arrow keys causes errors in your terminal. You have to learn Emacs. Figure out wtf SLIME and Paredit are from docs written in piecemeal plaintext READMEs. Then learn from a book that's older than you that makes no reference to any of the tools you just labored over installing. Then get a bunch of conflicting information about proper Lisp style from random patches of internet.

Who has time for that these days, except for the very determined and dedicated?

I think Lisp is a superlative language with excellent tools—once learned. But it hasn't had its UI revolution from anybody who cares enough to do the work.

I've been writing Lisp for 40 years, and still haven't started using SLIME or Paredit.

And the reason it is called "style" is that it is not essential to actually getting things done.

IDK why you're being downvoted. The things you mentioned are actually true and I've faced them too.
Lisp early on exposes its dual nature of code and data. Even in interactive environments. This ever-present meta-level is unusual.
None of the assignments my classmate struggled with required him write code that processes code, so I don't think that was the source of his confusion.

My guess is that it has more to do with the fact that CONS takes a whole list as an argument, then returns a different whole list, which superficially seems too computationally expensive to do in a loop.