We seem to have unfortunately trained people in some bizarre Pavlovian way to bash Sun no matter what we do. And boy is this topic the best example of it.
I like OSGi. I have been a big supporter of OSGi for some time. Check this out. I have had the pleasure of running the GlassFish and NetBeans teams. Very early on the GlassFish team had an eclipse plug-in, explored alternative languages and frameworks and embraced OSGi. Check out what an amazing job Jerome Dochez is doing with GlassFish v3 and how integrated OSGi is in his implementation story. Here is Ludo Champenois, who drove the Eclipse plugin for GlassFish, talking about GFv3 and OSGi. The NetBeans team had internal projects some time ago looking at incorporating OSGi intimately. Hopefully paving a way to engage closely with Eclipse IDE.
Clearly not only am I still at Sun, but I have been given the awesome responsibility of running the Java team. This is the new Sun. We have been going through a transformation in the last 5 years. We are a lot more pragmatic about things and a lot less dogmatic. We are slowing making changes in places where we have been entrenched for years.
I was pleasantly surprised when Mark Reinhold, Lead Architect for JavaSE, came to my office and told me it was time to walk away from JSR 277. It was bold thinking and I loved it. Although I had been thinking about this for some time but I was totally caught off guard. There is no reason for us to standardize and implement a module system (JAM) on the fly. It makes no sense. Yes we pushed for it, but it was not the right thing to do. There are aspects of JSR 277 that I do like. The interoperability layer which enables multiple module systems to plug in is a worthwhile effort. We need to focus more on actually modularizing the JDK and less on the module system we will use. The interoperability part of JSR 277 will allow us to do that. There will probably come a time when we can standardize all of OSGi into Java, but today is not the day. It is incumbent upon us to resolve long standing issues that people have had with Java and the effort that Mark is driving to modularize the JDK is the first and foremost thing to do.
I like OSGi. I have been a big supporter of OSGi for some time. Check this out. I have had the pleasure of running the GlassFish and NetBeans teams. Very early on the GlassFish team had an eclipse plug-in, explored alternative languages and frameworks and embraced OSGi. Check out what an amazing job Jerome Dochez is doing with GlassFish v3 and how integrated OSGi is in his implementation story. Here is Ludo Champenois, who drove the Eclipse plugin for GlassFish, talking about GFv3 and OSGi. The NetBeans team had internal projects some time ago looking at incorporating OSGi intimately. Hopefully paving a way to engage closely with Eclipse IDE.
Clearly not only am I still at Sun, but I have been given the awesome responsibility of running the Java team. This is the new Sun. We have been going through a transformation in the last 5 years. We are a lot more pragmatic about things and a lot less dogmatic. We are slowing making changes in places where we have been entrenched for years.
I was pleasantly surprised when Mark Reinhold, Lead Architect for JavaSE, came to my office and told me it was time to walk away from JSR 277. It was bold thinking and I loved it. Although I had been thinking about this for some time but I was totally caught off guard. There is no reason for us to standardize and implement a module system (JAM) on the fly. It makes no sense. Yes we pushed for it, but it was not the right thing to do. There are aspects of JSR 277 that I do like. The interoperability layer which enables multiple module systems to plug in is a worthwhile effort. We need to focus more on actually modularizing the JDK and less on the module system we will use. The interoperability part of JSR 277 will allow us to do that. There will probably come a time when we can standardize all of OSGi into Java, but today is not the day. It is incumbent upon us to resolve long standing issues that people have had with Java and the effort that Mark is driving to modularize the JDK is the first and foremost thing to do.
Looks like you stopped writing it in the middle. It's not even clear what are Sun going to do, except talking vaguely about OSGi not being the right solution. People have "bashed" JSR 277 before because you didn't want to take a well established and proven technology and evolve it in *partnership* with the community, and people are doing it now because you're still absolutely opaque on what exactly are you going to do.
Posted by Kirill Grouchnikov on December 11, 2008 at 10:35 AM PST #
By calling it Pavlovian training, did you mean to compare the OSGi camp with hounds? Well you've rung your bell now and here we are, salivating :-)
There has been some friction on this issue, and past frustration has led some OSGiphiles including myself to mistrust Sun in pretty much everything it does. And frankly there are aspects of Project Jigsaw that are even more troubling than JSR 277, which I highlight in my recent blog post (warning, it's a bit long): http://neilbartlett.name/blog/2008/12/08/hope-fear-and-project-jigsaw/
However, I for one am prepared to see where you take this. Trust takes time to build, but you made a very good start with Glassfish V3. Here's hoping you don't blow it.
Posted by Neil Bartlett on December 11, 2008 at 02:11 PM PST #
This is kind of a weird post, Jeet. I'm pretty sure you have good intentions, but as the saying goes, the path to hell is paved with 'em.
Let me point out a few things. First, OSGi is already standardized within the JCP. That's what JSR 291 and 232 did. So, it's kind of weird to have you say "today is not the day" given that it has already happened in the past.
Second, let's just unpack the whole "interoperability" issue. Pray tell, just what exactly is there to interoperate with besides OSGi? What other module systems for Java are there? None. 277 was created to bridge an existing, mature and widely used module system for Java with one that Sun was going to invent out of whole cloth. It's pretty odd to claim that you don't have time for interoperability when you created the interoperability problem *yourselves*.
Finally, let's just point out that Apache Harmony has already modularized Java based on OSGi. Now you can argue about the details and criticize what they've done, but I'll just point out that this kind of interaction is *precisely* what has been missing in Sun's effort. You've taken your JSR 277 ball and went home, and come back to us with a non JCP effort which you've basically told us all to eat it and enjoy it because that's what is for dinner.
Sun's problem is that you have consistently and categorically ignored OSGi throughout this whole process. The Java modularization effort is simply a natural progression in this attitude.
Granted, this may not be what you intended to happen, but that's the problem with intentions and the path they pave.
Posted by Hal on December 11, 2008 at 02:37 PM PST #
Jeet, I have to admit that I really like reading about your intentions and feelings concerning OSGi. Unfortunately, I have problems buying that one of a sudden everything changes. Sun had ignored the problem for years and abandoned OSGi. JSR 277 was the first kinda hope I got seeing Sun moving in the right direction, but as we all know, it failed miserably. And true, Sun has some great OSGi efforts going on, but for me it feels more like this is driven by some brave individuals and is not reflecting the companies believes. At least that's the perception one is getting from the outside.
You say, you like OSGi and you were pleasantly surprised when you heard that Mark told you he wants to walk away from JSR277. Why then ignoring OSGi for the componentization of the JVM and more importantly driving JigSaw, a clear rival (which can be a good thing in an open community) component system under total control of Sun (open source != open community)? You are basically saying: we're developing our own stuff in public now, you can't do a thing about it - use it or leave it. How do you think about integrating the community and f.i. OSGi experts?
Trust is something very fragile. Easy to destroy and hard to regain. I have nothing against you, the great developers, researchers and other individuals at Sun. Some of you created amazing things - no doubt about it! My problem are however are the screw-ups making my life as a Java user harder, when solid and proven solutions are so close. OSGi might not be the perfect solution, but it is pretty good and when you want to do something better, why ignoring it instead of learning from it and creating something on top, which has a great potential to be even better. I am not using OSGi, because I am fanatic about it, it is just the only system with which I am able to do what I am doing right now. There are no alternatives!
Anyway, I am looking forward to see your progress and I am hoping for the best. At the end of the day, all we want is making our lives more enjoyable ;-)
Posted by Mirko Jahn on December 11, 2008 at 04:17 PM PST #
"This is the new Sun. We have been going through a transformation in the last 5 years."
Oh I get it now. The "new Sun" is not only about not working with the community within the JSR 277 EG but now Sun's not working with the community at all. The new Sun is not about embracing existing stable open standards like OSGi. The new Sun is about reinventing the wheel by adding a modularization solution that is proprietary to the *Sun* JDK.
But it's all ok because Jigsaw is open source.
Yes, this is really resolving "long standing issues that people have had with Java". Way to go.
Posted by Mike Heath on December 11, 2008 at 11:50 PM PST #
Well, as Kirill Grouchnikov stated, I believe you stopped writting at some point. So what Sun is going to do? Reading Mark Reinhold's blog its seems to me that Sun will not support OSGi at all. As a Java developer for the past 6 years, and a JUG leader as well, I've always had the impression that Java was a happy coincidence that happened on the Sun existence. For the past years companies like IBM and the Apache foundation did more for the platform than Sun ever did. And although the last 2 years we've seen the OpenXXX initiative, I can't believe Sun is dumping a mature, well documented with large community effort as OSGi to build its own. It seems to me the "old" Sun is coming back again
Posted by Vinicius Carvalho on December 12, 2008 at 03:23 AM PST #
I think it is great that Sun is reaching out to the OSGi and Eclipse community. I have certainly seen the change over the last 12 months, especially from the Glassfish team.
However, I think the key point being raised is that Sun needs to participate in a conversation with the wider community. Sun needs to change from a transmission mode of 'here is what we will do' to 'lets have a conversation of what needs to be done and how can we do it'. Once you start doing that you will earn the trust.
btw, a great starting point would be to respond to some of the comments in this blog. If you want to earn the respect, start with these people.
Posted by Ian Skerrett on December 12, 2008 at 07:50 AM PST #
Taking Ian's suggestion here. Let me respond to some of the comments.
for Ian
Sun is still learning how to deal with open source when it comes to Java. We are reaching out to our Java partners for feedback just as we are going out with the message to the community. We have had great feedback (positive and negative) from our partners and we will incorporate some of the suggestions moving forward. Yes we need to engage more with the open source communities and we will do that too. Don't know to what extent we will be successful, but we will engage.
for Neil
Appreciate your sense of humor. I read your (very long :)) blog post. Very well balanced. Yes there is ambiguity in some of what I said in my post and some of what Mark mentioned. We are a work in progress and hope over time we gain back some of the trust. You raised some valid points and Mark will clarify moving forward. Open Source is great. Open standards with open source is even better. I will try my best to guide our team to stay true to that belief.
for Hal
I fundamentally believe in a model where using the specs you write creates a better solution. Alex is taking a new look at things in JSR 294 because we have shifted the focus from just building a module system to actually modularizing. There will be a back and forth of us changing and adapting the module system we use as we pull apart and then put back together again the JDK. Doing that will require continual changes. Once we have figured out what real needs we have, we will take them back to OSGi to get them adopted in a new rev. We will engage with OSGi before that. Yes I know Harmony uses OSGi. Is your point that we should do exactly what Harmony is doing?
for Mirko
Yes trust is hard to build. We will continue to do more right things than wrong. We will engage with the Java partners and community. OSGi is a great story for building modules and people who want to do that are already doing it. Please use OSGi for your immediate needs. There are two points we are making
- postpone the standardization of module systems to a later release
- modularize the JDK now so we can solve problems that Java developers have been asking to address for years. What ever we learn from this exercise will go into standardization process immediately. I love the fact that Hibernate and Toplink paved the way for EJB3 to happen. We toyed with the idea of taking an existing implementation of OSGi and then morph it as we see fit. But realized people would think we were being underhanded. So we took the approach we did so that we get all the beating up front :)
for Kirill
Let me try to clarify
- We are not going to standardize OSGi into JDK today. We might do that later.
- We will implement something now to focus totally on JDK modularization. No formal javax APIs here. Using the JSR 277 interoperability work would be a good direction here thereby allowing for OSGi modules
Posted by Jeet Kaul on December 12, 2008 at 03:34 PM PST #
"Is your point that we should do exactly what Harmony is doing?"
Not in the slightest. However, what I heard from Mark and Alex is that it was unpossible to use OSGi to modularize the JRE. We know this is a blatantly false statement because we have an existence proof in Harmony.
The point is that you should engage and join in. Take what Harmony has done and tell us why it sucks and is completely inappropriate for what Sun needs to do. Work with the experts in this technology to figure out how to make things work out for everyone. It's called engagement.
What we have, instead, is an academic exercise by people who have never used OSGi before - and thus, never have used a module system for Java because, hey, what else is there besides OSGi - showing the entire world that they didn't learn the lessons from the "Mythical Man Month" by diving head first into Sun's special version of the "Second System Effect" where y'all think you know how to *really* do a module system and those jokers in OSGi just don't know WTF they're doing.
Granted, I know this isn't your intentions. But intentions don't count here. The result does. And where we are now is y'all are off creating something that is *designed* from the ground up to be incompatible with OSGi.
When you purposefully start with a square peg, it ain't going to fit into a round hole. And all the good intentions of rounding that peg don't mean jack because we all know that good intentions are the first to be chucked in any schedule.
Posted by Hal on December 12, 2008 at 08:27 PM PST #
Tahnks
Posted by دردشة on August 02, 2009 at 07:21 AM PDT #
It was a very nice idea! Just wanna say thank you for the information you have shared. Just continue writing this kind of post. I will be your loyal
Posted by ugg boots on October 29, 2009 at 01:50 AM PDT #
Oh, Kirill Grouchnikov statement, I believe you stop writing. So the sun is going to do? Reading mark - it seemed my blog, the sun will not support OSGi. As a Java development over the past six years, and a pot of leaders, I have the impression that a happy coincidence, Java occurred in the sun. In the past decade, like IBM basis and weaving than the sun came out. Platform, although the last 2 years we saw OpenXXX initiative, I can't believe the sun is a mature, good record OSGi community efforts made for themselves. In my opinion, "old" the sun will come back
Posted by world of warcraft gold on November 05, 2009 at 12:53 AM PST #