The Bones of an Idol
Picking through the JSR-277 draft
Well, the public review period is supposed to be just that: a time to present an early draft of a JSR to the public for review, commentary, and criticism. Writing for OSGi.org, Peter Kriens has put together a fairly thorough shakedown of the early draft of Java Module System in a lengthy blog timply titled JSR 277 Review.
Summarizing the draft proposal, Kriens calls it unambitious, saying the ambition level is lower than when OSGi started work on similar problems in 1998, and furthermore, it doesn't learn from OSGi's experience:
The Expert Group took a simplistic module loading model and ignored many of the lessons that we learned over the past 8 years. No built in consistency, no unloading, no package based sharing. Maybe we wasted a lot of time or solved unimportant problems, but I really do not think so. It would be ok if they had found a much cleaner model, well supported by the VM, but it is clearly not. Their model is based on delegated class loaders, just like the OSGi framework minus 8 years of experience.
Kriens' commentary is significantly involved with class-loading, which he says should be the responsibility of the module framework. He points out that when your dependencies have their own dependencies on different and incompatible versions of other modules, these will show up as hard-to-trace
ClassCastExceptions. He also notes that there is a "fan out" problem which results in importing hundreds of barely-related or even unrelated modules, as a result of dependencies of dependencies of dependencies being resolved.
His critique closes with a pretty harsh conclusion:
JSR 277 takes a simplistic view of the world, ignoring many real life problems: consistency, optionality, split packages, etc. The only way this EG can pass its final review is lack of attention for detail of the Executive Committee or alternatively, serious muscle power of SUN. JSR 277 is a missed opportunity for Java. I do not doubt that this specification will end up in Java 7, but it will further fragment the Java world for no technical reason. Not only is this specification impossible to implement on J2ME any time soon, it will also leave the many OSGi adopters out in the cold. Why?
Wow. That's a pretty thorough denunciation. But is it accurate, and fair? What do you think? The JSR-277 review runs through November 13, so this is the time to read the spec and figure out if it's the right solution to the right problem.
Also in Java Today,
Dr. Dobbs' Journal takes a look at support for Java EE 5 among various vendors in App Server Powers Race To Embed Java EE 5 Support, reporting that "top vendors are moving quickly on Java EE 5 support. By early next year most will have compatible updates shipping." The article also notes how GlassFish not only offered an implementation concurrent with the release of the EE 5 spec, but may also be helping other app servers to get their EE 5 implementations out sooner.
Meet Scott Violet, Architect for the Swing Toolkit Team at Sun Microsystems is the latest in the SDN series of interviews with key Java platform engineers. In the interview, Scott talks about developing visual effects with Swing, the beans binding effort that he's heading up as the JSR-295 expert group lead, new desktop features in Java SE 6, and more.
This week's Spotlight is on
the Current CMS project, which offers a content management system (CMS) that is the product of nine years of development, originally developed with flat files and perl, but later migrated to Java. Current CMS is a multi-user CMS with workflow, versioning and publishing capabilities. It includes a generator that prepares scaffolding including Java model and view classes, JSP, SQL create and alters... all based on simple XML configuration files. The project was also the subject of a recent java.net feature article.
James Gosling talks up his multilingual documentation project in today's Weblogs.
Translation segmentation, he writes:
"I've been hacking furiously on doc.java.sun.com, the community translation site for java documentation (even if you're not interested in translation, it's still an interesting way to read javadoc). There's been a pile of bug fixing. The biggest change that people using the site will notice is that when you volunteer to do translations, it breaks large chunks of text down into more manageable segments.
MichaelÂ Ivey reports on a virtual-world JRuby presentation in
JRuby in Second Life:
"JRuby developer Charles Oliver Nutter talks about the how and why of JRuby in the virtual world of Second Life."
KirillÂ Grouchnikov shows off some slick Swing animation in
Animating your lists, tables and trees - part II:
"Second part in series about animating lists, trees and tables in your Swing applications. This part shows rollover animations on table rows and columns."
soupdragonspills the frustation in
today's Forums, with the post
I hate java.sql.Date:
"java.sql.Date, Time, Timestamp were a bad idea from the beginning, but especially java.sql.Date. I can't imagine anyone thinking giving two classes the same name, when they are, more often than not, used in the same code was a good idea. I can see absolutely no need for them. You could still have get/setDate, time, timestamp method on PreparedStatement and ResultSet using java.util.Date. Now, of course, because implementations of ResultSet and PreparedStatement have been written by many third parties it's not easy to put it right. However, one small consession: Why not give the java.sql.Date etc. constructors from java.util.Date?"
Joshua Marinacci has a post about why animation isn't in SwingX's Painter API, in
Painters Refactoring: A note on Animation:
'During all of my Painter talk you may have noticed that one thing is missing: What about animations? We've decided not to include animation directly in the Painter API. Animation is about changing something over time. Painters are about encapsulated Java2D code. They are completely orthogonal to each other, so our focus will be on providing hooks between the two. Our animation strategy in SwingLabs will of course hinge on the TimingFramework, which Chet Haas is currently refactoring to be simpler. Since I'm not sure how the integration between the two layers will work I've decided to not worry about it yet."
mortenhjerlhansenthinks more could be done to make
Java Media more convenient:
"Please allow me to say that it's not very good for media based companies that the customers have to download JMF in order to experience video. I'd like to hear opinions from others who thinks that video should be supported by the Java platform. Are there any plans of extending the JRE sometimes in the near future in order that video is supported?"
In today's java.net
News Headlines :
- JRuby 0.9.1
Lomboz 3.2 Final
- HSE 2.0b2
- DBsight 1.3.3
Java Serialization Initial Release
- Enhydra Kelp 7.0-4
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using our
form. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
Current and upcoming Java
- October 23-25 - The Ajax Experience: Boston
- October 24-27 - Java Training Philippines
- October 27-29 - Lone Star Software Symposium 2006: Dallas Edition
- November 3-5 - Northern Virginia Software Symposium 2006: Fall Edition
- November 7-10 - J2EE Training Philippines
- November 10-12 - Rocky Mountain Software Symposium 2006: Fall Edition
- November 11 - GWT (Google Web Toolkit) Tutorial
- November 17-19 - Great Lakes Software Symposium 2006
- November 21 - San Diego JUG Meeting + Sun Evangelist Visit
- November 27-30 - Java Training Philippines
- November 27-3 - JAX, Enterprise Architecture Conference and Eclipse Forum Asia 2006
- December 1-2 - IndicThreads.com Conference On Java Technology
- December 7-10 - The Spring Experience 2006
- December 11-14 - Enterprise Java Architecture Workshop - San Diego
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
Archives and Subscriptions: This blog is delivered weekdays as
Today RSS feed. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.
Picking through the JSR-277 draft