IDE thoughts (aka Hating Eclipse)

When I first started programming, way back in the early 1990s, the first IDE I was exposed to was the Borland C++ DOS IDE that came with my copy of Borland C++ (on something like 31 3.5″ disks and a huge box of printed manuals). I started using Microsoft Visual C++ sometime after starting TAMS in 1995 and eventually moved over to Visual Studio after it came out in 1997. All along the way these IDEs were intuitive, easy to use, and still very powerful.

After starting IBM in 2000, I did less and less C/C++ coding and much more scripting work (shell and perl primarily) and web development in PHP. The scripting work didn’t require the use of a full-blown IDE and I did most of my perl development in Scite, a very sophisticated text editor but not a full IDE. The PHP code was developed either in Scite and FTP’d up to the sever or directly on the server using vi/vim.

After about a decade without working with a full IDE, I decided about a week ago that it was time to test the IDE waters out again — primarily for integrated version control support. Against every rational fiber in my body, I decided to try Eclipse.

Up until last week I had an irrational hatred for Eclipse primarily because Lotus is using it for every desktop program they create from Notes to Sametime. Yes, they bundle this huge java-based IDE with dozens of unnecessary plugins that you can’t remove due to dependency hell, just to have an IM session. And of course each one comes with its own bundled java JRE. After being acquired, Rational was forced down this ungodly road as well. Even the most recent version of IBM Tivoli Directory Integrator was moved to Eclipse. At IBM, there is no escaping Eclipse.

Knowing my hatred was primarily an architectural/philosophical issue I decided to give Eclipse a chance for what it was actually developed for: an IDE. I’m happy to say that my hatred is no longer irrational but is well founded: Eclipse sucks.

Unlike all of the other IDEs I’ve ever used, Eclipse is completely unintuitive. My needs weren’t all that difficult: I need a project containing a list of PHP files. I need to be able to edit and save those files. I need to be able to run the scripts through the command line PHP interpreter. And finally I need to be able to commit changes to my local SVN repository.

The project containing PHP files was easy. Editing and saving the files seemed to work OK too, although I’m still not use to its autocompletion stuff and my tab settings still aren’t correct (both user error I know). I’m completely unable to run the files through the PHP interpreter despite multiple times trying to figure it out. It is totally unclear to me how to check files into the SVN repository and at one point while trying to commit something Eclipse helpfully told me that an error occurred then deleted my file. I proceeded to spend the next 2 hours using ext3grep to the file back.

I acknowledge that the bulk of my hatred is just that initial learning curve. I get that Eclipse is very flexible and configureable but that also makes it unintuitive and unforgiving. Unless I can have some Eclipse-guru come sit beside me for a few hours and help me get things set up, I’m not going back.

For now I’m going to explore other IDE options like Komodo and Zend Studio to see how they fare (see also Seven great PHP IDEs compared from developerWorks). If they’re even remotely better than Eclipse they’ll be worth buying.