Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yes. You should consider core Clojure (including everything covered in this article) as a proof of concept that will never be revisited.


Wow. That will come as quite a surprise to the dozens of Fortune 50 companies out there using it as part of their core systems, let alone all the smaller companies and startups.

Source: Worked as a consultant almost exclusively in Clojure for the past 10 years.


I read that message to mean clojure/core.[library] and not clojure.core. It's a criticism of the slower development pace and low visibility that libraries like match, logic, combinatorics, test.check, data.zip, rrb-vector, cache, etc. have.

The author can clarify but if that's the critique its not without at least some merit.


Yes, this is part of it (although I do include things like core.async, reducers/transducers etc in that). A lot of Clojure feels like a bunch of thesis projects tacked together and abandoned. Most of it was quite innovative and cool at the time, but it's not being iterated or elaborated on. That's nobody's problem, really, I just happen to find it frustrating.

I'd almost be encouraged by the rework going into spec if it wasn't happening at such a glacial pace.


I, too, have used Clojure as my primary language across three startups and 10 years, and despite my great affection for the language and community, I have told no lies here.


Clojure is far from perfect. But a lot of people are using it and will continue to use it effectively.

It sounds like you're just salty for some reason. I'm sorry you had a bad experience, but that has no bearing on the usefulness of the language.


I don't want to speak for the original author here, but I believe he's basically saying that Clojure has a bit of a tradition of "change no behavior!". Rich Hickey has said as much in one of his talks [1], and while I think Rich Hickey is objectively smarter than me, I don't actually agree with him on this point.

The difference between Clojure and nearly any other language, however, is that you don't need the core library; you can add any language feature you want due to the awesome macro system in Lisps. Even if they deleted the core library tomorrow, we could still build in literally any language construct we want as a library.

This is why Lisp is made of magic :)


But any language with any sort of traction has a bit of a tradition of changing no behavior, so Clojure isn't special here. So I'm not sure what exactly you disagree with here. It makes me think I don't quite understand what you actually intend to communicate.


Back up, keep in mind that I'm not the same person as before, I don't disagree with you.

I think Clojure's built-in library is great, and more than production-ready. Not entirely sure what the parent was talking about.


No, this wasn't my point. I don't lament them not making breaking changes, obviously. My point was that most of the work the core team does is on projects that they will never revisit in the future. The one exception to this is spec, which drags on. Once it's out of alpha I expect them never to touch it again.

If you believe everything in core is perfect and fully formed, and that all other needs are served by libraries that are actively maintained, that's great. Not my experience by a long shot, but I'm happy to be grumpy in a world full of happy Clojure programmers.


Nothing I said has anything to do with the usefulness of the language - I work with it every day and have for a decade, and I hope that I'm not completely crazy. I was just stating that anything that appears in core basically gets to 1.0ish and is never touched again. This seems demonstrably true to me, and not even necessarily a bad thing, but perhaps others disagree.




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

Search: