SF/JavaOne, Day 2, Eclipse

Interesting talk.  Starts with a chat about what exactly Eclipse
is.  From the talk it’s pretty clear that Eclipse is not viewed as
just a tool to help developers create sofware with.  Instead it’s
intended to be a general platform and framework for applications (vague
i know, but it kinda makes sense).  The initial goals are to be an
open platform that is language neutral.  So while Java is the #1
supported language on the platform, they intend for the entire platform
to encompass every other language as a fully supported entity.  Of
course, some of us know about CDT, but i’m sure there are a lot that
have never even heard of it.  Along with that, it’s intedended to
be a system that is built entirely from plugins (like emacs). 
Instead of being an IDE that has a few extension points, it’s a
platform where pretty much everything is a plugin with extension

The core Eclipse ecosystem (“stack”) seems incredibly rich.  At
it’s core it’s veyr well designed for integrating plugins and keeping
them up to date.  This core infrastructure allows pretty much
everything else ot be built on top of that.  Then on top of that
is just a core component model for dealing with the shell, and finally
on top of the individual plugins that supply support for thigns like
Java, C++, Testing Tools, Project Managesment, Web Stuff, etc. etc.
etc.  It seems incredibly powerful, and quite useful for people in
niche applications who need to provide specialized support for the
space that they’re in.

They’re also very driven by the community.  The community hacked
up the 2.0 platform a lot to make it a general application platform
instead of just a Java IDE.  The developers saw this and said:
“hey!  that’s a great idea.  We should incorporate that into
our core deliverables”.  And, after that, voila: you’ve got
Eclipse 3.0.

Ok.  They’re drilling down deep into the whole platform. 
It’s too much to all write down and i really want to pay attention to
all of this 🙂

Comments (6)

  1. Matt says:

    While I like Eclipse, it is a config nightmare at times… there are options for Java editing scattered about at random, and other various things…

    Projects are probably impossible to do right in the thing. Why must I have a list of all of them?! It doesn’t grok. But I still use it.

  2. Dr Pizza says:

    Eclipse is crap.

    I program in Java.

    I couldn’t give a shit about CDT or anything else. I want a first rate Java IDE. And Eclipse isn’t it. Making it a great "applications" platform hasn’t done a single thing to help Eclipse. Java still completely dominates its usage.

    It’s s-l-o-w.

    It’s extraordinarily memory-hungry.

    Its "background" compilation will all too often become "foreground" compilation, locking you out of the IDE complete.

    Its dependence on plugins for core functionality is crippling. If you want to do, for example, J2EE development, the base Eclipse JDT won’t do a thing to help you. There’s a number of third-party plugins, but none of them interoperate, and none of them cover all the bases. It’s not "incredibly powerful". It’s "incredibly annoying". I don’t want a "platform"; nor does anyone else I know. Why? Because I don’t write Eclipse plugins. As far as Eclipse is concerned, I’m an end user. So are the vast majority of Eclipse users. So I don’t want an "ecosystem". I don’t want a "platform". I don’t want to have to depend on "plugins". I want a powerful integrated development environment. Eclipse can’t provide that. You can see the joins.

    The Eclipse project are slowly realizing this, it seems, and are creating coherent sets of plugins to fill these holes (e.g. the WTP), but it’s taking far too long, and should have been done long, long ago.

  3. CyrusN says:

    DrPizza: Thanks for the information! That’s definitely a different perspective than what i’ve been seeing here.

    I wonder how widespread your feelings are on this. Anyone else out there feel the same way as him?

  4. Definitely.

    While I’ve seen some cool things done with Eclipse the platform (e.g. Haystack the universal information client http://haystack.lcs.mit.edu/), Eclipse as Java IDE feels overengineered and confusing.

    My favorite example is the process of running a project from Eclipse. The Run menus has four different options for launching your code (eight if you count debugging) and none of them do what you’d expect: launch the current project. One is "Run Last Launched" which is great when you have one but useful when you’re just getting started. "Run History" has the same problem. "Run…" brings up a complicated dialog that puts you through a long, confusing process for setting up a launch configuration (but only if you realize that’s what you need to do, and click a button tucked into the side of the dialog). "Run As" is, I think, intended as the standard method of running your program. But who would think that they need to run their project "as" something? And, even if they did, they’d need to know that the menu item only refers to the current FILE, not the project. So if you happen be to editing any of the project’s files except for the one with the "Main" method, the "Run As" submenu will be empty.

    Then there’s the fact that Eclipse can’t actually open a project that’s not in your "Workspace" (an Eclipse-only concept that’s flawed in a number of ways), it can only "Import" it.

    Then there’s the New Project dialog, which gives you 12 options, when all most people want to create is a Java project.

    And don’t forget perspectives – another Eclipse-specific concept that adds a layer of generality at the expense of simplicity and usability.

    So, yes, I suppose Eclipse is a wonderful platform for application developers, as long as they don’t care about the quality or usability of their products.

    Honestly, Visual Studio (or at least the new Express editions) is much cleaner, easier to use, and generally better designed than Eclipse. If only Microsoft made a Java IDE.

  5. JavaKid says:

    First of all I would like to say that I think it’s great that your in attendance at JavaOne this year Cyrus, Kudos to you.

    I personally have found the eclipse IDE to be the most powerful and wonderfully easy to use IDE’s I’ve gotten my hands on. I don’t really want to get into a VS .Net versus Eclipse debate right now… but if anyone’s interested I’m always up for it 😉

    What I want to know from Cyrus is what he has taken away from revisiting Eclipse after working on the VS .Net team. How do you feel about the Eclipse architecture? What do you like? What do you hate?

    Do you feel any differences in the .Net communities compared to the Java ones?

    Did this session inspire you to think differently in any ways? Can we expect to see any changes in the way MS approaches software development?

    Anyways… let’s collaborate with one another, both platforms have very inovative and marvelouse things happening… I frequently keep my eye on the Eclipse platform and find myself drooling over all the stuff they have the I don’t have in VS .Net.



  6. N says:

    I use Eclipse 3.0 + MyEclipse plugin (a commercial plugin that costs $30/year). It does everything I need and is the most pleasant development experience I have had and has made me more productive than any other IDE I’ve used. I use Visual Studio .Net 2003 alongside Eclipse on a daily basis, and much prefer Eclipse. VS.Net is something I am required to use, whereas Eclipse is something I love to use. I find that VS.Net has a clumsy interface that gets in the way and is lacking in features compared to Eclipse, but VS.Net is actually a pretty good IDE compared to most IDE’s I have used and has a few things I really like about it.

    I know there are better Java IDE’s like IDEA, but for the cost, Eclipse + a low cost plugin like MyEclipse (or a set of free plugins) makes for an excellent J2EE development platform. I’m looking forward to moving to Eclipse 3.1 as well as VS.Net 2005 when its released.