4 ms·
Clojure is not dead, the core language is still very strong, but the dev experience has been degrading IME. This is due to a lack of heavy corporate backing an
by pyb 4y ago
Clojure is not dead, the core language is still very strong, but the dev experience has been degrading IME. This is due to a lack of heavy corporate backing and investment, probably by choice. Taking a PL to the mainstream is very expensive.
You cannot compare Clojure and Rust in any way as they're completely different design philosophies.
- dudul 4y ago> You cannot compare Clojure and Rust in any way as they're completely different design philosophies. That's actually why it is interesting to compare them. Comparing things that are the same would quickly become very boring.
- pyb 4y agoWhat I mean is that you can only maybe compare them in a vacuum. For a concrete given task, "is Clojure or Rust better" rarely comes up because there is little overlap in application domains. For instance, one domain where Clojure shines is for complex web apps, as your frontend and backend are in the same language, and can be tightly integrated. I believe dustingetz is working on taking this to the next level.
- tsm 4y agoDo you have examples of the dev experience degrading? My experiences is that the tools and libraries only continue to mature (as does the Clojure language itself). Do you just mean that things are improving less quickly than they are for, e.g., Typescript?
- pyb 4y agoI mean compared to a few years ago. I tried setting up a new project after 1 or 2 years away from the ecosystem, and struggled a lot : all existing templates to set up new projects (esp. with CLJ/CLJS combined) had bitrotten and were not usable out of the box ; emacs integration no longer working out of the box, etc. I think it's a "death by a 1000 cuts"/"broken windows" that is may be happening when the ecosystem lacks funding to take care of the boring maintenancey stuff. If I remember well, this is a conscious choice by Rich Hickey, a choice that one should respect, but will prevent Clojure from ever getting to the next level IMO.
- weavejester 4y agoI've very recently changed my system from MacOS to Linux, so I've been reibuilding my Clojure environment from scratch. I've found the exact opposite in terms of maturity; Emacs support in particular is far more complete and usable out of the box than it ever was. I installed Spacemacs fresh, loaded up a Clojure file, and not only did I get automatically get CIDER, but I also got LSP support via clj-kondo and a bunch of other extras. I was genuinely impressed at how mature the tooling was, and how trivial it was to install.
- pyb 4y agoHi ! I am ever so grateful for all the work you've put in over all these years, to get the Clojure ecosystem where it is today. What I am kinda saying is that Clojure would be in a better place if it was paying people like you a lot more!
- weavejester 4y agoThank you, I'm glad some of the work I've done could be useful.
- perrygeo 4y agoSimilar experience here. My first Clojure(script) projects used leiningen, now everything is deps.edn and the clojure CLI. Cool, changes happen. But editor integration, REPL tooling, even which compiler to use, etc are not consistent either. The tooling is changing everywhere and bit rot has claimed almost all of my past projects. The code is still 100% compatible but the build system is just broken. I've given up trying to port any projects over - it's easier to generate scaffolding for a new project in the tool-du-jour and move the actual code into that structure. Since there is no obvious right way, there's little consistency between projects - which means you're likely to follow the wrong path if you follow the wrong README or pick an outdated starter template. This forces developers to make a ton of orthogonal choices up front before they even begin coding. Case in point: https://clojurescript.org/tools/tools https://clojurescript.org/tools/tools lists 4 different build tools without any explanation as to how they relate or why you might pick one over the other. But don't worry, you'll find out after days of tedious research! If Clojure had a consistent out-of-the-box experience like Go or Rust, I think it could rule the world. It's a great language but the developer experience is a serious impediment to that.
- jhbadger 4y agoI like Clojure the language but what I found frustrating was that even more than in other ecosystems a package would get momentum, become popular, and then mysteriously die suddenly without any real replacement. A classic example was the statistics package Incanter -- it had the potential to become a new version of Xlispstat for the 21st century and then it just died.
- synthc 4y agoYeah it is too bad Incanter stalled, it could have been an great alternative to Python's data science stack (pandas/numpy/matplotlib) if it had gotten traction at the right time. It lacks some polish and has some wierd conventions relative to modern Clojure, but I still use it occasionally.