Aristotle is famously recognized with the quote, “The whole is greater than the sum of its parts”, but surprisingly it appears he may have been talking about software.
Obviously this is is a spurious title, but I was reminded of this quote in a recent experience I thought I would share.
For the bulk of my career I have worked most with the Java programming language and during that time have usually made liberal use of IDEs (Integrated Development Environments) for my development. Software engineers will often (though many don’t) use software dedicated to the task of creating other software. These tools are intended to provide both a faster development process with features like auto-complete and integration with application servers or databases.
Over the years IDEs have come and gone but there have been a few mainstay providers that have been in use for many years and appear to have stood the test of time. There are however a few notable exceptions.
In 1981 three Danish citizens, Niels Jensen, Ole Henriksen, and Mogens Glad, founded Borland Ltd. Borland would later become one of the premier providers of IDEs for a multitude of programming languages including Pascal, C++ and Java. In 2006 Borland announced the divestiture of their IDE division and in 2009 the company was sold for $75 Million, a fraction of their former $7 Billion value, and no doubt a sour pill after having previously turned down a $2.1 Billion offer from IBM.
Well, many people have many view on this and I’m sure it was a combination of factors, but for my money the demise of their IDE business was due in no small part to IBM.
Eclipse changed everything. At the time most Java IDEs were written in Java and Java has never been known for its strength in desktop UI. IBM recognized this and created something called SWT which leveraged much of the native platform’s capabilities rather than relying on a pure Java implementation which meant a more responsive, more efficient experience. In 2001 a consortium was formed to oversee the development of Eclipse as a free, open source initiative. This was the genesis of the explosive growth of Eclipse as the de facto IDE for Java developers and, in my opinion, the catalyst for the ultimate demise of companies like Borland. You can’t beat free.
Many may see this as an example of the power and ultimate success of the open source movement, but there’s a problem. A really big one. Eclipse is a horrible mess.
Over the years Eclipse’s open approach to development has meant a rapid increase in support for various languages, platforms, application servers, databases, version control systems etc. All of which make sense for an IDE, but the problem is many (most) are not developed by one party. Eclipse has a flexible plugin system which allows any developer to create components for the Eclipse platform leading to a market for plugins with hundreds of components available.
This sounds awesome, but unfortunately it just doesn’t work. Eclipse is riddled with problems, bugs, crashes and woefully slow performance resulting in such a serious impact to productivity that people are starting to leave the platform. And leave in droves.
The previous release of eclipse (Indigo) was released in June 2011 and according to Eclipse’s own website records 2,879,117 downloads (at the time of writing). The next release (Juno) was released in June 2012 and in almost the same period of time has recorded 1,119,678 downloads. This represents an attrition of 1,759,439, or over 60% of their former glory. No doubt there is some “apples and oranges” in these numbers but the trend is clear. Eclipse is flailing.
Of course general support for Java as a programming language and development platform has waned in recent years, especially in the valley, but Google’s decision to adopt Java for its Android platform coupled with the ever stoic enterprise community means that Java is still the one of the most widely used programming languages in the world.
So why has Eclipse’s stranglehold on the IDE space weakened? Everyone in the community contributes to the project and we get a much more robust, extensive platform right? Well it turns out Aristotle was right. The whole is greater. Eclipse has suffered the “death from a thousand cuts” syndrome. Too many cooks.
After much frustration, pain and borderline psychosis I finally ditched Eclipse and entered the growing Intellij fold, and what a change it has been.
Intellij is developed by Czech company JetBrains and in many ways represents a winding back of the clock to the Borland days. They are a single company developing a complete product suite. Intellij does have a plugin system like Eclipse but most of the common use cases are satisfied by plugins built by JetBrains. This means there is a real company, with real people and real support behind the product. The result is a product that almost cannot be compared to the monolithic, “Quasimodo-esque” bundle of joy that is Eclipse.
So what, open source doesn’t work? No, I love open source and everything for which it stands. Many ideas may never have seen the light of day if it weren’t for open source projects and the people behind them. This is really an issue of focus. Eclipse has simply fallen off the wagon of simplicity and focus. It’s all things to all people, but we all know this just doesn’t work.
Enlisting the support of the “open source community” can be a powerful and game changing strategy, but without a rigid discipline of focus and purpose it can hinder more than it helps.
Back in Borland’s heyday the top of the line JBuilder Enterprise would run you a cool $10K, but now the full version of Intellij’s IDEA system will set an individual developer back $199. This is a pretty difficult case to argue against as for many devs in the valley this represents about an hour’s work.