Saturday, November 19, 2005

Where did my pixels go (tales of Java IDEs)

My typical work-day consists of writing/manipulating/running Java code. I've been using Eclipse, but spending a few days working off my PowerBook left me frustrated with how slow it was. I'm currently running a trial install of IntelliJ, which is definitely faster. I had a NetBeans install a few months back (which I have not reinstalled since upgrading the hard-drive) and I remember it feeling similar to Eclipse. I used to be a emacs junky, but I'm a total intellisense addict now (blame too many years spending most of my time as management overhead). Also, the live error feedback in Eclipse and IntelliJ (I don't remember about NetBeans) is amazingly useful when redesigning existing code.

So I was working on my laptop, tracking down an obscure bug in some code I had rewritten, and was marveling at how little text was on my screen. I had all this great UI which leveraged color coding, provided amazing code navigation tools, and let me view objects in the debugger with the greatest of ease. Yet I had less actual code displayed than I would have had back when I used emacs on an 800x600 screen! Back then (~1997) I had a laptop as my primary development machine (a very unusual state of affairs back then) running Linux. I had X set up so that most of my regular apps ran w/o title-bars, thus emacs really did have all 800x600 pixels. Modern UIs waste an amazing amount of pixels. I was amazed at how thick the spacers are in IntelliJ. For a true developer's IDE, there should be as few pixels wasted as possible! More importantly, basic editing and navigation must be fast. I should not need my 4GHz P4 desktop machine just to make the IDE usable.

Why isn't there a good, modern (intellisense, incremental error, etc) IDE? Actually, there probably are, but since I'm limiting myself to platforms which support both OS X & Windows, I'm not even looking at a majority of the offerings, since they are Windows only. I've tried JDE, the emacs Java Development Environment, but it seemed less than obvious how to get intellisense working. Part of my issue is that I typically rotate between 2-4 active projects, often where at least 2 of those are different branches of the same basic code-base. I like how classic IDEs (Eclipse/etc) make the solution pretty easy... Each app instance is working with one 'project', and projects are independent. Creating a similar effect in Emacs really seems like a hack.

I'd really like to see someone build a good, fast IDE with an efficient UI. Obviously part of the problem is that cross platform UI is a nightmare. I've almost never seen this done well. Little thinks like the menu bar differences between Mac and everyone-else are just the tip of the iceberg. Java helps, but Java IDEs always seem slow. I'm curious if anyone has profiled Eclipse. Where does it actually spend it's time? What accounts for the large memory usage? Basically... what would benefit most from being written in C/C++ rather than Java?

Enough griping. Back to work


Anonymous Jim Geurts said...

I feel the same way with Visual Studio. It's a bloated POS...

I have to admit that I'm intrigued by (and jealous of) TextMate ( used by some of the Ruby On Rails developers...

11:15 AM  
Anonymous Jim Geurts said...

You may be interested in Java Studio 8

6:29 AM  

Post a Comment

<< Home