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 ({{}{}{}){)}}} looking stuff. 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.

This entry was posted in Code and tagged , . Bookmark the permalink.

14 Responses to NetBeans, Komodo Edit, and Bespin

  1. Tor Norbye says:

    The NetBeans JavaScript error you’re describing is issue

    http://www.netbeans.org/issues/show_bug.cgi?id=154179

    which was fixed in 7.0. There’s some other useful JavaScript improvements in 7.0 (see http://blogs.sun.com/tor/entry/netbeans_screenshot_of_the_week5 and http://blogs.sun.com/tor/entry/netbeans_screenshot_of_the_week4 )

    And for PHP there’s even more improvements in 7.0 – see the PHP NetBeans blog:
    http://www.netbeans.org/issues/show_bug.cgi?id=154179

  2. John says:

    You sound like my long lost brother! I just started using Komodo Edit too, and so far it seems great. I didn’t even realize they had a FOSS product until I was browsing around their site. I told them they need to advertise it more to rope people into their IDE version.

  3. Some recent updates caused a few important modules to start screaming bloody murder, however, souring me a bit 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.Net Beans 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.

  4. I am using preprocessing and each time I start netbeans it automatically comments out the code inside my proprocessing statements.
    anyone know how to turn this off?

  5. Damn I love Netbeans though – not sure I can face another learning curve at the moment, especially when I have basically no complaints about Netbeans

  6. I think your designing work to this is really great .I really appreciate your work to this site.So thanks for it.I hope you can continue this type of hard work to this site in future also..Because this blog is really very informative and it helps me lot.

  7. Excellent write up. Thanks a lot.

  8. Hendy Irawan says:

    EXCELLENT writeup of different IDEs, Fuzzy.

    Yes I agree on most if not all of your points. Especially on Komodo Edit, it’s the one I can consistently use on both Ubuntu and Windows. It’s much heavier than Notepad, but it’s more of a joy to use than Eclipse for editing most files (of any kind, be it simple text files or source code).

    NetBeans is getting better every release (have you tried NetBeans 6.8 ?)

    I try to hate Eclipse, but unfortunately it’s the one that gets the job done (at least for me), especially SpringSource Tool Suite for Spring Java dev.

    I hope Mozilla Bespin project continues and matures… I’d like to use it in practical day-to-day development. Seems cool. :)

  9. Adam says:

    Well, we have all the new versions, and we have bugs I’m sick of. First – Eclipse. New version is 6 times slower than the old one. Is it better? I think not. JS syntax checker is USELESS. Try to load jQuery. It will show hundreds of “errors”. Source tree (I cannot code without it, in complex AJAX applications I would be permanently lost) almost don’t work. Code completion is buggy, slow as hell and generally sucks. Eclipse has died. I will never ever use it again. Then – NetBeans 6.8. Looks cool. It has very advanced code completion, super cool source tree, it’s pretty fast, understands JavaScript well but… It has of course some very annoying bugs. First one in PHP code completion. It seems not to recognize ‘self’ keyword inside classes, at least when self is used, it doesn’t show completion for static properies. That’s engough for me to dump it. Well, I found also other bugs, in CSS editor. Then – Komodo Edit. No source tree! Wait. There is a plugin. Buggy as hell, doesn’t work with JavaScript. But wait, it’s written in JavaScript so… I fixed it. Cool, but still one thing is badly broken: sometimes code completion breaks. Nothing helps except purging all caches and recreating the project. It doesn’t happen all the time, but it shouldn’t happen at all.

    For now I use Komodo Edit, but still I hunt for something better for LAMP stuff. Why can’t they just make an IDE with no new features – just without those bloody bugs :) Even Komodo IDE isn’t much better – has the same bugs as Edit. I reported those bugs, we’ll see if they fix them.

  10. Bespin is relatively new, and quite frankly there are a number of bugs
    that kind of need to be ironed out. It doesn’t have enough flexibility
    yet to be integrated in a nice way to be able to work on a project in
    the way I’d like to.
    ;) that doesn’t mean I counted it out though. jDevCloud (the ruby app
    I’m working on) is going to be using one or two different editors for
    syntax highlighting or whatnot while editing. What one you want to use
    can be picked by your own preference, and in the future I intend to have
    bespin as one of those options when it’s setup so that you can integrate
    it’s editor into other systems.

  11. medical ppo says:

    I used netbeans to write my GUI, and now I want to transfer it to jGrasp as this is the editor it should be in. Any ideas?

Leave a Reply

Your email address will not be published.

*


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>