Vexasious Dualisms

Posted by Tejus Parikh on May 8, 2006

Inevitably, every situation boils down to “us vs them.” It is the manner in which we are constructed, and an inescapable reality. This situation manifests itself in all situations, important and un-important. It’s not hard to find. Wal-Mart vs. Target, Ford vs. Chevy, Muslims vs Jews, Bears vs Packers, Microkernels vs Monolithic, so on and so forth.

And then there are the really important ones, Emacs vs VI, Gnome vs KDE, and Eclipse vs Intellij IDEA. It is the latter that I find the most annoying. The problem with being a developer is that you spend the entire day looking at and working with source code. This source code may encompass multiple languages, different paradigms, and use differing build tools. However, regardless of what it is or how it’s written, inevitably, the IDE becomes the application of choice.

Both Eclipse and Intellij have the requisite features for java development. Incremental builds, remote debugging, hot-code replacement exist in both environments. If either lacked in this regard, the choice would be easy. However, the differences are far more difficult to resolve.

There are just some things which are trivial in IntelliJ IDEA that are just too difficult if not impossible in Eclipse. Ant building comes to mind. IDEA lets you click on the target to execute. If there’s a way to do this in Eclipse, I can’t figure it out. Eclipse’s support for xml, html, and jsp is iffy at best. IDEA appears to be much better in this regard. As far as pure Java goes, IDEA may well be better.

Of course, there are things that I don’t like about IDEA. The keybindings are strange and I can’t figure out what’s with all those buttons that act like tabs. I don’t like that you can’t logically group similar items, nor do I like the lack of a synchronization view. None of these alone are enough to turn me off Eclipse.

But then come the x-factors. Eclipse might not be as good for Java, but I don’t only Program in Java. Eclipse has a wonderful plugin framework that lets you extend the product in ways that take it away from the run of the mill IDE. You can play games in it, surf the web, or write Perl, PHP, Ruby and pretty much another language. It’s like emacs on steriods.

And then comes the clincher: the interface. Some people don’t like the perspectives, the configurable views, or the modal menus, but there is one thing you can’t deny. It’s not just another Ugly Swing App(tm). Eclipse is easy on the eyes because it looks like an application that belongs on your system. On OSX, the menu bar is in the right place. On Linux, it changes to match your theme. On Windows, it looks as hideous as the rest of the system.

When you’re staring at something for 8 hours a day, looks are very important. Who knows, my new co-workers fanaticism or the better Java environment might win me over to IDEA, but for now, I’m sticking with Eclipse.

Tejus Parikh

I'm a software engineer that writes occasionally about building software, software culture, and tech adjacent hobbies. If you want to get in touch, send me an email at [my_first_name]@tejusparikh.com.