Neal Gafter on Evolving the Java Language
Neal starts off by reframing his presentation; from the original question, "what is it like to evolve a mature language?" to, "what is it like to evolve a widely deployed language?" The latter question exposes the real issues involved, which include:
- Behavioral compatibility with existing APIs;
- Choosing appropriate design principles that, in turn, influence the choice of new features;
- Examination of the best ways to modify, extend, or add features; and,
- Keep in mind additional long term goals so that immediate improvements do not heedlessly impair the possibility of reaching those goals.
The two categories of immediate short term design goals discussed by Gafter include: Regularize the existing Language and increase modularity. In the first category, issues like fixing type inference, limited operator overriding, and improved catch clauses were noted. Details and examples of these are presented and discussed. The presentation concludes with a discussion of specific long term goals for future extensions and improvements for Java.
View Neal Gafter on Evolving the Java Language for details.