as someone who hasn't used clj-new and deps-new yet, may I ask what is the main reason clojurians are switching from lein to deps-new?
deps-new is arguably simpler to write templates for, especially if you have no experience of writing them previously. I found it pretty easy to convert my production projects into https://github.com/practicalli/project-templates
clj-new allows you to use more templates, although most of them create a Leiningen configured project (although its not a huge amount of work to add a deps.edn file and the relevant dependencies (with a good editor 🙂 )
For a bit of history: back in the day, lein did not have a "new" command to create projects. It was written as a plug-in, became popular and got folded into lein. When boot appeared (2015? Maybe a bit earlier), it also didn't have a "new" command. We adopted boot at work and I made boot-new from lein-new. It was always an extension to boot. When the official Clojure CLI appeared (2018), I made clj-new from boot-new. At this point, it handled lein templates, boot templates, and "clj" templates - all very similar. Once tools.build appeared, I felt it offered a simpler option for templates and I wrote deps-new. However, your question seems strange to say people are "switching from lein to deps-new". Did you mean switching from lein to the CLI tools? I.e., from project.clj to deps.edn? #tools-deps is the channel for the CLI, deps.edn, and the underlying tools.deps library. Leiningen was the only game in town for years. Then came Boot but it never became as popular (and has mostly faded away). Both lein and boot lost their maintainers - their original authors. Then the core team released the CLI tooling they had built to support Datomic, and that's where all the innovation and community activity is these days. In the most recent State of Clojure survey (2023), usage of lein dropped below usage of the CLI for the first time, and that's likely to continue. Does that help answer your question @stan142?
a little bit. what i meant was indeed the moving away from lein towards clj + deps-new for the creation of projects and templates. my main take from this is that lein was forked early on due to lacking 'new'. then lein added new but this wasn't enough. eventually lein got abandoned so new stuff is happening on clj exclusively.
No, Leiningen is still maintained (by different people) and is still fairly widely used. Leiningen was never forked.
This talks about the history and differences between the tools: https://clojure-doc.org/articles/tutorials/getting_started/
As of the last survey, Leiningen is still used by just over 60% of respondents. The Clojure CLI is used by over 70% and growing. (it's a multiple choice question) https://www.surveymonkey.com/stories/SM-f2XkbSKiS_2BDdJShL141pOQ_3D_3D/
lein-new was written pretty early on and directly incorporated into Leiningen. No forking.
Boot was a completely new tool that took a completely different approach. Leiningen was declarative (`project.clj` and plug-ins), Boot was completely programmatic.
The Clojure CLI is a completely new tool that sails a middle path: a purely declarative deps.edn file and a library that folks can use to build additional tooling.
The official recommended approach to creating new projects for the CLI is to manually create your deps.edn and your src folder. Tools like clj-new (forked from boot-new which was forked from lein-new) and deps-new are conveniences I created that use the contrib libraries tools.deps and tools.build (that the core team wrote). I don't think either of those tools are widely used.
I see, thanks.