NetBeans, Komodo Edit, and Bespin

Unless you are a holy crusader in the Vim vs Emacs war, you are probably less than 100% satisfied with your code editor/IDE. You may like yours a whole lot, but there are always some little things here and there than make you want to tear your hair out. If you are like me, you’re always looking over your shoulder to see if there’s something else that would scratch your itch a little better.*

I generally like a simple, get-out-of-my-face IDE that’s snappy, handles a few niceties (project-level stuff, customizable syntax highlighting, syntax checking, code folding, etc. ), and is tailored for the things I do most - Python, PHP, HTML, CSS, JavaScript.** I’ll accept autocomplete functionality only if the autocomplete AI has reached near sentience and can take a hint when I start pounding on the keyboard. It has to run on both Windows and Linux, and I’d greatly prefer it to be free and open source software.

My last trist was with Eclipse. I think it’s pretty good. It stays out of my way and is generally well-behaved. Some recent updates caused a few important modules to start screaming bloody murder, however, souring me a bit. I’m sure I could have fixed it, but I was starting to get that 6-month IDE itch anyway. Besides, Eclipse is an enormous IDE, rivaling Visual Studio in that regard. Enormous IDE’s tend to have a short life span with me. When I find I’m using gedit or Notepad++ more than my IDE, it’s time to dump my IDE. And I’ve been using both a lot lately.

Fortunately, there have been some recent IDE releases that I wanted to check out: NetBeans and Komodo Edit. I also just checked out Bespin today, so I’m including it too.

The first thing I tried was NetBeans. I was a little leary trying another Java based IDE so soon after Eclipse, but I’d read that with the 6.5 release it now supported scripting languages like PHP and Python, and the few Java developers I know seem to love the thing. I decided to give it a shot.

The first thing I noticed is the size - the PHP editor mix is a 26MB download. That sounds heavy if you’re not a regular IDE user, but that’s actually very light. Eclipse flavors generally start at 100MB and go up from there, and Visual Studio comes on enough CD’s to tile you kitchen counter. Even with the attrocious download speeds I get at work, NetBeans arrived on my desktop fairly quickly.

Start-up time for NetBeans is pretty good. Python support is still experimental, but it was easy enough to add. It’s not really mature at this point, but it’s generally good enough to meet my needs as-is. It didn’t take too long before I was ready to give it a whirl with a project I’m working on.

I gave NetBeans a solid day of work to get a feel for it. Overall, I think it’s a pretty impressive IDE. It’s intuitive enough that I could start working without going through any tutorials, which is an excellent sign. It’s responsive, and it never tried to outsmart me or covertly toss crap into files all over the place (I’m looking at you Visual Studio). It’s lacking some advanced debugging features I found in PDT and Aptana on Eclipse, but I rarely used those features anyway.

My only real problem with NetBeans were some bugs in the JavaScript syntax checking. I use a lot of jQuery, and jQuery has a lot of nested brackets. NetBeans frequently got confused, labeling sections as errors when they weren’t. Sometimes just putting an extra space in would wake up the syntax checker and fix the problem, and sometimes it wouldn’t. As I do a lot of JS work, this is a pretty big issue for me, but one I imagine they’ll fix relatively soon - 6.5 is a very new release. I’m going to shelve NetBeans and check back in on it the next time I’m IDE hunting.

Next I tried Komodo Edit for a day.

Komodo Edit is a little heavier (~38MB), but still not bad. Again, I was up and running in the amount of time it takes to say holy crap my download speed at work is attrocious x 118.

I’m smitten with Komodo Edit. It has everything I want in an IDE (circa this instant - I’m fickle). If I weren’t married, I probably would have launched myself at my monitor after working with Komodo Edit for a day.

It launches fast enough that I never thought of reaching for a text editor. Syntax highlighting is easily customized, syntax problem detection works flawlessly, and it was the first time I found code completion to be more than a hindrance. Project organization tools work well, comment and TODO handling is perfect, and lo and behold, the split-screen browser, a feature I normally chuck completely as they don’t work with all of my various AJAX calls and JavaScript libraries, worked perfectly (looks Gecko based). If I decide to join the Vim vs Emacs holy war, it has a Vi emulation mode and key bindings for both. It has lots of great code cleaning and formatting tools. In a word, for what I’m looking for in an IDE: perfect.

The only slight irritant I ran across was how it handles dragging files in from a file browser. It shows them in your project folder, but it’s really just a link to the original file location, not actually copying them in, as Eclipse would. Once I figured this out it wasn’t a problem, but looking at a folder-like layout and having files in a folder not actually in the folder is a bit confusing. I cleared my browser cache 3 times trying to figure out why an image I dragged in wasn’t showing up. Still, that’s small potatoes.

I can’t recommend Komodo Edit enough. I like it so much, my 6-month IDE itch might get pushed out to a year.

While I was writing this up, Mozilla Labs pre-released Bespin, a cloud-based text editor. It’s not what I was looking for at all and it’s a bit off-topic, but it’s interesting enough to mention in the code editor space.

It’s basically an online text editor with some really interesting aspects. They built everything from the ground up, and they made some cool choices. The text editor runs fast even with an enormous file (they demo’d a 33,000 line file, and it was incredibly fast). Right now it only edits a few things - HTML, CSS, JavaScript - but it’s alpha, and it’s also open and extensible. They built their own GUI toolkit, taking advantage of the Canvas element in HTML 5 (read: forget about IE). It’s really slick. The really cool thing, though, is how it enables collaborative coding. Two people in two different user sessions can be view and edit the same file simultaneously - as soon as one makes an edit, it appears in the other user’s browser. It even updates the other person’s screen when code is highlighted. Very, very cool stuff. I’ve put the demo video for Bespin below. It’s very early in the project, but I see a lot of potential here.

Introducing Bespin from Dion Almaer on Vimeo.

*This same kind of thinking is why my number of hands stays constant while my number of guitars keeps increasing.

**For .NET I fire up Visual Web Developer Express and just start swearing.