by nefreat on 12/19/22, 2:16 PM with 63 comments
by twawaaay on 12/19/22, 5:25 PM
My theory is that this is result of no guardrails on how to structure your application. Clojure to be productive must be used by people who absolutely know what they are doing when it comes to structuring your app.
When it comes to Java you get hordes of devs still producing passable results. The structure is largely imposed by the frameworks (mostly by Spring/Spring Boot) and available help, literature. Even some antipatterns at the very least achieve some level of convention/predictability that is needed to be able to find your bearing around the codebase.
I would say, if you have a normal-ish project, care about productivity but don't have really stellar and mature developers -- skip Clojure.
Choose Clojure if you know how to use all that additional power, have need for it and understand what your added responsibilities are.
If you don't know how to wield Clojure's power there is very little you can gain by choosing it but a lot to loose.
by TacticalCoder on 12/19/22, 2:41 PM
by rmuslimov on 12/19/22, 8:54 PM
Thanks for sharing!
by dig1 on 12/19/22, 4:33 PM
Also, I saw numerous cases where people will copy/paste multimethod arguments without knowing what they are used for.
I still find case/cond more readable and way more performant, especially since the author uses the same type for a multimethod dispatch, but YMMV.
by haolez on 12/19/22, 4:09 PM
But Clojure does look amazing :)
by dwohnitmok on 12/19/22, 3:27 PM
by logistark on 12/19/22, 4:05 PM
For testing purposes is easier to redef a function than implementing a full new test protocol.
by nkh on 12/19/22, 5:44 PM
by the-alchemist on 12/20/22, 8:25 PM
I'm wondering, though, doesn't the same apply to Ruby, Python, and Node projects?
I've over-hauled 80k line Python projects, and the "lack of typing" there seemed to apply as well.
Why don't Ruby, Python, and Node projects suffer from the same critique? Genuinely curious...
by shaunparker on 12/19/22, 10:30 PM
by beders on 12/19/22, 6:17 PM
Model state where it belongs: in a database.