Wednesday, 24 June 2009

JSR 294 - why is this still going on?

A few random thoughts about JSR 294:
  • After Gosling's recent comments about OSGi (you can find them for yourselves) it is pretty obvious that the Sun crowd don't actually get modularity. 
  • JSR took a step backward this week when someone asked why annotations weren't being used. 
    • Alex Buckley promptly tried to re-close that Pandora's box but failed.
    • Has any progress actually been made?  Doesn't look like it to me
  • Gradually Guice has started appearing along side OSGi in the JSR-294 mails as an example of another module system.
    • Another example of why we don't need a module system as part of the language.
    • Why can't Java remain the platform it is? - it is already flexible enough to support a number of initiatives to create module systems
  • Where are the requirements for JSR 294? 
    • The JSR itself is vague
    • The original 'requirements' (some seemingly random blog posts) appear to be quite far from what is being discussed (super-packages anyone)
  • 'package' as an access modifier ... ? I suggested that! Kind of.
  • Why is this JSR, potentially the most damaging change to be proposed to Java, being allowed to continue?
    • The whole JCP approach is fundamentally flawed
    • Oracle should step in and kill the process, or at least JSR 294.


Matthew Hegarty said...


If you haven't already, it might be interesting to check out JavaPosse #259 (Jigsaw and JSR 294 Interview) and #245 (OSGi Interview) for interviews with the engineers on both sides.

Neil Bartlett said...


I think I'm largely on your side in this debate, but I don't agree with everything you've said here.

First, it's a fallacy to talk about the "Sun crowd" just as much as it is to talk about the "OSGi crowd". Gosling is one individual at Sun, albeit an influential one, but quite a loose cannon at times. Certainly some people at Sun do "get" modularity.

Second, I'm nowhere near as concerned by JSR 294 as I am by Jigsaw and OpenJDK 7. As a JSR, there is at least some community process around 294. If it turns out rotten then it can be killed by the JCP Executive Committee. JSR 294 may even provide benefits in the future for OSGi, though you are right that the requirements need to be defined better.

On the other hand Jigsaw and OpenJDK 7 are being built by Sun alone outside of the JCP and cannot be stopped by community efforts. So I do hope that Oracle at least forces the current Jigsaw team to re-evaluate their decision to ignore OSGi, and also insists on OpenJDK 7 being released under the control of a JSR for Java 7 as all previous versions of Java have been.

Chris Brind said...

Thanks Neil,

I think I was being deliberately provocative when noting down my thoughts. ;)

I was under the impression, as I think a lot of people are, that JSR 294 is just a cover-screen for what is/will be Jigsaw. As such I've put them both in the 'OMG I hope they don't kill Java' section of my brain along with the likes of OpenJDK 7.

But yeah, I know there's good people at Oracle who love Java and I really think that Oracle should step in and clean it up a bit. However, I wonder if their hands are tied because I thought there was some restriction on what you can do with a company's operation during the first couple of years of acquisition? (I might have dreamt that though)