If you were a member of the press and a pre-registered attendee to JavaOne, you would have, in the weeks preceding the annual Java lovefest, had the dubious honor of a flood of e-mails from the public relations folks who represent the many members of the Java ecosystem. This is not unusual in the weeks leading up to some big event. But as e-mail upon e-mail arrived from the ether, a pattern began to evolve that caught my eye given that this was JavaOne: repeated mention of the Eclipse integrated development environment (IDE) or the organization in charge of its oversight, the Eclipse Foundation vs. no mention of its competitor NetBeans.
Big deal you say. Bigger than you think. Ever since IBM bootstrapped the Eclipse Foundation with some funding and the open sourcing of a goodly chunk of the source code that was in its WebSphere Application Developer (WSAD) tools, the Java community which consists not just of developers, but also of third-party development tool makers, has been the rope in a power-play/tug-o-war between the IBM-emboldened Eclipse Foundation and the Sun-endorsed NetBeans.org.
At issue? How the IDEs of each philosophically and technically treat the local resources on the systems that will run the Java applications they put out. Fundamentally, the Eclipse Foundation believes that Java developers should be able to incorporate some awareness of the underlying operating system into their applications. For example, the ability to make Java windows appear and behave more like Windows' windows or KDE's or even Mac's windows for that matter. Or the ability to directly refer to local files using the local file-system's native access methods versus reliance on one of Java's slower but more portable application programing interfaces (eg: Java Service Request 51). The key word in that last sentence, and to the Eclipse/NetBeans wedge, is portable. The minute any Java application incorporates any operating system -specific awareness into its code -- something easily done when developers use the Eclipse IDE -- the final code will include operating system dependencies that violate Java's chief tenant of portability: software that's written once will run anywhere (on Windows, Linux, OS X, Unix, etc.) as long as a certifiably compliant implementation of the Java Runtime Environment is present on the machine.
Sun, the inventor of Java, has long maintained that once you dispense with such portability, then you're not much better off with a Java application than you would be with any other non-portable application (one written for Windows for example). As such, it should come as no surprise that the Sun-backed NetBeans makes no allowances for OS specific code the way Eclipse does, and therefore philosophically, it enforces the promise of portability that Sun wants Java to stand for.
Meanwhile, the Eclipse faithful argue that they're not forcing developers to build OS specific code any more than owners of passenger cars are forced to use hi-octane gas. It's there and you can use it and just because it might give your car a little more pep or clean the carbon out of your engine's cylinders doesn't necessarily mean you do it. Car owners are apparently mature enough to make their own decisions, and, it stands to reason that so too are Java developers. Furthermore, some argue that the Java Community Process (JCP) -- the organization responsible for creating the portable APIs that might obviate the need for natively applicable code -- moves too slow. One case in point is the successor (JSR 203) to the JCP's current standard for file-system access (the aforementioned JSR 51). As can be seen from JSR 203's home page, the anticipated schedule for delivery is currently TBD (to be determined), but is slated for delivery with the next version of J2SE -- version 6.0 codenamed Mustang. However, there are reports on the Internet that, in addition to missing the release of J2SE 5.0 ("Tiger", the currently available version), JSR 203 will also miss Mustang. Behind Mustang is J2SE 7.0, codenamed Dolphin.
Whose right? Whose wrong? Honestly, I could vociferously debate both sides of the argument. But at this point, such debates may not matter. That's because, as in many tug-o-wars, someone is going to end up with mud in their face and despite Java inventor James Gosling saying at this year's JavaOne that "NetBeans is a long way from being dead," that someone, as of this JavaOne, is Sun and the members of the NetBeans camp.
Though the organization still exists, and the IDE is getting lots of downloads (so says Sun, but let's be honest, download counts are a crock), NetBeans is ready to be pronounced dead, and here's why. Like operating systems, IDEs are the foundations of their own ecosystems. The word "integrated" in "integrated development environment" is there because of how easy IDEs make it for developers to mix and match their favorite development tools. Coding tools, modeling tools, workflow tools, mobile tools, etc. There are hundreds of specialized tools out there that make it easier for developers to develop correspondingly specialized applications. The beauty of the IDE is how all of these tools can be snapped together like a jigsaw puzzle and work together in one context. So, in ecosystem terms, in the same way that computer buyers like to buy computers for which many applications exists (eg: Windows computers), developers will not only gravitate towards IDEs that they like, but the ones for which the most third party support and tools exist (known as IDE plug-ins).
So, if you're looking for the IDE ecosystem for which 2005 has so far been a hands down banner year, that IDE is Eclipse. Eclipse may have turned its biggest corner, when, during a 10 day stretch in January 2005, it signed Borland, BEA and Sybase, and then Computer Associates as strategic members. Then, earlier this month, on June 6th, Macromedia came on board as well saying it "plans to deliver a next-generation rich Internet application (RIA) development tool based on Eclipse." Macromedia isn't alone. Both BEA and Borland - major heavyweights in the Java development space -- have recognized the vibrancy of the Eclipse ecosystem and have decided that they're better off making sure that their own IDEs (WorkShop and JBuilder) are compatible with Eclipse's plug-ins rather than asking developer tool vendors to make separate plug-ins for their previously non-Eclipsesque architectures.
In a press release from earlier this year, Borland said its customers will be able "to take advantage of the rapidly growing Eclipse ecosystem, plug-ins and advancements on the Eclipse open source projects." These victories weren't just a wins for the Eclipse Foundation. They're also wins for developers because, finally, in the IDE world, developers have a situation where multiple IDE providers are complying with a specification (the Eclipse framework), and competing on implementation. Ecosystems generally take off once a few heavyweights decide to compete in this fashion. And taking off is exactly what Eclipse is doing. While I normally hunt down executives for real quotes as opposed to excerpting press releases, today is an exception because there's no need to question the claims that the vendors are making. The excerpts below, all of which came from the flood of releases that came out during JavaOne are tangible evidence of the enthusiasm for the Eclipse ecosystem -- enthusiasm that most ecosystem founders dream of.
- JavaOne News: Catalyst Systems' Openmake 6.4 For Eclipse - Compatible with a variety of development language and tool environments including Eclipse-based solutions like IBM Rational Application Developer for WebSphere Software, Borland and Microsoft .Net. Openmake integrates fully with version control systems from Rational, Serena and more.
- Sybase Announces Unified Eclipse-Based Application Development Environment - Using the Eclipse platform, a popular open source Java-based plug-in framework that makes it easier to create, integrate and utilize software tools, Sybase WorkSpace offers comprehensive development tooling that automates mundane tasks and reduces the overall complexity of application development.
- BEA Systems Embraces Open Source Innovation - In addition to the support and leadership BEA has shown as a strategic member of the Eclipse Foundation, and as contributor to high-profile Apache and other open source projects, today’s news furthers the company’s position in open source and Java development. To bring all this to life, Carges demonstrated on stage during his JavaOne keynote the creation of a Java application in Eclipse leveraging both Apache Beehive and Spring with deployment to Apache Tomcat.
- Compuware Extends Java Development Automation and Announces Eclipse Support With OptimalJ 4.0 - Compuware Corporation (NASDAQ: CPWR) today released Compuware OptimalJ 4.0, unveiling new process-modeling functionality and announcing support for the Eclipse open source development platform.
- Oracle Strengthens Commitment to Java Developers with Free Development Tool and Open Source Projects - Oracle is proposing to spearhead a JavaServer Faces (JSF) tooling project within the Eclipse Foundation open-source community and will also join the Apache MyFaces project as a core contributor.
- Borland to Ring In New Era of Java Innovation at JavaOne - We believe initiatives like Eclipse, distributed team collaboration, process optimization and model-driven development will take center stage in the next era of Java development. We’re excited to showcase to the Java community our ongoing innovations in these areas...At the conference itself, Borland will lead three sessions on topics ranging from how to leverage the Eclipse framework, to IDE extensibility, to recent innovations in JBuilder.
- ILOG Delivers Enhanced Business Rule Management for Dual-Platform Applications - ILOG Business Rule Studio 2.1 also integrates in Eclipse 3, which is the most widely used Integrated Development Environment (IDE) for Java developers.
- NEC is the 100th Organization to Join Eclipse - The Eclipse Foundation, an open source community committed to the implementation of a universal development platform, today announced that its membership has reached the milestone of 100 member organizations. NEC is the 100th organization to join the Eclipse Foundation and will join as an Add-in Provider member. NEC plans to introduce new Eclipse-based tools and plug-ins for their C++ and Java development environments.
- OC Systems Announces Hitchhiker for Eclipse - "As Eclipse has grown beyond being a Java IDE, it has become increasingly important that testing, profiling, memory analysis, and coverage tools be available for native code. Our Aprobe instrumentation technology allowed us to quickly integrate these capabilities with Eclipse," said Oliver Cole, president of OC Systems. "Hitchhiker is our first foray into the C/C++ space within the Eclipse ecosystem. We look forward to receiving feedback and developing future Eclipse-based products, particularly for C/C++."
- NDS Announces New OCAP Software Tool for Eclipse Development Environment - NDS Group plc, the leading provider of technology solutions for digital pay-TV, today announced the immediate availability of a new plug-in for its OpenCable Applications Platform (OCAP) version of its widely popular MediaHighway Development Kit (MHDK) Advanced..... The new plug-in speeds open standards-based set-top box application development and offers superior debugging features. It is compliant with the latest version of Eclipse, the most popular open source development platform today.
- Open Source Leader Exadel Extends Eclipse IDE with New Visual Editing Tools - Exadel, Inc., a leading provider of software, services, and support that enables companies to create mission-critical business applications based on open source and Java technologies, today announced the availability of Exadel Studio Pro 3.0, an advanced enterprise-class Web application development suite designed to work with Eclipse 3.1, the widely used Integrated Development Environment (IDE) platform.
To be fair, I dug around to see NetBeans had any sort of similar buzz.
To keep the measurement down to third party interest, I excluded anything from Sun or IBM. For example, that Sun's director of NetBeans in the Java and Developer Tools Group Timothy Cramer said that Sun "is fully committed to the NetBeans platform for tools" doesn't count. Nor did I count Sun's contribution of more code to NetBeans (eg: the 135,000 lines of collaboration and infrastructure source code it took from its Java Instant Messaging and Java Studio Enterprise products). Also, I'm throwing out the standing room-only turnout at NetBeans Day 2005 where James Gosling and Jonathan Schwartz were the headline acts. Think about it. You're a JavaOne attendee. You already have a proclivity to soak up what Schwartz and Gosling might have to say. They could have called it "Mad Cow Disease Day" and you would have attended.
So, with the playing field leveled, NetBeans scored a zero on the buzz meter. But it gets worse. I actually took the bait when a couple of vendors -- BEA and Sybase -- offered me an opportunity for a JavaOne briefing with their executives. These are two very big companies that play in the Java ecosystem. BEA also claims to have the largest number of J2EE application servers in production. So when BEA's CTO Mark Carges explained why the company with the largest number of Java application servers in production is banking on Eclipse, you can't help but listen. Here's what he said in an interview that you can download:
"No brainer" kinda sticks out in my mind. OK. So does the part where Carges said no one (no one from the supposedly largest base of production J2EE servers) asked for NetBeans support. Sybase is apparently equally nonplussed when it comes to NetBeans. Sybase VP of marketing Kathleen Schaub is quoted as saying "The IDE market is converging. .NET and Eclipse are becoming the standard. That's a big change." Echoing her sentiment was Sybase's director of application development technologies Karen Frederiksen who told me (you can download the audio):
I spent the last two and half years out with customers when we launched our WebLogic 8.1 and was out there meeting with them on how they’re going to build portals with it and business processes and so on and so forth and pretty much the feedback I got universally was we love the WorkShop environment and the experience you get when you develop with it. But especially about a year ago when [Eclipse] really started to turn up, we really heard loud in clear, "But you know developers are using Eclipse based plug-ins and IDEs. It be great would be if we could take advantage of that." Not one of the companies I met said the same for NetBeans. So it was a very very simple choice. We looked at it and said at this point in time, the Eclipse organization has the right kind of open source model, it has the right meritocracy as far as how you can contribute and how code could be developed. IBM did a very nice job of separating themselves from that. Eclipse did a very nice job running themselves as an open source organization where anyone could participate. We felt very comfortable joining that organization and leveraging that for one, and two, it was what customers were asking for. It was a no brainer.
We didn't really have a debate internally about Eclipse vs. NetBeans. When we first started doing development on Eclipse with our Unwired Orchestrator product was in late 2002 and at that time Eclipse was a little farther along and so when we got towards developing with workspace and really started planning for that product, our developers and our engineering team just had more familiarity with Eclipse and it was working for them and we decided to move forward with Eclipse....[In 2002, Eclipse] was better suited to our needs at that time... We haven't had much call for [supporting NetBeans] but of course, you can never tell what's going to happen in development environments and if NetBeans gets some good momentum and we have demand for that from our customers... I don't like to ever say never...Those sorts of controversial questions are what keeps my job interesting.... [The controversy] doesn't really concern us that much. We're committed at this point to Eclipse and we just try to stay out of the fray as much as we can.
Not surprisingly, this is the exact same language Sun uses to describe how it's in it for the long haul with NetBeans. Earlier today, in a telephone interview, Sun's group manager for developer tools marketing Dan Roberts told me "We're completely committed to open communities and open standards and Netbeans as the base of our tools strategy." But, in the same breath, saying "Eclipse has the largest market share," Roberts admitted that NetBeans is the underdog -- but one that he believes is fully capable of a "reinvigoration."
In fact, Robert's believes that such reinvigoration is already underway. Confirming that a count of first time downloads of the NetBeans (or any other software) is not the best way to measure the growth or size of the NetBeans community, Roberts says that Sun has been counting the number of unique developers that reconnect with the NetBeans.org Web site at least twice per month to get software updates and that the number has jumped from 45,000 to 138,000 in the last nine months. Meanwhile, at this year's JavaOne, Sun is claiming that there are now over 4.5 million Java developers worldwide (the math works out to 3 percent). Roberts also made the "competition is good" pitch, saying that it's the fact that Eclipse has had so much success that it has motivated the NetBeans' faithful to a new wave of innovations. Roberts goes on to cite those innovations -- ones like the GUI builder Matisse that has striking similarities to Microsoft's Visual Studio (see the flash demo) -- as the sort of advancements that will captivate the interest of Java developers.
Indeed, the fact that NetBeans is on the cutting edge with GUI builders like Matisse or that it's often first out with support for the latest Java technologies (Sun has a nice inside track on Java that allows it to keep its tools and implementations about as current as current can be) is one of NetBean's strengths. And competition is good for the Java IDE ecosystem. Wrote Redmonk's Stephen O'Grady in his summary of the feud (more like a lamenting), "I believe that Eclipse is better because of NetBeans, and NetBeans is better because of Eclipse."
So, technology counts for something. Not only that, there's no reason Sun can't build innovations like Matisse for Eclipse. But if you ask me, when it comes to ecosystems, third party support -- especially from the heavyweights -- counts for more. Developers will have to consider the way the rest of the Java market is rallying around Eclipse before committing themselves to NetBeans as much as Sun has. Finally, judging by the way that Sun appears to have thrown in the towel on its Linux-based Java Desktop System (JDS), Sun does have its breaking points. I believe that that point is near for NetBeans. Very very near.