4 ms·
Similar experience here. My first Clojure(script) projects used leiningen, now everything is deps.edn and the clojure CLI. Cool, changes happen. But editor inte
by perrygeo 4y ago
Similar 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.
- didibus 4y agoYa, I think everyone is aware that the beginner ramp-up experience isn't great, but no one knows what to do about it. There's a bit of a chicken and egg, because once you know, you know, and the problem disappears, but that doesn't help the next beginner have an easier time.
- pyb 4y agoExactly my experience !
- 147 4y agoI recently revisited a repository I was working on and almost gave up (on using Clojure) trying to switch from lein to deps.edn. Granted I didn't have to switch to deps.edn, but it felt like it was going to be the way forward.
- seancorfield 4y agoPerhaps this is due to how much effort folks want to invest in hobby projects? (that's a broad question aimed at several folks here) At work, we have a codebase of over 142K lines of Clojure, some of which dates back over a decade. We started with Leiningen (because it was the only game in town). We migrated to Boot in 2015 because we needed easier customization of our dev/test/build pipeline and Boot's "tasks" were a more natural fit. We migrated to Clojure CLI / deps.edn in 2018 because we were running into limitations with Boot as our repository grew and our needs for dev/test/build became more complex. Each migration took about a week of one person's time. Over that same period of time, I've probably switched my editor setup a dozen times, going back and forth between Emacs and several other editors/IDEs. I've been on VS Code/Calva for quite a while now -- with LSP/clj-kondo built-in, it's a really solid experience.
- perrygeo 4y agoThat's accurate I think. Hobbies are about building something to scratch an itch - and my itch has absolutely nothing to do with configuring editors and build tooling. If I was working on a paid Clojure project, I'd just put in the time.