The fact that this hasn’t really happened yet and that generics, despite being available for many years, never gained popular adoption, makes me think that most folks are not that desperate for new bells and whistles inside the Java language and would rather see improvements in the core libraries, frameworks, tools, APIs etc. Most of Java’s development has focussed on the platform rather than the syntax. Though now Java has a serious competitor in C%23, maybe its time to redress the balance.
In an earlier blog I addressed this question “Why hasn’t the Java language changed?”. The core libraries and tools truly compensate for any weakness in the language. Today, we have Jakarta providing us with extremely innovative core libraries and we have Eclipse and AspectJ providing us with a strong foundation for building tools. Interestingly enough it isn’t Sun that’s pushing the envelope in the Java world. It’s smaller organizations like Jakarta (i.e. Tomcat etc.), OTI (i.e. Eclipse), and Xerox Parc Research (i.e. AspectJ).
A recent book Server Component Patterns highlights the different patterns used in the design of a server containers, they use EJB as a case study. I’m sure Jakarta Avalon uses similar patterns, however with the recent work being done by Rickard Oberg, we may now have to throw away many of these design patterns and start anew. As an example he writes:
Also, since we use the VM’s GC to do the object management for us, JRockit is great because it’ll fill up the memory before doing GC of objects. This means that we will use the VM’s capacity to the fullest.
Did he just get rid of instance pooling altogether here?
We desperately need a server framework that is simple at the same time scale in complexity. AOP may just be the right solution.
Curiously, James Gosling continues to push J2EE, furthermore he is pushing ACE (a generative approach) as a means to handle the complexity. He’s obviously not a Jakarta, OTI or Parc insider, sadly the founder of Java isn’t privy enough to the bleading edge.