3 ms·
It's similar to pre-ES6 JavaScript, the language doesn't have it's own concept of modules so a bunch of different "solutions" emerged and the entire ecosystem f
by revelation 9y ago
It's similar to pre-ES6 JavaScript, the language doesn't have it's own concept of modules so a bunch of different "solutions" emerged and the entire ecosystem fractured because even though you were just trying to write a leftpad package you had to decide on one scheme and whoever wanted to use it better used the same one, too.
But this is Java, so everything is extra stupid. I can't say I have had much experience with Maven but I will say that what little bits I saw left me wanting to nuke it's creators from this planet. Even with nothing to do you can trust the Maven build to take an hour as it very slowly polls a bunch of online repositories and then does a bunch more tasks all for naught.
Then there is the OSGi system, but that is a synonym for "Eclipse" and all the cool kids want nothing to do with that, it's one wholly closed ghetto. Can't blame them, the x0.01 engineers that designed OSGi figured a mere module system is beneath them, so they integrated what seems to be a half-baked dependency injection system based on runtime-checked XML files. They figured type checking is holding them back. Also the tool support is entirely absent unless you are willing to use a null pointer exception throwing UI abomination in Eclipse.
My primary experience with Gradle has been in the context of Android and I figured people that come up with a build system where you can't go back and build software a mere 3 months old should really find a different job.
- hiram112 9y agoMaven takes a long time on every new build because it downloads all the dependencies to cache. If you aren't a regular Java developer, and you pull a simple GitHub project and build it, it might need download the dependencies, source code, and docs (if the build is configured as such). The next time you run, it will be cached and finish quickly. No different than one of your first npm installs .