[JSR308] Can we agree on our goals?

Eugene Kuleshov eu at javatx.org
Fri Feb 2 19:18:14 EST 2007

Brian Goetz wrote:
> I think this is extrapolating from an experience base that has very, 
> very little to do with how Java is used in the real world, and I'm 
> happy to bet with you that in five years, we'd be lamenting the 
> unintended consequences.  Java has been very successful as a language; 
> in part, this is because it has achieved a good balance of 
> expressiveness and safety, and that it encourages mediocre programmers 
> to write decent code.  
  I think that Java expressiveness and safety also allowed to write very 
powerful  tools for to help with development. Netbeans, IDEA and Eclipse 
won't be that far if Java won't be that expressive and safe, and that is 
what helping these mediocre programmers to write decent code.

  Also, with all the Java safety, we still need tools like FindBugs, 
Lint4j, PMD and others to find all the bugs that even more then average 
level developers can introduce.
> Tinkering with such success requires setting the bar very high. For 
> extending the language, the bar should not simply be "can people write 
> better code than they can now?" (and especially not "does this enable 
> experts to write better code than they can now"), but "will this 
> encourage _average_ programmers to write better code?"
  The major purpose of JSR 308 is to extend abilities of the annotation 
processors and and static code analyzers. Right now many of those tools 
hit the wall, and have to invent own ways to apply similar annotations 
into the Java code. From your work on FindBugs, you should know that 
currently it is not exactly safe to make assumptions about code and code 
analyzers do need additional hints.
> Most of the code examples I've seen on this list terrify me.  I'd like 
> to see that degree of terror more broadly shared (so far, it seems 
> like Ted, Neal, and I are the only ones that have expressed their fear).
  It is perfectly understandable to see such fear and I am also with you 
on this. However we did came to the point when tools need to be able to 
get additional hints about the code. If you or others in this list have 
better ideas how to deal this this issue please don't hesitate to share 

  By the way, one interesting aspect about these new annotations, is 
that they can be removed, or hidden from the source code represented to 
the user without affecting meaning of the code execution. Said that, 
IDEs can implement new level of semantical folding or filtering, that 
would help users to deal with potential verbosity of the new 
annotations, and yet allow annotation processors to use these annotations.


More information about the JSR308 mailing list