Hacker News new | ask | show | jobs
by solaxun 1213 days ago
Not sure on relative popularity. If you haven't already, you should try it! Here's why I like it:

  - Very consistent, easy to keep the whole language in your head
  - Stable, core rarely changes ("accretive only" mindset).
  - REPL
  - Focus on a handful of data structures which will solve 95% of the problems you face, rather than a deluge of complicated abstractions.
  - Excellent concurrency primitives
  - Access to Java libraries if a Clojure equivalent doesn't exist
  - Macros
The only blemish for me was horrifically bad error messages.. other than that it's near perfect.
2 comments

Very accurate ! and x1000 about the error message !
>easy to keep the whole language in your head

Is that not all programming languages. Practically have identical syntax for the problem they are solving. The thing which differs is “standard” libraries, which is not part of the language but a side effect of.

Python:

- functions

- classes

- list comprehensions

- generators

- inheritance

- operators

- string interpolation (a handful of syntaxes)

- module system hard to wrap your head around

- async (I think async is a workaround for getting more done with one thread because of the GIL). Pointless on machines with increasing number of cores. Just get multithreading right (and I want to learn Clojure's model - focusing on immutability) and you will not need async. Python can barely share memory across threads. I'm not sure you can get by without serialization.

- dozens of built-in functions/reserved words
My head didn't have enough space to keep C++ in it. Clojure is on the different end of the spectrum
My last job was mostly C++, my current job is mostly Clojure but I still do a lot of C++ stuff on the side as it is appropriate for some of my side projects.

Clojure is so much nicer to work with and this really resonates with me; I'm always still having to check language docs for C++ stuff but only very rarely for Clojure. Being able to keep almost all of it in my head is a huge benefit as I don't have to break my "flow" nearly as much.

Python, Java, JavaScript, R are all insanely complicated compared to clojure.