I have been afraid of admitting that I miss my IntelliJ for a long time now. I'm coming out of the closet today. I know some people will think of me differently now, possibly shunning me in favor of people who think vim + screen = bliss. I'm willing to take that risk. You see, I've found NetBeans with the jVi plugin, and I'm happy again.
Ok, weird coming-out jokes aside, I must say that I've been meaning to write about this for a long time. But I could not find an IDE I liked, and I could not bring myself to write a post about how there are no good Rails IDEs and I hate my life because of it. How dark. Only Satan-worshipping Finnish-metal-band-listening grandma's-basement programmers would have found any joy in reading that crap.
So I postponed writing about it until today. A happy day. Because I have found NetBeans.
Why do I like NetBeans? Well, first let me tell you a little about my long journey through the valley of the shadow of IDE.
I started out with Komodo because I like ActiveState (as a former TCL/Tk person, I will always appreciate their work on that language). I was impressed. For a cross-platform IDE, it was probably the fastest I had encountered on Mac when I tried it (probably about six months ago). But at that point, debugging was too slow. It took me over five minutes to start up webrick or mongrel and reach one breakpoint. Sorry ActiveState, I was using a G4 PowerBook. Debugging would probably be much faster on my MacbookPro. I appreciated the built-in VI keystroke emulation, but I found it lacking in some small ways that nevertheless irked me.
Next I tried RadRails, which had become the Aptana Studio or something like that by the time I got around to trying it. After downloading and installing it, I gave it about five minutes of a chance before moving on. If I recall correctly, the VI integration was a shareware (i.e. not free) plugin, and the Rails support felt too much like a simple Eclipse plugin rather than a core part of the IDE. I think if I had been an Eclipse user originally (as opposed to an IntelliJ user), I might have been ok with RadRails.
Next came Borland's chance: 3rdRail. I really got excited about this for a few minutes. Actually, it was a few hours. But then things broke. There were lockups and the occasional crash, and some of the navigation features seemed to have kinks that were not yet worked out. Granted, I was using one of the very first trial releases, but I sure was not going to make the $400 bet on a license that they would fix these bugs quickly enough for me.
I moved on to my favorite ol' mule of days gone by. IntelliJ: the pride of Czech Republic. I had read about their Ruby plugin a while back and thought it might be nice to try. The IDEAVim plugin had served me nicely in the past, so I knew I could have my VI keybindings easily enough. However, when I tried to install the Ruby plugin, I needed a newer version. The newer version ran slowly on my MacBook Pro, and it was going to cost me an upgrade fee to use it once the trial ran out. I tried the Ruby plugin anyway (with the trial version), and it worked all right. I was able to run my code in IntelliJ, although I didn't get around to debugging it. My main objection was that the plugin felt too much like a plugin. I couldn't forget that I was using a Java IDE to write Ruby code. Besides, I didn't want to spend the $100+ to upgrade to the newer version when it seemed like just yesterday I had spent $250 for a professional license.
I gave up for a while after trying all of these. I resigned myself to the possibility that I might always be debugging my Rails projects with "puts" and logger.error. Then my officemate mentioned a new NetBeans release. I was skeptical, but so brimming over with cynicism about Rails and TextMate that I gave it a try. I was desperate for something to come to my rescue.
I haven't looked back since. There were so many things I instantly loved about it:
- The error detection and suggestion saved me time immediately.
- The debugging actually worked and was quick!
- I could easily control the scope of Find In Project.
- Many of the shorcut keys were so similar to TextMate that I had them memorized before lunch.
- The jVi plugin worked well and had the most complete vim emulation of any I've encountered so far.
- The Subversion support was nearly perfect.
- The code completion and popup documentation were snappy and easy to use.
- Built-in plugin management and generator wizards meant less time typing commands in a console window.
There is certainly room for improvement: Java looks stupid on the Mac (I tried the substance plugin but found it uglier in most configurations); it is not as fast as a native app would be; the Go To File functionality could be quicker (and allow for spelling mistakes); it would be nice to be able to run script/console inside the IDE. But for now, the pros completely outweigh the cons. For something like my GPX gem, where unit tests are important and I have no "Shift-Reload" concept for seeing if something is working (as in Rails projects), it is proving to be indispensable.
Sorry, comments are closed for this article.