« Make the most of your intranet and extranet | Main | BPM for free »
March 20, 2006Eclipse and the end of the Microsoft monopoly
This is the second entry in a blog series looking at major open source projects of which every enterprise should be aware. The series will conclude with a discussion of open source adoption issues, providing a quick and simple way to understand when and where to avoid open source.
The subject of this blog entry is the extraordinary software framework known as the Eclipse Platform. Originally developed in-house by IBM, Eclipse was open sourced in 2001 via the creation of a supervisory body known as the Eclipse Foundation, a not-for-profit consortium that now boasts 115 member organizations. IBM still put a lot of money and development time into Eclipse, but for years they have been supported in this effort by some of the largest companies in the world.
So what is Eclipse? In a nutshell, the first software product with the potential to remove Microsoft's monopoly in desktop computing.
IBM set out in the late 90's to create a common software framework to underpin all their Java-based middleware products. Further, the framework had to be extensible via plugin modules. They wanted to establish a standard user interface not only for their own product range, but also for any custom applications or supporting third party tools created to go with products in that range.
To say IBM succeeded would be an understatement. The intellectual effort that went into Eclipse was first-class, with direction from such luminaries as Grady Booch, and taking inspiration from the pattern-based approach to software design that is only now becoming standard practice. There are already many hundreds of plugin modules for Eclipse (open source and otherwise), and the framework is becoming the de facto standard software development environment, not only in the Java world but for other languages too - especially as Eclipse runs on most modern operating systems, in each case with a native look-and-feel. The writing is probably on the wall for competing, non-specialized "IDEs" for software development - even those few (like IntelliJ Idea) that have managed to retain a loyal user base will inevitably find it eroded as the massive vendor support behind Eclipse and the growing number of plugins makes it harder and harder to compete.
So why does this threaten Microsoft? Because of something called the Rich Client Platform.
Eclipse was originally developed as a tools framework - you were supposed to use it to create applications for use by IT folk, for example to write software or configure application servers. It took a surprisingly long time to realize that there was no reason to restrict Eclipse in this way. You can use Eclipse to write any kind of application! And doing so makes a lot of sense. Eclipse has a very well-architected plugin model that means you can leverage the framework to get off the ground very quickly with a new application, simply by building it as an Eclipse plugin. And once you have done so, your own application is immediately compatible with all the hundreds of other Eclipse plugins out there. So with release 3, Eclipse acquired a set of standard features (known as the Rich Client Platform) that make it easy to create any kind of standalone application in this way.
Now let's look back at the history of Microsoft. DOS may have been the company's original means of establishing dominance, but in the last 10 years it has retained it because of something else: applications. In particular, the ubiquity of the Office suite has meant that organizations standardized on Windows in order that their documents would be compatible with those from other sources. But that is only part of the story. For a long time now, it has been almost inconceivable for a software vendor to release a desktop product that did not run on Windows. Hence, by using Windows you were guaranteed that all the software you might want at some time to use would in fact be available to you.
Companies like Google realize this very well, which is why they snapped up the Web-based word processor Writely only shortly after its launch. The more people that use a Web browser as an application platform, the less the importance of choosing Windows for your desktop operating system as opposed to (say) Linux. But whatever the "Web 2.0" evangelists may say, the Web browser is never going to be fully-capable, or even durable, as a platform for building applications. The software development model (AJAX) is:
- Built on sand - Javascript is a scripting language, that was never designed to take the strain of heavyweight software.
- Badly architected - not only is AJAX a kludge on top of HTTP right from the start, but it tends to lead to poor design, breaking the Model 2 MVC practices that were finally becoming mainstream. This is changing as better practices start to appear for AJAX, but there is no layering implicit in AJAX itself, so there will always be the temptation to write poor code.
- Server- and browser-dependent - you cannot run an AJAX application without connecting to the server in question using an appropriately capable browser. What about applications that need to run offline and with more choice of device?
AJAX is unlikely ever to seriously challenge Windows as an application platform - but Eclipse may. Unlike AJAX, Eclipse is founded on an enterprise strength language (Java), based on a soundly architected plugin model, and independent of almost any network and device restrictions. As more and more software vendors port legacy products to Eclipse, and release new products in the form of Eclipse plugins, the importance of choosing Windows for your desktop operating system can only erode, a trend which will be accelerated by the recent emergence of Eclipse sub-projects that provide system-level features such as single sign-on (Higgins) and communications (ECF). The tipping point will probably come when someone releases word processing and spreadsheet Eclipse plugins that can (like Writely) use the emerging open standard for document format as well as the document formats for Microsoft Office.
TAKE AWAY
If you are considering development or maintenance of any desktop software application, whether for in-house use or supply to others, look hard at Eclipse before deciding on a framework. It may well be sensible to build the application as, or port it to, a set of Eclipse plugins. Just so that you know I practice what I preach, we are building our own next generation toolset for collaborative work using Eclipse - and have found it to be very productive, especially the embedded facilities for generating both business logic and diagramming code.
In fact, the same consideration should be given even to server-side applications. Eclipse can run "headless" - without an interactive user interface - and by developing your application as Eclipse plugins you gain access to all the rich functionality of the framework and its existing plugins (many of which are open source). For some reason, the Eclipse Foundation to date have not highlighted this capability of Eclipse, but no doubt they will realize in due course what an opportunity they have been missing and cater to it via a "Rich Server Platform" feature.
Finally (and this is where we came in), the rise of Eclipse has serious implications for any enterprise considering future desktop strategy. There may be less obstacles than you thought to replacing your desktop operating systems with (for example) a Linux variant. Look at what is available now in Eclipse, what is coming, and consider again how much money you will really need to spend on Microsoft licenses in the next few years. Such considerations have a direct impact not only on the desktop machines and licenses you purchase, but on your development strategy - the need for .NET capability along with J2EE may be less than you thought, for example.
Tune in again to this blog for a discussion of another major open source project with the potential to change the enterprise computing landscape. In the next entry I will pick up again on the discussion in the last blog series, BPM Futures, and show how open source tools can be used to implement a forward-thinking BPM strategy.
Posted by keithhb in
Open Source
• Operating Systems
|
Digg This|
Add to del.icio.us
Development frameworks and desktop environments are two wholly separate issues that should NOT be confused.
In one case, you're talking about development of enterprise applications that are largely based on the server, in the other you're talking about the desktop productivity environments that are run by end users.
There is little question that Eclipse has succeeded as the long awaited alternative (primarily Java, but technically open to other languages) to the Visual Studio family. Despite the success of VB, and more recently C#, Microsoft does not dominate high-end enterprise software shops. The market demanded an alternative.
The desktop is another story. The elusive goal of an alternative to the Microsoft Office desktop for the most part remains elusive. That's because the hidden cost of switching is high. With Microsoft Office file formats the de facto enterprise standard, and there is no viable alternative to using suites or relying on desktop environmments that don't support the document formats on which 90+% of the world's enterprises rely. With today's competitive landscape favoring operation of "virtual" enterprises, the notion of using file formats that are not compatible with your business partners is a sure recipe for business failure.
That being said, there is small hope for Office alternatives in several well-contained niches, like the public sector or the lesser developed world, where personal computing has not yet become ubiquitous. That's where the OpenDocument XML format comes in. And when that happens, you'll see translations to Microsoft Office XML. But these cases are the exceptions that prove the rule:
(1) Business have better things to spend their money on rather than religious causes such as non-Microsoft desktop alternatives
(2) Enterprise software development and desktop environment are two separate, unconnected issues.
Posted by: Tony Baer at March 22, 2006 02:32 PM
Hi Tony
I'm not "confusing" development frameworks and desktop environments. I'm saying that the rise of one particular development framework (Eclipse) will dramatically reduce the lock-in factor of one particular desktop environment (Windows).
We are already seeing the emergence of AJAX applications, such as Writely, that can use both MS Office and ODF documents. I don't think it will be long before we see similar applications emerging in Eclipse plugin form - perhaps from the OpenOffice stable - but even if we don't, we will certainly see Eclipse plugins that provide a seamless bridge between filesystems of any kind and AJAX apps such as Writely. And once this happens, there's no compelling reason to use Windows rather than any other O/S.
And this is something of intense interest to CIOs, who are deeply interested in finding "better things to spend their money on" than Windows. The IT order of the day at executive-level is Cut Costs, isn't it. Ditching several thousand desktop licenses might be just what the doctor ordered.
Posted by: Keith Harrison-Broninski
at March 22, 2006 05:43 PM
Keith, interesting theory, but unfortunately the key inhibitor for a large-scale Windows replacement is a large number of (business) applications that only run on the Wintel platform. I have written a blog on Linux for the desktop, which struggles with the same problem, have a look at it on http://loekb.blogspot.com/2006/02/how-linux-can-be-brought-to-desktop.html
Posted by: Loek at March 22, 2006 07:25 PM
Hi Loek
Yes, you're right about the inhibitor - as I wrote above, MS has retained their dominance because of applications. What I am saying is that over the next few years an increasing number of business applications will be delivered as Eclipse plugins, and hence will run on any O/S. In my view, enough mainstream applications will be available in this form to significantly reduce the inhibiting factor - from a "block" down to just a "consideration".
Further, there are ways to run any application on any operating system. As you say in your own blog, you can emulate Wintel on Linux. Another option, one that I would recommend for enterprise use, is to use a Terminal Services client that speaks Remote Desktop Protocol (RDP) - for instance the open source rdesktop - and restrict use of Windows to a few powerful servers rather than thousands of clients.
In my view, the current cost-cutting climate in IT management combined with the rise of Eclipse means that the advantages of such approaches are soon going to remove the Microsoft monopoly in the enterprise. And if you're one of those organizations making (or contemplating) the major transition to offshored operations, it's the perfect time to impose such a change ...
Posted by: Keith Harrison-Broninski
at March 23, 2006 09:14 AM
I have my own vision and prediction too.
The key factor is Java.
What holding Java down from the fall of Applet, was just Desktop Performance (which is primary use of the Computer). And there was the rise of Flash that turn our head off from Applet.
And now here they are RCP, that use SWT primarily.
So, for the biggest part, there will be significant change in our computing history.
Posted by: EkoSW at March 29, 2006 10:03 AM
"AJAX is unlikely ever to seriously challenge Windows as an application platform - but Eclipse may"
Thanks for a good laugh. Right, like so many things before killed Microsoft (Java, Netscape, Google, etc.).
Posted by: B at March 30, 2006 10:02 PM
Thanks for your comments.
EkoSW, I think you are saying that the difference with Eclipse is how it improves Java's sexiness? Yes, it certainly does, though I would personally argue that the "key factor" is the development tooling that comes with Eclipse.
"B", I'm not saying Eclipse will "kill" Microsoft. As you suggest, I doubt anything could, at least at this point in history. I am simply saying that Eclipse RCP will reduce the Windows O/S lock-in factor to a point where many enterprises can seriously consider other platforms for the first time.
Posted by: Keith Harrison-Broninski
at March 31, 2006 06:22 AM
Thanks for your comments.
EkoSW, I think you are saying that the difference with Eclipse is how it improves Java's sexiness? Yes, it certainly does, though I would personally argue that the "key factor" is the development tooling that comes with Eclipse.
"B", I'm not saying Eclipse will "kill" Microsoft. As you suggest, I doubt anything could, at least at this point in history. I am simply saying that Eclipse RCP will reduce the Windows O/S lock-in factor to a point where many enterprises can seriously consider other platforms for the first time.
Posted by: Keith Harrison-Broninski
at March 31, 2006 07:48 AM
In the end, it may even turn out that an increased adoption and expansion of .NET will end the Microsoft monopoly. Sounds like a contradiction? I don't think so: the more traditional Windows apps are replaced by .NET/managed code equivalents, the more they will run on open-source .NET implementation Mono, which is increasingly being incorporated in Linux distributions. So if Linux distributions can run Windows apps.... fill in the rest for yourself.
Posted by: Loek at April 10, 2006 03:36 PM
A few comments :
I'm convinced Eclipse will accelerate the death of the third-party IDE firms - at least that don't move towards providing Eclipse plug-ins.
(I expect vendor backed IDE's like NetBeans, Oracle JDeveloper, or Apple's XCode to survive for longer, because like Eclipse they're in-house tools made public).
I'm not convinced that Eclipse will set the stage for the end of Windows domination; however, I think other trends are already leading to this.
The largest one is the decline of the Enterprise desktop app. There has already been a substantial push to retool desktop clients into intranet web apps, even when that as been a step backwards in terms of UI flexibility.
I think future development will be in this area - richer web clients. While Java Applets might make a comeback (why is Google pushing JVM downloads?) I think the initial impetus will be through AJAX toolkits or Flash based RIA tools (Laszlo, Flex).
And while AJAX looks horrible to anyone schooled in proper software development, who'd have predicted we'd have thrown out all the achievements of the PC era to step back to the request-server-response web model? I think there is enough demand for the results (rich web enabled apps) to overcome the pain barrier for developers.
In the longer term, browser enhancements (i.e. ECMAScript 4.0 + SVG, and declarative UI languages like XUL / XAML) should remove the need for plug-ins.
All of this removes dependence on the desktop. Mobile devices are taking us further, as MS have far lower penetration in this sector.
I'd stop short of ringing the MS death knell though; look closely and you will see that MS are hedging their bets - why develop a client presentation layer that will run on Mac desktops? Why are they developing web tools that will deliver better x-browser compatibility? Why are they creating tools to rivals Adobe?
I think it's because they've recognised the next battle for control is the server.
MS are doing extremely well at selling the story that Visual Studio lets you develop faster and cheaper - enough that senior management in our Eclipse based shop keep asking why don't we use it (most of our customers do). And that's how MS have always worked - target the decision makers, not the technicians.
PS : right now I'd look at Adobe Flex; It's IDE . . . why, it's an Eclipse plug-in.
Posted by: JulesLt at April 23, 2006 01:32 PM
Post a comment
IT Directions
