6 ms·
> See JavaScript/TypeScript, Python, or C/C++. I feel like you've picked the 3 worst ecosystems as an example. Java has a wonderful ecosystem. You can use Mav
by tikkabhuna 4y ago
> See JavaScript/TypeScript, Python, or C/C++.
I feel like you've picked the 3 worst ecosystems as an example.
Java has a wonderful ecosystem. You can use Maven/Gradle/Bazel as a dependency manager/build tool. All support the Maven repository format. Packages are published as jars and easily consumed. Of course you can still end up in dependency hell and you should take steps to mitigate those issues, but I'm quite happy with it.
> As a result, we keep building new variants and features, until we end up with <script>, require(), import, npm, yarn, pnpm, (py)?(v|virtual|pip)?env, (ana)?conda, easy_install, eggs and wheels ...
IMO the problem here is that there isn't a monopoly and its easy to swap in a replacement. JavaScript/Python developers are happy (or willing) to try something new, so new alternatives are created. Convincing a Java developer to try a new build system is difficult, so changes are made to existing systems rather than creating new ones.
Go and Rust are two other systems that work well and are (almost?) universally adopted. They come with the language and there is little reason to look around.
- DemocracyFTW2 4y ago> JavaScript/Python developers are happy (or willing) to try something new, so new alternatives are created. FWIW as far as JavaScript on NodeJS goes, npm did set the standard quite firmly. You can also use yarn or pnpm, which promise improvements over npm while using the same package metadata (`package.json`) and produce npm-compatible structures in the same subdirectory (`node_modules`), so overall the user experience is muche like going from `sudo apt-get install` to the newer, more polished and otherwise largely equivalent `sudo apt install`.