Live data from Hacker News

The Liberating Experience of Common Lisp

ds9soft.com

1–10 of 126 posts

Re: The Liberating Experience of Common Lisp

#2
I can relate. I read Graham's book on Common Lisp more than 20 years ago and was entranced.

But opportunities to use it in the day job are few and far between, and I would have qualms about recommending it, in most contexts. For a lot of purposes, its libraries are just nowhere near as good as Python or JavaScript or Java. And some of its superpowers (macros!) can also be used really, really badly.

There was an essay about Lisp being a "language for smart people" that captured some of what would give me pause. On average, most shops have average people (for that occupation/industry). Not sure Lisp is the best solution for that context.

Re: The Liberating Experience of Common Lisp

#3
I do web dev now, but it reminded me of good times coding in Julia.

Like I once wanted to have my own syntax for querying a SQLite, so built my own ORM. The query syntax is defined in like 50 lines of code. Doc for it here [1]

1. https://asjir.github.io/FunnyORM.jl/dev/#FunnyORM.TableQuery

Re: The Liberating Experience of Common Lisp

#4
Lisp really is an eye-opening experience when learning to structure programs and computations. Stumbling on Lisp in college was a fascinating experience for me in particular because I had been raised around C++ and Java, and my programming life up to that point had been a struggle understanding how to abstract a program into objects and how to build those objects' interfaces.

Once I started down the path of functional programming and Clojure, it became clear in retrospect that "objects" as C++ and Java envisioned them were poor fits for most problem domains, which is why their purpose never clicked in my head. Reducing data down to...well, data, and methods down to functions, and programs down to pyramids of expression calls made everything about program structure click in my head. Functional, expression-based style was FAR more intuitive to my brain than stateful object style. I now try to lean heavily into expressions and referential transparency no matter what language I use, though some languages make it easier than others.

Funnily enough, C program structure came much more naturally to me than either C++ or Java. Maybe because it's easy to decouple data from operations on that data, even if stateful. Hard to say.

Re: The Liberating Experience of Common Lisp

#5
post #2

I can relate. I read Graham's book on Common Lisp more than 20 years ago and was entranced. But opportunities to use it in the day job are few and far between, and I would have qualms about recommending it, in most contexts. For a lot of purposes, its libraries are just nowhere near as good as Python or JavaScript or Java. And some of its superpowers (macros!) can also be used really, really badly. There was an essay…

You don't need to be too smart to use it effectively.

Re: The Liberating Experience of Common Lisp

#6
One minor point mentioned: I find it odd how many great PL designers I’ve known are hostile to learnings from other languages. Maybe because they field a ton of naive “why can’t A do what B does”. But languages are similar in many respects, and there are a great many lessons to share across.

Re: The Liberating Experience of Common Lisp

#7
Two books, for beginners and experts:

- A Gentle Introduction to Symbolic Computation. Get both the book and the figures.

https://www.cs.cmu.edu/~dst/LispBook/

Paradigms of Artificial Intelligence Programming

https://github.com/norvig/paip-lisp

https://unglueit-files.s3.amazonaws.com/ebf/59f74a93bbc1435c...

Get SBCL as the compiler/interpreter, it's the fastest FLOSS one.

Portacle has everything to begin with minus the books.

https://portacle.github.io/

Re: The Liberating Experience of Common Lisp

#8

Lisp really is an eye-opening experience when learning to structure programs and computations. Stumbling on Lisp in college was a fascinating experience for me in particular because I had been raised around C++ and Java, and my programming life up to that point had been a struggle understanding how to abstract a program into objects and how to build those objects' interfaces. Once I started down the path of functiona…

> Maybe because it's easy to decouple data from operations on that data, even if stateful

You can use objects in C++ and Java without mixing code and data (by having data-only and code-only classes for example).

I haven't fully read it, but there's a book from a clojure developer about about this: https://www.manning.com/books/data-oriented-programming

The book itself uses Java, not Clojure.

Re: The Liberating Experience of Common Lisp

#9
post #2

I can relate. I read Graham's book on Common Lisp more than 20 years ago and was entranced. But opportunities to use it in the day job are few and far between, and I would have qualms about recommending it, in most contexts. For a lot of purposes, its libraries are just nowhere near as good as Python or JavaScript or Java. And some of its superpowers (macros!) can also be used really, really badly. There was an essay…

> There was an essay about Lisp being a "language for smart people"

Presumably, you are referring to The Bipolar Lisp Programmer[1], an HN classic[2].

[1] https://www.marktarver.com/bipolar.html

[2] https://hn.algolia.com/?q=bipolar+lisp+programmer

Post reply on HN