Hacker News new | past | comments | ask | show | jobs | submit login

A note on Clojure: it’s a lisp but the language has some important differences from (all?) other lisps that are inherent to its design. The two key changes are immutability by default and the sequence abstraction[1], with syntax differences being a close third. Sequences in particular mean that some pretty fundamental lisp functions don’t operate the same way.

There are two ways to look at this. One is that they encourage better coding practices, the other is that they are restrictions that diminish the power of the language and make you jump through unnecessary hoops to get stuff done. Basically, “guard rails” vs “training wheels.”

I can’t say much more since Clojure is the only lisp I have played with (and I don’t see this changing, I quite like the language design). Code written in Clojure is not trivially portable to other lisps, and vice versa. I think there are differences in what you can do with macros too.

No value judgment here, I just think it’s important to know that these non-trivial differences exist when choosing which language to explore.

[1] https://clojure.org/reference/sequences




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: