3 ms·
Most of Cognitect's projects use either Maven or tools.deps, though. I don't think I've see any of them use Leiningen, but perhaps you can show an example? Any
by stingraycharles 7y ago
Most of Cognitect's projects use either Maven or tools.deps, though. I don't think I've see any of them use Leiningen, but perhaps you can show an example?
Anyway, I'm mostly concerned by the fragmentation of it all. It doesn't help that there are now three (or four if you include maven) package / build tools for Clojure. The community is barely large enough to support a single one.
- devin 7y agoFor the most part I’m not sure it matters. What specific problems have you had as a result of fragmentation in clojure project build tools? I don’t much care what the name of the command is: if running it produces an artifact I can depend on and use in my app, then it did the job. Different types of build pipelines have different needs.
- stingraycharles 7y agoFor me personally it’s not a problem, but build tooling is a frequent obstacle for newcomers to the language. Fragmentation is the opposite of what we want here.
- dragandj 7y agoDoes it matter when all these tools are compatible (on the level of artifacts and distribution repository)?
- stingraycharles 7y agoFor the experienced user, it doesn't matter. But for the newcomer, it's one more additional choice to make, and, as the grandparent said, is in sharp contrast to a "batteries included" approach you see in Python. Given that build tooling is one of the more frequent complaints, more fragmentation in this area is undesired.
- dragandj 7y agoIt's funny that you mentioned Python :) https://wiki.python.org/moin/ConfigurationAndBuildTools https://wiki.python.org/moin/ConfigurationAndBuildTools
- stingraycharles 7y agoAre you saying that just because there is a choice of configuration build tools and utilities for Python, the argument that there is a standard way of doing things is invalid? If I want to start a Python project, I `pip install -r requirements.txt` and I can start using it. In Clojure, I need to choose which tool I want to use to perform this simple task, in Python this is standardized. Leiningen, Boot, tools.deps and Maven are all candidates to do this.
- dragandj 7y agoThere is such de-facto standard in Clojure too. just do `lein`. + even if you choose another build tool, it is: 1) compatible 2) if you're a newcomer, you probably only need a few dependencies, which is configured in the same way as lein's `project.clj` I mean, I agree that there definitely is a need for better guides for Clojure and defaults, but I don't think that is the reason Clojure is not more popular, and that Python is simpler there. If I encounter Python for the first time, I definitely won't know that I just "pip whatever". I actually think that Clojure is very popular, given that there is no big Co that pushes it, and that it still doesn't have a widely known killer app. Most other popular(ish) languages are mainly popular due to huge push by a single big corporate sponsor.
- billfruit 7y agoBut as I said, lein is not distributed with clojure, and installing lein on Windows is not straightforward.