Sunday, April 8, 2012

Bye bye Eclipse -- my disorganized, irresponsible little brother

I have been an Eclipse fan-boy for the last 7 years. I have participated on a number of open source Eclipse plugin projects. I have evangelized it to others. I also have a personal connection to it as my father was one of the project principles when it was still an IBM project. I have apologized for Eclipse a lot:
  • The auto-completion is slow and clunky and just doesn't "feel" right.
  • The static imports and favorites always seem to get in my way.
  • The Maven support (while dramatically improved) is still sometimes clunky.
  • The mismatch of hierarchical projects to non-hierarchical is awkward (maven multi-module projects)
  • The plugins, while extensive, are often not polished. I wanted to literally break my laptop in half after trying to write some Groovy code -- null pointers flowing up to popups, etc.
  • The EGit support, while improving, is just developing slowly and still has lots of bugs.
  • There is a lack of consistency across plugins -- they are obviously developed in isolation and lack a cohesive overall vision.
  • I still at least once a week have to hear about or help a team member who is stuck in some kind of Eclipse hell where builds are firing continuously or something else is going wrong.

I've always loved the dream of Eclipse as it is a simulacrum of why I love open source software. I like the bizarre over the cathedral. But at the end of the day, I need to get work done -- not fight with making Eclipses plugins all play nicely.

An anecdote of my point: last project we were trying to do some Tapestry5 development using Eclipse's WTP + Tomcat. Tapestry has some fancy classloaders so that it can hot load java class file changes without restarting/redeploying. We also wanted to use Tomcat7. Well WTP has the ability to host the tomcat instance from the workspace, which works well with Tapestry's class loader stuff. Unfortunately between the last version of WTP and Tomcat7 it was broken. The only person that works on the Tomcat connector for WTP is a guy named Larry Issacs who has a full time job at SAP. So it might get fixed when he has time...some day. I ended up patching the jar and distributing it to our team myself as a hack.

At the end of the day, I just need to get work done. And so far, IntelliJ has been an improvement. I still love Eclipse, but it needs more resources or more vision or more something to compete well. Its not the big things -- its the little things. The overall cohesiveness in IntelliJ is what I find refreshing.

But hey it could be worse -- it could be Visual Studio *giggle*. I love talking with these Visual Studio "fan boys" who have never used any other IDE or at least ReSharper. I was talking with a "chief architect evangelist" from Microsoft (a comical title) and asked if the utterly absurd feature anemia in Visual Studio was indicative of:

  • a lack of imagination or motivation by the development staff to investigate more productive ways to write software or
  • a cultural/systemic problem at Microsoft where the developers using the tools could not communicate with the product management who drives the feature sets.
He asked me for specific examples of features. I said "go look at the ReSharper feature list-- specifically Refactorings". He said literally: "Why would you want to refactor anything?".

In the most patronizing tone I could muster I suggested that he go read the chapter on refactoring in the Microsoft Press book titled "Code Complete".

*sigh*

Steve

4 comments:

  1. I've also leave Eclipse few years ago also because of plug-in hell. I absolutely agree with you about the need of an IDE to get work done and not keep fighting with plug-ins integration. I've switch to IntelliJ then to Netbeans and since then Eclipse become my 3rd favorite IDE.

    ReplyDelete
  2. Oh wow! What features in Netbeans do you prefer over IntelliJ? I briefly used netbeans a few years ago, but quickly switched back to Eclipse

    ReplyDelete
    Replies
    1. Personally I do prefer IntelliJ but due company policy (mostly budget issue) we are forced to use free IDE.

      Delete
  3. Back when I was writing in Java I started with Eclipse myself, as an apologist like many others I know, but eventually left for the greener pastures of Netbeans. Then, when Netbeans 7 loomed around the corner with it's severe departure with much of the older APIs and lack of support for a lot of things I had been using (instead Oracle decided to refocus on Java 7 and start to deprecate anything other than Java or support for anything non-Oracle), I moved on to IntelliJ, RubyMine, and PHPStorm (all Jetbrains, based on the same codebase)

    ReplyDelete