[jsr294-modularity-eg] Why Require is Considered Harmful
Peter Kriens
peter.kriens at aqute.biz
Fri Mar 6 05:49:49 EST 2009
I did a lot of soul searching about the require. I think my key
objection is that you cannot introduce a module dependency model
without also specifying the complete module system. JSR 294 is about
the Java language and if we define a module keyword it should be well
defined. The semantics of such a keyword should not be left up to some
anonymous module system. Such a strategy will only create havoc for
our users.
Richard tried to bypass this elephant by proposing a focus on the
language issues: module definition, membership, and visibility. I
think this was a good idea and agreed. In this area we can come to an
agreement, maybe even before J1. With this model I started the work in
294, what is it, three conf. calls ago.
Require will drag in the semantics of the module system and that will
create a lot more work than we can ever handle in the allotted time
frame (April anyone????). There are lots of technical issues how this
will interact with IDEs, the redundancy it could introduce, its
brittleness, and so much more, that I would feel very uncomfortable
with any specification that was based on so many unknowns.
Modules will have annotations. Though unpleasant, the class dependency
problems that annotations cause should be no problem for any module
system worth its name. .NET is using it for the exact same purpose,
why not us as well?
Realize that once you get it wrong in a specification, you can never
get rid of it ...
Kind regards,
Peter Kriens
More information about the jsr294-modularity-eg
mailing list