Hacker News new | ask | show | jobs
by janetacarr 1537 days ago
This is cool, but, aside from error messages, it resembles Clojure's biggest problem right now: Everyone keeps trying to re-invent the wheel with respect to creating the "Rails" for Clojure.

We have several production grade libraries and frameworks for serving webpages. Reitit(router), yada(http standards), bidi(router), aleph (netty wrapper), ring (jetty wrapper), pedestal (bundle of libraries), luminus (self described micro-framework), the list goes on, yet Clojure's biggest pain point is the lack of other production grade libraries for other/mundane things.

If the libraries do exist, they can barely cut a stable release (like 2.0.0-alpha24) or keep up with changes to prevent software rot.

2 comments

Looks like this is mostly Ring + Hiccup (<https://github.com/coast-framework/coast/blob/master/deps.ed...>) with a DB connection pool.
Hmm. Can you give some examples of those missing libraries? I've been developing and running a large SaaS for the last several years and never found lack of libraries to be a problem.
Well, the biggest glaring thing is Clojure.spec. It's quite literally still in alpha (clojure.spec.alpha), and is a core part of Clojure, but everyone uses it in production anyways. (I might be biased here, I have opinions on whether or not clojure.spec should even be part of Clojure)

For example, things like clj-stripe, Matchbox(firebase lib) Onyx(MapReduce lib), and Cortex(ML lib) are all out of date.

One thing I see a lot from companies using Clojure(script) is they fork open source projects, extend them for their needs, and never contribute back.

Clojurescript libraries in particular are extremely bad for this. For example, re-frame-firebase has suffered some serious bit rot lately, the core repo uses firebase sdk 5.7, and hasn't ever really been used in a production setting!

Anyways, not trying to call out these library maintainers because I do understand maintaining libraries is time consuming. I'm trying to call out companies taking from the community and not giving back.

Hmm, interesting. As for spec, I use it in production, despite its shortcomings. And I think some of the shortcomings require very careful thinking and design, so I guess I'm fine with the authors taking their time.

The libraries you mentioned are something I never needed, but I understand what you mean now.