Well after finally losing my cool and pitching in the Aptana towel I decided to erase a couple years of Eclipse finger muscle memory and start again with Netbeans.

Before I did that, I did give UNA a 10 second look and actually liked a lot of the ideas. Logical keyboard shortcuts sounds brilliant and sane, and collaborative features sounds neato, but I'm not looking for flashy new relationships at this point of my life. So, NetBeans it is!

In general, coding in NetBeans is a good experience. For the most part it feels like it's focused on helping you get real development tasks done quickly (as opposed to pie in the sky GUI generator editors that I'll never use). The best bits are the slick little things like the functionality around inserting variables in a string by typing #. It's tough to pinpoint just how these things are better than Eclipse/Aptana, but they feel nice and have me thinking that NetBeans may yet win me over.

It's definitely opinionated software though and it takes a bit of getting used to. For me at least the icons aren't very intuitive and being a new user it's obviously a pain to get my fingers on the right shortcuts. Of course that brings up the main sticking point, which is the preferences system. Ouch. (Update: NetBeans FTW! NetBeans 7 totally fixes this!!) While Eclipse's preference window may feel labyrinthine the addition of the search bar makes finding things workable. On NetBeans, there may be fewer options, but they're organized in a illogical un-searchable heap that had me cursing. Can't win them all I suppose. At least my damnable home and end keys worked without having to fix them like I did in Eclipse.

Cool NetBeans Features:
  • Neat rake task browser
  • Neat db:migration tool
  • Integrated JavaScript debugging. Wow. Haven't used it in anger yet, but it is definitely sexy.

Sadly JRuby is dead to me, so I can't comment on that. I ended up running everything with MRI instead, which seems to work fine. While JRuby is cool and looks like it's almost as fast as Ruby 1.9, if it can't do native C stuff like sphinx / image magick it's of no use to me right now.


Overall, I think I'm going to be staying here a while. Netbeans certainly isn't an extension of my brain yet, but it doesn't freeze up and the search is fast so at least I feel like it isn't working against me. It also seems to handle Git switching branches beneath it much better. Aptana would freak out from time to time and force me to refresh the entire project. NetBeans just trundles along.

Anybody know if the NetBeans for Ruby and Rails book is worth getting? OMG there's a new Neal Stephenson book: Readme.

Miscellaneous thoughts:
Help -> Keyboard Shortcuts Card Is a great idea... but it doesn't know I'm on a Mac so it just spits up the PC versions and is thus rendered less useful. Worse, it doesn't actually take into account your keyboard shortcuts! It's just a static PDF. So, nice idea, but doesn't it kind of miss the whole point?
Bookmarking. Again, nice idea, but wtf it only works within one file? Fail.
Format and save on exit. Didn't see any way to do this in NetBeans. Loved it in Java/Eclipse-land.
Link file to project navigator. Command-shift-1 is a substitute I guess, but I do miss automatic linking. It's a pain switching between partials otherwise.(Update: NetBeans FTW! NetBeans 7 totally fixes this!!)
Can't copy paste from test result window into editor wtf? Totally annoying.
Awful Awful Awful keymapping UI. Want to add a keymapping for 'goto test'? It's hidden behind one of 25 doors. Is it in the door marked Ruby? Test? Navigation? I'm not telling because I gave up. Oh and each door has a list of 20 things to scroll through. Eclipse is 1000% better in this regards.(Update: NetBeans FTW! NetBeans 7 totally fixes this!!)
Test window is braindead. Clicking on show this test failure show me where in test_process it failed. Um.. I think I'd prefer to see the assertion kthxbai. (Maybe this is just shoulda throwing for a loop)
DB Service, right click on table -> view data. Automatically does a select * from table. Not so helpful when the table has a million rows. How about a default limit 100?

Finally, here's a list of my top 17 NetBeans keyboard shortcuts.

IRB AWESOMNESS
Finally, if you've read this far I figure it can't hurt to give a shout out to two killer tips that have been making me happy:
http://giantrobots.thoughtbot.com/2008/12/23/script-console-tips
http://utilitybelt.rubyforge.org/usage.html

being able to use emacs or vi from within a irb session is out_of_control brilliant. Thank you utility-belt gods!