
ASK HN: Why every language has its own build system? - alekseiko
Hello HN! 
Why every language has its own build&#x2F;(dependency management) system?
Java - ant, maven, gradle
Scala - sbt
Python - pip
Ruby - bundler
JavaScript - npm
...
======
PaulHoule
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.

------
bediger4000
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.

------
lollipop25
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?

------
uuoc
One large driver: NIH syndrome.

[https://en.wikipedia.org/wiki/Not_invented_here](https://en.wikipedia.org/wiki/Not_invented_here)

------
Kinnard
You might want to preface your post with "ASK HN: "

