I miss the heyday of the IDE wars. Seeing David Intersimone’s demo of JBuilder at OOPSLA 1998 opened my eyes to the way that tools can multiply our productivity. The competition that ensued between Borland, Microsoft and others brought us code assist, refactoring, structured editing, GUI builders, and a far more integrated developer workbench than the windowing system and command line could provide. In 2001, the landscape changed dramatically when IBM killed a significant part of the developer tools business by open sourcing Eclipse (later re-entering the tools business by acquiring Rational). The open sourcing of Eclipse was a success and created an unprecedented platform for tool innovation. But Java developers started expecting their IDE to be free, and the IDE business was gone for all but the most inspired tool builders, such as JetBrains.
The base IDE feature set has now been standardized and commoditized. In other words, it has become a lot more boring. To get buzz on Twitter, vendors have to pull zany moves like running a thin subset of IDE functionality in a web browser. The bleeding edge aside, we won’t see any dramatic departures from the base IDE feature set anytime soon. However, we’ll continue getting many nice tweaks and features, as you would expect with mature tools like cars or can openers. As with other commodities that need to differentiate their extremely similar feature sets via slick dashboards and sophisticated cup holders, we will see some welcome improvements on the fronts of eye candy and usability. This kind of tweaking is already surfacing in Visual Studio 2010, which saw an investment in user experience and graphic design refresh that put it ahead of the curve.
While the base feature set of code editing, building, debugging and deployment solidified, tool innovation will now occur on top of the commoditized IDE platform. The major shift in the IDE over the last decade has been to shift from end-user tool to tool platform. And like any software platform, the IDE now needs to evolve more slowly because the innovation is happening on top of it. Beneath the IDE we’re swapping out the deployment model to be cloud-based, as with the SpringSource Tool Suite’s (STS) direct cloud deployment. Atop the IDE we are layering on all sorts of collaboration features, recognizing that developers spend as much time collaborating around code as they do hacking it. I can no longer imagine working without having rich and IDE-based access to a task board and release plan.
The maturity of the Eclipse 3.6 and Visual Studio 2010 platforms has made it possible to bring the developer’s entire coding and collaboration activity into a single workbench built on plug-in APIs and shared data models. In 2011, we will see the remaining APIs completed, such as Mylyn’s new APIs for IDE-integrated code reviews, distributed version control, continuous integration and documentation. Whereas last decade’s IDE was all about integration and helping developers stay in the flow of their work, the next decade of the IDE will be about personalization. We are shifting from the IDE being a view on the entire system to the IDE being a view of the parts of the system and planning that are relevant to the developer. The shift might sound less exciting, but its impact on developer productivity will be just as pronounced, and is necessitated by the steady growth of software complexity. The integration of Agile, ALM and a task-focused workflow will drive the IDE’s shift from an integrated workbench to a highly personalized one, incorporating the focus and flow needed to keep developers working on extremely complex software happy and productive.
Boeing’s 787 Dreamliner is reported to run 6.5 million lines of code, approximately the same number as the core Eclipse platform. The whole of the 2010 Eclipse Helios release train was 33 million lines of code. Add to this all of the third party extensions, and today’s IDE platform ranks with some of the most complex artefacts produced by humanity. Due to the scale of investment, marketing and ecosystem management, as with commercial aerospace, we will see the two big players dominate the IDE market. The small and niche players will continue to exist, ranging from the boutique IntelliJ to JDeveloper for database development. But for those rolling out an IDE across their organization in 2011, the number and availability of third party extensions will be a more important decision factor than the base IDE feature set. ISVs and cloud/PaaS vendors will increasingly use the IDE as an on-ramp for their offerings, with Eclipse and Visual Studio as the clear targets for their integrations. Following the user-centric success of the Embraer E-190, which provides a superior cabin experience to similar offerings by the two aerospace giants, a renewed focus on developer productivity and Agile collaboration needs to be the driver of change in the IDE over the coming years.