Thursday, July 05, 2007

Eclipse, a Platform or an IDE?

This debate has popped up again recently as it seems to regularly at this time of year. I've added comments to the odd entry or two. So I figured I should make a statement in my own blog and to make sure I'm clear on where I stand on this issue.

Is Eclipse a platform for tools vendors, or an kick ass IDE for end users? From my vantage point being a project lead on the CDT and working for an Eclipse member company, Eclipse is clearly a platform, not an IDE. A great product manager who I used to work with asked me a great question one day early in my career on the CDT. I mistakenly used the term IDE and he asked a great question. "How can you call it an IDE if there's no compiler?" In other words, how can it be an "Integrated" Development Environment, if it doesn't come with everything you need to actually use it?

But Eclipse is a great platform for making IDEs and they are available from a number of sources, just not from Eclipse itself. And a lot of those sources are from the board and add-in provider members who help fund the Eclipse Foundation and who fund the vast majority of the contributions to Eclipse. This is a business, and I have no problem with that, and this group is focused on making sure their commercial products get the most benefit from Eclipse as a platform as they can. Because of that, though, none of them are really working on, or even, why there are road blocks to making Eclipse from Eclipse a true IDE.

So it feels like there are two issues hanging in the air. First, if we are not really distributing a true IDE from Eclipse, then I think we really need to stop calling it one. The user community expectations have been set high and we often see them disappointed by what they get from Eclipse. I believe it is really limiting the success of Eclipse. Yes it's great now, but I am sensing a slip and everyone is all of a sudden worried about NetBeans for some reason.

That leads to the second issue. Eclipse needs to be a great IDE. And I mean the one they download from Eclipse.org. This is an area where I hear Netbeans is beating Eclipse. Sun is investing in Netbeans to make it a great free IDE out of the box. They don't seem to have a commercial interest in making money at it (which makes me wonder why Sun does any of the Java stuff that they do).

But at Eclipse, that isn't the mindset of the decision makers. I get the sense that they are actually afraid of the free Eclipse competing with their products. I guess if all you are doing is packaging up the free stuff and charging for it, you have a point. But the products that I see Eclipse members building aren't that, so why the fear?

I've invested a lot of personal effort into making the CDT a great IDE. I've seen the feedback we get when the average Joe developer tries to build his own IDE with it. It's not an easy task and they often fail. But I want these people to be successful. Because some of them, one day, will have a need to use my commercial product, and if their negative experience continues to linger, I don't want that impacting their purchasing decision...

4 comments:

  1. For C/C++ development I can't see how Netbeans can take over Eclipse.
    For Java development, am not too sure. It seems to me there's more support from the wide Java community to produce plugins for Eclipse. The latest release seems to manage much better extensions.
    The embedded UML and reverse engineering features in Netbeans though can hardly be beaten, it's handy to have them when you need them.

    ReplyDelete
  2. My boss really wants to be able to use the same IDE across all the platforms we ship to (Windows, Linux, OS X), but right now we have to mix. For C++ development, there are two features that would make Eclipse ideal for crossplatform development, and would let us switch to Eclipse if they were added. The first is CMake support, which is gaining a lot of momentum as a crossplatform build system (KDE is using it now for example). The other is the ability for the indexer to handle the boost library (http://www.boost.org). It uses a lot of template and preprocessor magic that makes it difficult to parse, and it seems to kill the full indexer. Good support for CMake and boost would put you ahead of every C++ IDE I've tried.

    ReplyDelete
  3. Well, I do know we have done some testing with boost for the indexer. I should put boost in CDT for Windows, then it'll definitely see more action.

    I've never used CMake, but with Makefile projects, you can use any builder, it doesn't have to be make. But it shouldn't be difficult to extends the project model for CMake, and even do CMake templates. If someone wants to contribute it.

    ReplyDelete
  4. I'm using Eclipse with CMake right now. CMake is generating the cdt projects, the only problem are the out of source builds. You need a separate project for them. My biggest problem with this is that in the source project, the problems (from the error parser) stay when you recompile the build project.

    (http://www.cmake.org/Wiki/Eclipse_CDT4_Generator)

    Would be great to hear some suggestions for solvings this.

    ReplyDelete