ASK HN: Why every language has its own build system?
Hello HN!
Why every language has its own build/(dependency management) system?
Java - ant, maven, gradle
Scala - sbt
Python - pip
Ruby - bundler
JavaScript - npm
...
5 comments
I think it was a lot by accident. Also different languages have different needs, for instance you will really compile Java, probably not process Python source code, but you might do a ton on minimization for a Javascript product.
Many of these frameworks (especially Maven) have a "convention over configuration" attitude and that is probably easier to do the smaller the scope is.
Another factor is that many build/dep systems share metadata and package formats. For all the strong feelings JVM developers may have about gradle, sbt, maven, leinegin and the languages and other baggage that comes with them, they are compatible at the repository level and that makes life sweet.
Many of these frameworks (especially Maven) have a "convention over configuration" attitude and that is probably easier to do the smaller the scope is.
Another factor is that many build/dep systems share metadata and package formats. For all the strong feelings JVM developers may have about gradle, sbt, maven, leinegin and the languages and other baggage that comes with them, they are compatible at the repository level and that makes life sweet.
I'm going to guess a combination of ignorance of other build systems (either real or deliberate), dissatisfaction with how "make" or "ant" or whatever in that there's a bit of mismatch between how a build system works and the language in question envisions dependencies, and hubris. The hubris comes in when something like XML gets some faith as The Silver Bullet (because we all know there is no Golden Bullet). Intoxication with, and belief in XML leads to "ant", for example.
Because the runtime is present? I mean, why should I install Java to build my JavaScript when Node is present? And wouldn't it be weird if pip served Ruby gems or Homebrew providing chocolatey packages?
One large driver: NIH syndrome.
https://en.wikipedia.org/wiki/Not_invented_here
https://en.wikipedia.org/wiki/Not_invented_here
You might want to preface your post with "ASK HN: "