Life at Eclipse

Musings on the Eclipse Foundation, the community and the ecosystem

Archive for the ‘Foundation’ Category

Take a Deep Breath, Then Vote for Eclipse: Our View on the JCP

My goodness, this past week has seen a flurry of despair around Java and the JCP. Most of it misguided, in my humble opinion. Matt Asay’s article does a good job of capturing all of the angst in one spot. If you haven’t read it, I recommend that you do even though I disagree with much of it.

Let me start by saying that like Red Hat’s Bill Burke, I believe that Java and the JCP are doing just fine and are here to stay. Despite some short-term growing pains, they are both in much better shape than they were under Sun’s stewardship over the past couple of years. In fact, I would go so far as to say that in terms of real, tangible progress, this past month has been the best for Java in the past three years.

I should also say that this post is focused on the issues that pertain to Java SE and EE, which is the Executive Committee that the Eclipse Foundation is running for. The concerns which are impacting the Java ME ecosystem will be for another post on another day.

There is one thing that Matt, Ian Skerrett and others have gotten exactly right: the failure to communicate effectively with the Java community is costing Oracle dearly. They have got to fix that, and soon. The problem is that Oracle has always been an enterprise software company, with PR and AR people who think that controlling the message is the path to success. Oracle as an organization has a lot of internal institutional challenges to overcome before they can learn how to communicate with a community like Java’s. It will take time and there will be mistakes along the way, but I think they will. They have to, because as we have recently observed, silence is significantly worse than delivering even bad news in a clear and honest manner.

So let’s examine some of the recent commentary.

  • “The Great War of Java”: Stephen Colebourne’s most recent post is, well, just plain wrong. I totally understand the frustration and disappointment of the Apache community who have done so much for Java over the past decade or more. But the fact is that the “Great War of Java” didn’t happen, and it well could have. The announcement that IBM had made peace with Oracle and was joining OpenJDK meant that the fork that so many had predicted is not going to happen. I cannot say this strongly enough: characterizing the current status quo as a war is just wrong. What we may have on our hands is a failure to communicate, a major disappointment for Apache and/or a time of significant change in Java’s governance. But in my opinion the conflict that truly could have harmed Java has been averted.
  • Doug Lea’s departure from the JCP EC: Doug has been a very important voice on the JCP Executive Committee since long before we got there. He understands the process deeply and cares about how players other than the large corporations can participate, contribute and innovate within the Java ecosystem. He will be missed. However, I do think that his reasons for resigning were based on some incorrect assumptions.

    I believe that many people are confusing the JCP’s vendor neutrality with its effectiveness as a specifications organization. The JCP has never and will never be a vendor-neutral organization (a la Apache and Eclipse), and anyone who thought it so was fooling themselves. But it has been effective, and I believe that it will be effective again. That’s why if re-elected, Eclipse will be voting for the Java 7 JSR. We need to get back to actually getting platform specs through the process if Java is going to advance.

    As a truly vendor-neutral organization, we at Eclipse understand the value that brings to the community and the commercial ecosystem. Unfortunately, I believe that OpenJDK’s governance will, in the end, be no more vendor-neutral than the JCP’s. It simply cannot be. Oracle has a responsibility to its commercial Java licensors to deliver them intellectual property under commercial terms and conditions, which is why contributors need to sign the CLA. By definition, if Oracle needs to own the IP for Java, including the IP in OpenJDK, the governance model will always require some sort of special role for Oracle. I wish it could be otherwise, but that is how I see the situation.

    But the key point is that in neither case (JCP or OpenJDK) does the lack of vendor neutrality mean that the organizations are ineffective. Both have already demonstrated success in pulling together many competing interests and getting innovative work completed. So the lack of vendor neutrality is not fatal. In fact, I am optimistic that having both an open standards and an open source organization working in collaboration will help accelerate innovation in the Java platform.

  • Apple’s deprecation of Java:The simple fact of the matter is that none of us yet know exactly what this means, or why Apple took this approach. Steve Job’s explanation was particularly lame. If release cycle alignment was a fatal problem, none of the platform vendors would still be shipping Java. I am a bit of a cynical sort, so my hypothesis is that this may simply be a contract negotiation ploy. If Apple wanted to put pressure on Oracle for a better Java licensing deal, wouldn’t this be a fairly obvious way to do so?

    But I do believe that Apple may have under-estimated the negative implications for their own business. Not shipping Java on the Mac has obvious implications for Java developers. Everyone who uses IntelliJ, NetBeans and Eclipse will be impacted at some level. But one aspect that I have yet seen discussed much are the implications for other language developers. Don’t forget that the leading development tools for Android, PHP and Adobe Flash (to name just a few) are all based on Eclipse as well. I have to wonder if Apple has thought through how many developer communities they will be alienating if they push this no-Java stance too far. I predict a mid-course correction.

  • Use the OSGi Alliance instead: A few people have suggested that if the wheels are going to fall off the JCP, perhaps the OSGi Alliance can step into the vacuum and become the leading specification organization within the larger Java ecosystem. Despite Eclipse’s commitment to OSGi, I have to say that there is asymptotically close to zero probability of that ever happening. The reason is simple: IBM, Oracle, Red Hat and others are committed to making OpenJDK and the JCP successful, so there is no vacuum to fill. I would say to our friends at the OSGi Alliance that this conjecture is neither realistic nor helpful.

It is clear that Java is going though a period of turmoil. But anyone who has gone through a large corporate acquisition could have predicted that some amount of chaos was entirely predictable. The Eclipse Foundation is committed to the success of both Java and the JCP, and we are optimistic that the JCP will remain a highly effective specification organization for the Java community and ecosystem. I hope that you will vote for us in the on-going election!

Written by Mike Milinkovich

October 27, 2010 at 5:48 pm

Posted in Foundation, Open Source

Java 7 Vote

Stephen Colebourne correctly pointed out in his blog this morning that when the Java 7 JSR is proposed to the JCP Executive Committee, that the Eclipse Foundation will vote “yes”. I think that it would be helpful to explain why that is the case.

First, some history. The Eclipse Foundation has been on the JCP EC for three years. The dispute between Apache and Sun (now Oracle) regarding proposed field-of-use (FOU) restrictions placed on Apache Harmony predates our tenure. At every opportunity during those three years we have supported Apache’s position, including explaining to corporate representatives why this is such a big deal for an open source community. We agree that Apache Harmony should have received an unencumbered TCK license and our votes consistently supported various resolutions on this matter.

However, the time has come to move on.

For over three years now, Java has been stagnating as a language and a platform. As I said a few days ago, they “…have been years of stalemate, lack of innovation and lost opportunities.” At some point this lack of progress becomes an existential question. If Java does not start to progress as a platform, it will die. It has already suffered an enormous loss of momentum.

It is really important to understand that the JCP EC does not have the power to grant Apache a TCK license, only Oracle can do that. If the JCP had the power, Apache would have had their TCK years ago. So at its essence, this is a contract dispute between the Apache Software Foundation and Sun Microsystems (now Oracle). There are only three ways that this intractable dispute can be resolved:

  1. Oracle caves. Well, we all know that’s not going to happen. Sun did not cave for three years, and Oracle has made it abundantly clear that they’re not going to. If IBM couldn’t find some leverage, I don’t see how the open source communities will.
  2. Apache sues. Even if Apache had the resources, I am guessing their legal counsel would advise against it. Lawsuits are legal warfare, with all of the potential for unintended consequences and collateral damage that statement implies.
  3. We move on. Realistically, this is the only option left. As much as continuing the fight appeals to the heart I cannot see how this dispute will ever reach closure. Although I certainly understand the natural inclination to want to continue the struggle against the slings and arrows of corporate behaviour, I just honestly believe that at this point it is beyond reasonableness to do so.

Note that our position is not making any assumptions about the future of Apache Harmony. Hopefully others will step in and carry the project forward. But that is not an argument for continuing the impasse blocking the future of the Java platform.

Therefore, we are going to vote based on the technical merits of Java 7. From our point of view “Plan B” defines the logical next steps for the Java platform. Java 8 is a different story and left for another blog post.

Written by Mike Milinkovich

October 13, 2010 at 3:39 pm

Posted in Foundation, Open Source

A Good Day for Java Development

If you are a Java developer, Christmas came early this year.

Today Google announced that they are making many of the key assets that they acquired from Instantiations. Specifically, GWT Designer, CodePro AnalytiX, WindowBuilder Pro and WindowTester Pro are now all available for free from Google. Many thanks to Google for taking this step! I expect that today’s announcement will significantly improve the productivity of millions of Java developers using Eclipse.

This is a big deal for Java developers. These are professional-quality tools from which Instantiations made a very nice business for many years. And free is a great price. I expect to see lots of happy developers using them, and soon. There were certainly many very happy and congratulatory comments on the announcement.

This is also a big deal for Eclipse. These tools provide a great boost to the productivity of developers using the Eclipse platform. The most obvious example is in the area of GUI building. Let’s face it, the “available for free” GUI building story on Eclipse has been painful for a long time. (Just take a look at the commits meter.) Having this suite of tools available for free can only help to increase the value of the Eclipse platform to the community of Java developers. And with support for Swing, SWT and GWT you can use whichever Java-based UI framework that best meets your requirements.

All in all, a great day for Java developers!

Written by Mike Milinkovich

September 16, 2010 at 10:24 pm

Posted in Foundation, Open Source

Introducing a New and Improved Mylyn

We are announcing today the creation of the Application Lifecycle Tools Top-Level Project, which will retain the well-known Mylyn nickname. From the charter: “Mylyn is an open source collaborative software development project dedicated to providing an extensible, standards-based platform to address a broad range of needs of accessing task and application lifecycle management tools and services using the Eclipse platform.” Also check out Mik Kersten’s blog post on this.

This is important news for the Eclipse community, as it creates a centre of gravity for the application lifecycle tooling projects at Eclipse. Down the road, we hope to see an even more vibrant ecosystem of projects and adopters leveraging Mylyn as their ALM platform.

This is also a great example of a project growing and maturing at Eclipse. Mylyn (nee Mylar) started as Mik Kersten’s PhD thesis project. After the successful completion of his doctorate, Mik brought Mylyn 1.0 to Eclipse as an incubator project, where it was an immediate success with the community. Mylyn has certainly been one of the most popular innovations within the Eclipse tools community over the past several years and continues to be an important differentiator of the Eclipse IDE. After exiting incubation, Mylyn moved to the Technology PMC where it built out its frameworks and APIs, then to the Tools PMC, where it grew to be one of the most active and accessible projects at the Eclipse community. There have been over 900 code contributions to Mylyn by non-committers, with 1/7th of Bugzilla bugs and enhancement requests solved by community contributors. That is an outstanding record of community involvement.

Largely because of its popularity, over the past several years Mylyn has created its own ecosystem of extensions. You can find Mylyn connectors for most bug tracking and SCM environments. Furthermore, it started getting used as an integration point targeted by projects at Eclipse. Mylyn has truly become the de facto ALM integration framework at Eclipse. And in doing so has grown and matured to the point where making its own top-level project is the logical next step. Stay tuned for some further announcements over the next couple of weeks concerning both new and moving projects as part of this restructuring.

Please join me in offering hearty congratulations to project lead Mik Kersten at the Mylyn committers and contributors who made this possible. I look forward to having new participants in this top-level project to continue to innovate and expand Eclipse’s IDE role as the best, most extensible, and most innovative tool platform.

Written by Mike Milinkovich

September 16, 2010 at 12:30 pm

Posted in Foundation, Open Source

Introducing Eclipse Labs

Back in December, I discussed a number of initiatives that the Eclipse Foundation was going to be working on in 2010. The one that attracted the most feedback was “Eclipse Labs”. Well, we are very happy to announce that thanks to Google, this idea has become a reality. Better yet, Google has already released a cool new project “Workspace Mechanic” on Eclipse Labs.

The Eclipse community has a large and vibrant ecosystem of commercial and open source add-ons to the Eclipse platform. In the open source world, there are two options if you want to start an Eclipse oriented project: 1) propose a project with the Eclipse Foundation or 2) start a project on one of the existing forges, ex. Google Code, SourceForge, Codehaus, etc. For some projects, the IP due diligence and development process expected of Eclipse projects is not warranted. However, creating an Eclipse project on a forge makes it difficult to gain visibility in the Eclipse community. Can we find a third option that allows projects to start and prosper without the process of the Foundation but at the same time gain some of the visibility Eclipse projects often get by being at the Foundation?

Last year, we started a discussion with the people running the Project Hosting on Google Code service to see if they would be interested in creating an Eclipse area on Google Code. They had already been thinking along the same lines and were very receptive to the idea. Therefore, I am excited to announce the availability of Eclipse Labs, a third option for Eclipse oriented open source projects.

What is Eclipse Labs?
If you have ever created a project on Google Code you will quickly recognize Eclipse Labs. Eclipse Labs allows you to very quickly create an open source project with access to an issue tracking system, source code repository (Subversion or Mercurial) and a project web site. The default license is EPL but you can change it to the other licenses available on Google Code. Anyone can create a project on Eclipse Labs at any time. (Assuming you agree to the Google Code terms of use and the Eclipse Labs guidelines.) Eclipse Labs projects are encouraged to use the org.eclipselabs namespace, but are not required to do so.

Eclipse Labs project owners will also be encouraged to create tags/labels to describe your project. We have pre-populated a set of Eclipse specific labels that will be displayed on the Eclipse Labs search page. Eclipse Labs will also have an API that allows people to search on these labels. My hope is that Eclipse projects will begin to highlight on their own web site Eclipse Labs projects that are relevant to their own project. For example, Eclipse BIRT could list all the BIRT add-ons created on Eclipse Labs. We also want to populate Eclipse Marketplace with the projects from Eclipse Labs. The API is not yet available but it should be in the next couple of weeks. I think this will present a lot of opportunity for cross pollination for Eclipse Labs projects.

What is Eclipse Labs Not?
Remember, this is a third option. Projects hosted on Eclipse Labs are not official Eclipse projects. Therefore, they can’t be called Eclipse projects, use the org.eclipse namespace or be included in the Release Train or Packages. If an Eclipse project wants to include an Eclipse Labs project they will need to go through the normal IP process. If a project wants any of these benefits they must become an Eclipse Foundation project. The details have been specified in the Eclipse Labs Guidelines.

Moving Forward
Eclipse Labs is open for business now. It is still in a beta form, so please provide your feedback.

Our hope is that Eclipse Labs quickly grows to a larger number of projects than are already hosted at the Eclipse Foundation. We need to make it as easy as possible for someone to open source their awesome Eclipse based technology. Not all projects need to be hosted at the Eclipse Foundation and in fact I am hoping more projects will start at Eclipse Labs and then, if they choose, graduate to the Eclipse Foundation.

Big Thanks to Google
The people at Google have been great during this process. Google has once again shown their commitment and support for the open source community. Obviously without this support Eclipse Labs would not have been possible.

Thanks also goes to Ian Skerrett for driving this from our side!

Written by Mike Milinkovich

May 13, 2010 at 1:42 pm