[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

_______________________________________________
jsr294-modularity-eg mailing list
jsr294-modularity-eg at cs.oswego.edu
http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg


More information about the jsr294-modularity-observer mailing list