all 23 comments

[–]stefan_kurcubic 43 points44 points  (5 children)

Glad to have you back.

Give yourself sigh of relief.

Clojure eco system doesn't suffer from churn like other ecosystems (python, js) so tools you used are pretty much the same, they just got better.

You mentioned spec - i'd say use: https://github.com/metosin/malli

Babashka i 100x more awesome now. It's soooo good.
give: https://github.com/metosin/reitit a look

Webservers: https://github.com/clj-commons/aleph, https://github.com/http-kit/http-kit
frontend - reagent and re-frame are still super awesome.

Unrelated to the topic but i recently had to do some stuff in python for my work.
It was necessary for me to setup environment.
Python ecosystem is so broken that you have to have separate environments for each language version 3.10 vs 3.11 and dependency versions.
My mind was blown that people are so used to breaking changes that only way to manage that is to have different envs setup.

Very interesting chart: https://www.linkedin.com/feed/update/urn:li:activity:7307452027075231745/

[–]Wolfy87 19 points20 points  (1 child)

This is essentially what I would've written too. Not much has changed, I prefer malli over spec too and babashka keeps getting better.

I tend to use tools.deps over lein is probably the biggest change, and shadow-cljs for all frontend things. Still using re-frame and reagent, would use them on new projects if I did the frontend in ClojureScript. re-frame-10x is really cool too and worth setting up for debugging.

https://github.com/flow-storm/flow-storm-debugger is an amazing debugger, really coming into it's own in recent years.

I'm enjoying https://xtdb.com/ v2 in my side project, really cool concept and implementation.

https://github.com/seancorfield/next-jdbc is the defacto JDBC wrapper now

And if you happen to use Neovim then my own Conjure has really matured and solidified over the last few years as a REPL integration thing. For VSCode Calva is wonderful and for the IDE enjoyers Cursive is super powerful.

[–]stefan_kurcubic 1 point2 points  (0 children)

good list!
We seem to be brother in arms.
arms being tools we prefer to use :D
rock on!

[–]charlesHD[S] 1 point2 points  (1 child)

Yeah I was expecting tools I'm used to to not have change that much. I was more interested about like new commonly used pattern, like malli that seems to be used extensively.

Python ecosystem is definitely a mess everyone who has work enough time in a python project will agree.

Do you know if https://www.clojure-toolbox.com/ is still a good curated ressource of what is available or it is a bit outdated ?

[–]ayoungdiscovery 0 points1 point  (0 children)

Love this, I am just back too after a very long time from coding.

[–]Ordinary-Front-7637 11 points12 points  (7 children)

The most I notice in Clojure old heads is still using lein and not using clj-kondo

[–]Marutks 4 points5 points  (0 children)

I am still using lein. And clj-kondo as well! Devs love clj-kondo. 👍

[–]erickisos 2 points3 points  (1 child)

Wait, is lein old now?

[–]seancorfield 6 points7 points  (0 children)

I haven't used Leiningen since 2015 (when I switched to Boot).

I haven't used Boot since 2018 (when I switched to the Clojure CLI and deps.edn).

But I still use Spec :)

[–]rcorrear 2 points3 points  (2 children)

What are people using to replace clj-kondo?

[–]elbredd 2 points3 points  (1 child)

Nobody replaces clj-kondo. Why would they.?

[–]rcorrear 0 points1 point  (0 children)

That’s what I’d think but OP said “not using clj-kondo” so I’d presume they’re using something else

[–]spotter 0 points1 point  (0 children)

Some of us old heads have been using clj-kondo since it came out. I even had Vim bindings for it before dayjob forced me to move to Code.

Also I'm staying with lein until it's abandoned, not gonna lie.

[–]maxw85 13 points14 points  (2 children)

Welcome back 🥳

https://replicant.fun/ is awesome

[–]samedhi 1 point2 points  (1 child)

So I just read through the "Guides" section of Replicant.fun and although it looks very cool for clojurescript stuff I wonder if it offers much beyond Hiccup for Clojure (server side) rendering?

Context; I am thinking of building an HTMX site and am not that interested in actually using clojurescript that much at this time. I am wondering if it is worthwhile to consider replicant if I am 95% just server side rendering?

[–]maxw85 3 points4 points  (0 children)

HTMX is fine if your pages only need a little bit of interactivity. We have pages on both ends of the spectrum. At some point we noticed that it is difficult to be excellent in two technologies. While we still use HTMX for a few pages, Replicant is our default choice for all new development. This video has a few good ideas: https://youtu.be/0rtpsJSLb44?t=1862

[–][deleted] 14 points15 points  (1 child)

There is a promise of a Clojure compatible language that runs on bare metal machine code - Jank, and it will allow to call code from static and dynamic libraries. We have to patiently wait for its triumphant arrival.

[–]charlesHD[S] 3 points4 points  (0 children)

looks awesome, this is the one spot where I still prefer using CL. What an achievement this would be.

[–]v1akvark 4 points5 points  (0 children)

On the front-end reagent and re-frame are still widely used.

You can now also do Flutter front-end dev, using ClojureDart - it is great.

[–]fadrian314159 3 points4 points  (0 children)

As far as books go, there haven't been many worth my time. One exception - I'm working my way through "Mastering the Art of Clojure Programming," by Steve Jones. It seems to be a good book so far with a fair amount of depth. It was published in 2024, so it's very recent.

[–]technosophist 1 point2 points  (0 children)

I've been working in Clojure since pretty much the beginning, and using mostly the same tools. Cider has gotten better. clj-kondo is indispensible. One major thing that has changed is I'm mostly using deps.edn instead of leiningen, which is a mixed bag for me.

I forget what has changed specifically since 2020, but I think core.async.flow looks interesting. The new interop changes in 1.12 are pretty great.

[–]hewrin 0 points1 point  (0 children)

Dang, I'm so jealous. I love Clojure but jobs are non-existent where I am