Graeme
graemerocher.bsky.social
Graeme
@graemerocher.bsky.social
Senior Architect at Oracle Labs
Creator of Grails and Micronaut (https://micronaut.io)
That is correct 👍
February 21, 2025 at 5:56 PM
Right, not saying the module system doesn't add value, but it doesn't take away the need for strong build tooling.

Also application developers don't think like library developers so when an application developer is tasked to build a library they are not thinking about restricting the public API
February 19, 2025 at 2:31 PM
Module system doesn’t really help uncontrolled growth of the dependency graph. It only helps isolation. Compilation time isolation can already be achieved with compile vs runtime scopes
February 19, 2025 at 11:40 AM
A library that depends on X shouldn't mean that X is now usable by everyone. It is just an unbelievable crazy default.

Developers are also sloppy putting things like JUnit and Mockito without a scope and publishing a library. Now those are public API and the transitives of those public as well.
February 18, 2025 at 4:08 PM
This becomes worse in larger organisations as internal libraries are produced that export more dependencies and then these transitives are consumed by everyone until the point that "the platform" everyone builds on includes hundreds of APIs. Removing a transitive results in breaking changes.
February 18, 2025 at 4:08 PM
Part of it is our fault I guess. We create higher level abstractions that encapsulate functionality (frameworks) that provide tremendous value and allow devs to do less and less because batteries included. These frameworks are very modular and allow configuring only what is needed, but no one does.
February 18, 2025 at 4:08 PM
We work at the same company, come help me fix our issues with it 😉
February 18, 2025 at 3:02 PM
Don’t think there as any easy answer to that. Gradle can be just as bad though does give you more control of resolution rules.

In large organizations it is difficult to control transitives and because with Maven transitives become public API automatically effectively every dep is public API
February 17, 2025 at 5:49 PM
Oh and AI is only going to make it worse.
February 17, 2025 at 2:22 PM