Archive for the ‘Open Source’ Category
Introducing Orion
Sometime later today some very exciting new code is going to show up in the e4 git repository at Eclipse. “Orion” is a brand new adventure for Eclipse, and one which we hope will interest and excite a whole new community: web developers.
Orion is not a set of Java plug-ins which run in the existing Java IDE. It is browser-based open tool integration platform which is entirely focused on developing for the web, in the web. Tools are written in JavaScript and run in the browser. Unlike other attempts at creating browser-based development tools, this is not an IDE running in a single tab. Links work and can be shared. You can open a file in a new tab. Great care has been taken to provide a web experience for development.
Orion’s server-side is currently a simple OSGi-based Java application using Jetty as its web container. But the communication with the client is through a fairly simply RESTful interface, and we definitely hope to see implementations in other languages and technologies.
I cannot emphasize strongly enough that this is not the same old same old from Eclipse. Orion is a new code base, whose client-side is written in JavaScript and provides the foundation for a new and different web tooling platform. We hope that a new ecosystem of web tools will emerge that make it easy to link together a web developer’s toolset.
Another key point is that Orion is not finished. It is not, for example, a complete JavaScript IDE. This is the very beginning of a new project, and everyone involved knows that we have a lot to learn. Unlike the early days of the Eclipse project itself, the team from IBM is contributing a relatively modest — but very useful — piece of code to spur the creation of whole new community of contribution and participation. We invite everyone who is interested to try the code, join the mailing lists and forums, and figure out ways to both adopt and contribute to the work that has been done. Even more importantly, we are looking for people and organizations to get engaged in Orion in meaningful leadership roles for everything from adding code to defining the project to prioritizing the roadmap. We know that this needs to be a community-led process.
The team is going to be blogging about the details of the technology, so I won’t steal their thunder. But hopefully the screen shots will spur your interest. Certainly we think there is a very interesting and highly scalable editor tool which a lot of web developers are going to be interested in both using for their code and embedding in their applications. Update – you can now download the Orion code.
So today is the very beginning of something new. But there is a lot of work to do, and first and foremost we need you the community to provide feedback and to get involved. For those who can make it, we are going to have a face-to-face meeting in Ottawa the first week of March to discuss where we can collectively take Orion. The output of this meeting will be a first draft of a project proposal for the community to review.
So to set expectations, here are a few key dates to keep in mind.
- This week we are going to get the initial code contribution into Eclipse’s git repository and some initial documentation into the wiki.
- Next week we are going to start inviting a small number of people to try out the technology hosted on our servers.
- By the end of January we will have a much broader trial available on our servers, and we will be inviting the entire Eclipse committer population to try it out.
We are awfully excited about the potential of the work done to date. Stay tuned!
Update: Changed the screen shots to show the Orion wordmark, rather than Eclipse.
Update: Added links to the wiki pages and Boris Bokowski’s blog post.
Christmas Comes Early for Java Developers
Today Google announced that they will be contributing two key pieces of Java tooling technology to proposed Eclipse Foundation projects. Two new projects are bringing to Eclipse product-quality code which have been highly regarded by Java developers for many years. They will fill major requirements that the Eclipse developer community have been hoping to see in open source for a long time. The WindowBuilder project will be led by Eric Clayberg of Google and Pavel Petrochenko of OnPositive Technologies will lead the Runtime Analysis Tools (RAT) project.
WindowBuilder is one of the best Java GUI builders out there. It supports both SWT and Swing and is fully bi-directional, meaning that you can work on the code or the visual design – it’s your choice. Just as importantly, the architecture is extensible so the team hopes to see additional designers built on top. Part of the goal here will be to hopefully create an ecosystem of open source and commercial extensions that make use of WindowBuilder’s core functionality to create GUI designers, as Google plans to do with its GWT Designer offering. [Update] Google already has a great start at creating community around this project by welcoming committers and contributions from Genuitec (Swing and mobile tools), compeople(Riena support) and Cloudsmith (data binding support).
CodePro Profiler is an excellent Java application profiling tool, and forms the basis for the code contribution to RAT. The profiler supports Java developers to inspect the running applications, find performance bottlenecks, detect memory leaks and solve problems regarding thread concurrency in your Java applications. Great Java application profiling is something that Eclipse users have wanted for years, and soon it will be here.
Both projects intend to join the Indigo release train in June 2011. It will be a lot of work for the teams, but having these projects available so quickly will be great for Java developers who use Eclipse. I know that the teams are very interested in growing community participation, so if you can help please join in on the conversation on the Proposals forum.
Google has been a big supporter of Eclipse for years. They are a long-time Solutions Member of the Eclipse Foundation, last year they provided an additional $20,000 to us to improve the server infrastructure for our projects, they provide the hosting for Eclipse Labs, they support us in the Google Summer of Code and they run the Eclipse Day at the Googleplex each year. But this is the first major code contribution to the Eclipse community from Google. I hope you will join me in thanking Google for making this happen!
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!
Java 8 Vote
Yesterday I described the reasons why I think the Eclipse Foundation should vote in favour of the Java 7 JSR when it is proposed. We are no where near as positive about the Java 8 JSR.
The reason is modularity. We are just not comfortable that the direction of the Java 8 team will do an adequate job of bridging the divide between the OSGi world and whatever modularity model is decided upon for the platform. Which potentially means that Java 8 may ship in late 2012 (actually I predict early-to-mid-2013) with a modularity model which is orthogonal to, and incompatible with OSGi. In our opinion, that would be a disaster for the Java platform and the Java ecosystem.
Let’s recap just a few of the reasons why OSGi is important to both Java and Eclipse:
- OSGi forms the basis of the Eclipse plug-in model used by millions of Java developers. The Eclipse Equinox and Eclipse Gemini projects provide the reference implementations of quite a few of the OSGi RFC’s.
- OSGi is used by many of the Enterprise Service Bus (ESB) implementations out there.
- OSGi is used by almost all of the major Java EE application server implementations, including oddly enough Oracle’s WebLogic and Glassfish products.
I am not saying that OSGi is a panacea. There are lots of people out there who will happily tell you about all of the reasons why it is imperfect. For example, despite the fact that its roots are in embedded, it objectively has been a failure in the Java ME space. My point is that it is deeply ingrained in the Java ecosystem and in the architectures of many of the most successful Java products out there. I cannot imagine a scenario where ignoring or trying to replace it in a major Java platform release two and a half years from now can be anything other than a train wreck.
I would be awfully happy to be wrong, but my perception is that the Java 8 JSR is looking at modularity as a greenfield project where they need to arrive some sort of perfect solution, with no historical constraints. We, on the other hand, believe that: (a) there is an incumbent technology that must be accommodated and (b) the problem we collectively face is not software but social engineering. In the best interest of the Java community, some sort of compromise is going to be required.
The JCP is setup to mediate these types of technology decisions. The potential disagreement around Java 8 JSR is a technical issue, not a contract issue as is Java 7 JSR. Unless we see sufficient accommodation for OSGi in the Java 8 JSR we will be voting No.
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:
- 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.
- 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.
- 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.

