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

I've been circling around lisp for a couple of years. I'm starting in a month, I'll spend several hours a day. I still don't know what language I want to learn.

I was drawn to Clojure because it looked like a lisp for getting stuff done. But a few things put me off. This article puts me off more. I want to get the semantics down before I have to think about what's going on under the hood.




Clojure's lazy sequences by default are wonderful ergonomically, but it provides many ways to use strict evaluation if you want to. They aren't really a hassle either. I've been doing Clojure for the last few years and have a few grievances, but overall it's the most coherent, well thought out language I've used and I can't recommend it enough.

There is the issue of startup time with the JVM, but you can also do AOT compilation now so that really isn't a problem. Here are some other cool projects to look at if you're interested:

Malli: https://github.com/metosin/malli

Babashka: https://github.com/babashka/babashka

Clerk: https://github.com/nextjournal/clerk


Despite its weak points, Clojure is still an excellent lisp for getting things done. For long running programs that live on the server, and especially for multithreaded/asynchronous workloads, I find it far better to work with than other lisps.


I'm sorry my article had such an effect on you. Despite the inconveniences, it is still a very worthy language to pick up.


"There are only two kinds of languages: the ones people complain about and the ones nobody uses"

Clojure is fun enough that people get to know all the edge cases. And put up with the stack traces.

If you do decide to try it, don't use deps.edn, go straight to Leiningen for build tooling. Even just for playing around in the REPL.


I wouldn’t let this article put you off. HN is often full of really negative takes like this that bear far less significance than they might suggest.

Clojure is a fantastic language, and probably the best lisp you could start out with due to the fact that you have the entire Java ecosystem at your fingertips.


I’m personally a fan of Clojure, in part due to how practical it is. Some of that practicality comes at the expense of simplicity, however.

I wonder if a Scheme dialect would be a better fit for you? They tend to be smaller and might let you focus on semantics more.

Full disclosure: I haven’t spent nearly as much time with any of the Scheme/Scheme-inspired dialects as I have with Clojure. I’m basing this off of their design philosophy and others’ observations.


> I've been circling around lisp for a couple of years. I'm starting in a month, I'll spend several hours a day.

Is this just a personal goal you’re setting? I’m curious because I’m in a similar position, so I’d love to hear your plan!


You won't start anything. I dare you. Haha. You can't learn Clojure and you know it.


I hope you find something better to do with your day than putting people down.


He's overanalyzing. I think it's best to choose one randomly, even with a coin toss and learn enough about it. Then later he'll know better what to choose next. I'm not trying to put down anyone. I'm trying to challenge the person to actually do something instead of doing analysis-paralysis.




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

Search: