As modern IDEs are becoming larger, IDE projects cope with entropy by creating versions of their tools aimed at specialized developer communities, for instance, around popular enterprise frameworks. What does the segmentation of the IDE market place along the lines of developer micro-communities say about the future of IDEs?
We featured an interview this week with NetBeans evangelist Tim Boudreau, who contrasted the NetBeans and Eclipse approaches to IDEs. According to Boudreau, the Eclipse project leaves it to third-parties to integrate various plug-ins into a usable IDE tool, whereas NetBeans places more emphasis on ensuring that a single distribution works well out of the box.
Regardless of what approach an IDE project takes, IDEs are becoming more complex each year. Given that the "I" in IDE stands for "integrated," the natural desire for an IDE to integrate an increasing amount tools and functionality should not be surprising. However, if the trend of everything-and-the-kitchen-sink-type IDEs continues, IDEs will soon reach a point of entropy, making them both less reliable and harder to use. Tim Boudreau's comments in the interview suggest that that might already be the case with Eclipse.
One way IDE vendors seem to respond to that problem is by segmenting the market based on the type of developer using a tool. Borland, for instance, recently released stripped-down versions of its developer tools, following in the footsteps of Microsoft that now offers free versions of Visual Studio aimed at the less serious developer (although the free versions pack plenty of features).
Representatives from Borland also told me at JavaOne that they're planning to make their future IDEs, based on Eclipse, customizable, for instance, to open-source frameworks, such as Struts, Spring, or RIFE. Sybase is following a similar strategy with its IDE, also built on Eclipse, that targets developers who create solutions primarily for Sybase's platform.Such segmentation would target developers who think of themselves primarily as Struts or EJB or Sybase developers, and only then as Java developers.
Segmenting the IDE market by offering specialized IDEs to different micro-audiences seems like a reasonable alternative to overly bloated tools. But what does that say about the future of IDEs? Does it imply, for example, the demise of the general purpose IDE? And what does that say about the future of the Java developer community?
At the cusp of the American Revolution, the Federalists urged people think of themselves first not as Virginians or Carolinians, but as Americans. If IDE trends are any indication of broader developer attitudes, an opposite trend toward specialization and fragmentation may be evident in the Java community today.
Frameworks, and the tools supporting them, can certainly make a developer more productive. It follows that businesses already committed to a framework or a solution would prize a specialist in a framework more than a generalist Java developer. And it follows that IDE vendors can make money supporting the communities and ecosystems developing around frameworks and specialist tools.
But where will that leave IDEs, and the developer community five or ten years hence? Will EclipseCon, or NetBeans Day—or an Eclipse-for-Struts Con or a NetBeans-for-Swing Day—or a Seam developer conference, one day gather more audiences than JavaOne? Will publications serving those communities be more successful than their more generalist competitors? And, most important, will there be a generalist Java developer five or ten years from now?
What attracted me to IntelliJ all those years ago was the fact that it was the first IDE in a long time that was just for plain old java development. It did general purpose java extremely well.
With every release, they add wizards for EJBs, JSPs and all kinds of other junk that I don't care about. IntelliJ is still the best java IDE but it gets more like Eclipse with every release. I have my fingers crossed for an IntelliJ classic at some point.
> What attracted me to IntelliJ all those years ago was the > fact that it was the first IDE in a long time that was > just for plain old java development. It did general > purpose java extremely well. > > With every release, they add wizards for EJBs, JSPs and > all kinds of other junk that I don't care about. IntelliJ > is still the best java IDE but it gets more like Eclipse > with every release. I have my fingers crossed for an > IntelliJ classic at some point.
There's something to be said for lightweight tools that are small and easy to use for highly specific purposes. But the problem is that when your requirements are broader than the very narrow scope of those tools you'll have to use a multitude of tools to perform even the simplest task. That's why IDEs were created as broader tools in the first place, to get rid of the phenomenon where programmers had to use many different tools to do their work and integrate as much of that work as possible into a seemless package.
It's all very nice to have a small easy to use tool to work with Spring, another for JSF, another for EJB, and one more for general Java programming. But what if I have a single project involving all of that (and more)? I'd be constantly shifting from one tool to the next, having to constantly refresh project structures to take the changes made in another tool into account, etc. etc.
And that's not theoretical. I already use several tools (several IDEs in fact) side by side because some are better suited at some things and some at others, and that synchronisation is costing enough time that it's almost enough of a headache to abandon all those tools and do everything in VI.
> At a deeper level, comparing IntelliJ to Eclpse is > fundamentally unfair because Eclipse is a platform, an > operating system for plugins, not just an IDE that is > somewhat configurable.
Well, if you're simply looking for an IDE and not looking for a platform or an operating system for plugins, you can't really cut Elipse any slack just because the designers decided not to focus exclusively on making their best IDE.
The same can be said for Netbeans or any other IDE with greater aspirations.
It seems there is a trend today toward creating new platforms instead of simply solving customer problems. While I'm sure creating a platform is very interesting work, I don't see a great demand for them.