jquery

gist JS

Tuesday, December 30, 2008

NetBeans 6.5 vs Aptana RadRails

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!

7 comments:

Brazen said...

I haven't read the post yet, but I did read the rant against Aptana. Aptana really destroyed RadRails. In the pre-Aptana days, RadRails 0.7.2 (still available on sourceforge) was a great editor, with just a few little bugs. I moved to Aptana when they released their version of RadRails and found it to be the same bloated turd that you did (and more). So I went back to RadRails 0.7.2 for a while until I found EasyEclipse RadRails which did fix some bugs from 0.7.2 without forcing all the clutter, bloat, and extra annoying bugginess on you like Aptana does.

So I held out for a long time and didn't care much for NetBeans 6.1 either. But with NetBeans 6.5 I gave it another look and love it. I do miss the way the rake helpers, script helpers, built-in rdoc, and mongrel/webrick servers worked from RadRails though. The meat of the application - the editor - works so much smoother though, that it's worth it. I would like figure out if these other functionalities are available in NetBeans though.

Brazen said...

Also, if any readers happen to be one of the 0.01% of Ruby developers who use FlashRails, I'm working on adding NetBeans 6.5 integration the way it currently has RadRails 0.7.2 integration, for the next version in a couple months.

Brian said...

I know this is an old post, and you have probably found this by now, but have you checked out the VI plugin for NetBeans? I couldn't live without it: http://jvi.sourceforge.net.

Jeff Dwyer said...

Good call Brian. I turned a couple of the guys at the office onto the vi plugin, but after a while they just swtiched to vi ;) I think I may need to give it another go myself. I like vi ok, but the full switch is just too much of a productivity halt (albeit a temporary one) for me. It's not the code editting, it's the general search / navigation stuff that's a pain to relearn and not quite worth it since I'm not a vi editting god (yet).

Plus I'd miss the database tools. I like those.

Immanuel said...

I (only) recently moved to Netbeans, partially because of reading your post. I was very interested because you wrote

The best bits are the slick little things like the functionality around inserting variables in a string by typing #.

Now, I have been looking for how this works. Can you explain a little ?

Thanks

Jeff Dwyer said...

Hey Immanuel,
I just mean the way that if the cursor is inside ""'s and I type '#' it automatically inserts #{} and then puts the cursor inside that. Pretty std stuff, but if I remember correctly RadRails did something that I found annoying.
-jeff

clod said...

Aptana works very slow for me,
therefor i have choosen Codelobster - htpp://www.codelobster.com