Why Linux Distributions Should Stop Caring About Java Packages
All Linux distributions have their own package management and their main goal is to provide stable, secure and working software to end users.
This almost always works well .. Almost .. Unless you are a Java developer who needs many libraries and different server softwares.
The added value by package maintainers becomes ultimately useless. Because:
- Java ecosystem is only loosely connected to the underlying operating system and its traditions. Operating system is no more than a container. There is no gain to obey standards of the host system.
- Most of the time, people prefer to have all Java stuff under same directory, which is irrelevant to other host files, like /opt ..
- Developers follow the release of new versions so closely that package maintainers can not update fast enough. Plus, package repositories include only a small subset of all available libraries
- Developers use multiple versions of libraries in different modules. Package managers by default present you the latest version. Build tools are just simpler to work this way.
- In most places dependencies, installation, deployment etc are also managed by Maven/Ant or sbt in case of Scala without relying on anything else.
- In many places, developers use combination of Linux, Windows, OSX machines that also rely on build management tools, not OS packages.
- Continuous integration systems also work with build management tools and they also don’t care about packages provided by distribution.
Efficiency, ease of use, flexibility and general availability of native build tools make distribution packages useless for most businesses. So, why do distributions spend huge amount of effort on this eventhough it is just not possible to make people’s life better ? When did you last use deb packages of Spring framework rather than just defining them in your pom file ?