Wednesday, March 12, 2008

Rails IDEs: NetBeans vs Apatana RadRails, take 2

If you're like me, you stopped using Aptana RadRails right around the point they went closed source and started rolling with NetBeans instead, which at the time was an arguably superior IDE that was also free, cash-wise. I guess most of us figured that RadRails wouldn't be getting any serious love after it's acquisition / whatever.

Well, let's time-travel to March 11th, 2008, where, suprisingly, Aptana RadRails 1.0 was released.

This is completely subjective opinionated review of NetBeans + Ruby vs Aptana RadRails, free version vs free version. I don't particularly care about what's a part of Eclipse or what's all Aptana, FYI, so take that in mind. In fact, I'm writing it up as I use it on a project right now.

Some stuff I like about Aptana RadRails:
  1. * Faster than NetBeans. Waaaay faster. Loads faster, runs faster.
  2. * Less memory usage than NetBeans.
  3. * Faster, "locks up" less than NetBeans. Also, no "Mystery of the Disappearing Cursor / Caret" issues.
  4. * Visual unit test results.
  5. * Immediate window during debugging! Wah-hoo!
  6. * Error checking puts a red 'X' next to files that have errors in them. Baffo!
  7. * Subversion interface is better than NetBeans by a long mile. It's Subclipse, but whatever, it rocks.
  8. * Sweet toolbar menu that lets you jump to view / test / model / controller associated with a file at the click of a button.
  9. * "Outline" view is a bit better than NetBeans.
  10. * Tag matching in HTML files works better than it does in NetBeans, which often just gives up without warning.
  11. * Love the Servers view.
  12. * Love the Rails Console stuff.

Some stuff I hate about Aptana RadRails:
  1. * Migrations suck. NetBeans gives you a killer database migrations context menu where you can select the version number for quick up/down migrations.
  2. * No clear way to import an existing Rails project (I only figured it out because I had used Aptana RadRails at one point in the past).
  3. * Immediate window during debugging needs some serious, serious polish. Seriously.
  4. * Have to press a button and wait like 20 seconds before the help text for a rake task appears. Would rather seem that text inline or somewhere easy to glance over.
  5. * Have no idea how the Rails Plugin tab is supposed to work. Looks pretty, though.
  6. * By default, Ruby Explorer view shows active gems... clutters up the UI quite a bit when you're dealing with a non-trivial project.
  7. * NetBeans has way better string editing support. Highlight a string in NetBeans and press " and the entire selection will be surrounded by quotation marks (foo bar --> "foo bar"). Highlight inside of a string and press # and you'll get insta interpolation ("foo bar" --> "foo #{bar}").
  8. * Some syntax highlighting isn't as nice as it is in NetBeans. Navigate to the end of a paraenthesis or an "end" statement; both do highlighting in NetBeans, but Aptana only handles the former. That's a pain when you're trying to sync up "end" statements after a long night of work.
  9. * Doesn't open up files generated by script/generate by default, which is annoying, because why wouldn't I be ready to edit the files I just generated?!
  10. * Still a really annoying issue of certain lines being highlighted in gray for no apparent reason.
  11. * In general, colorization inside of Aptana RadRails sucks. Out of the box, NetBeans is much better at this. NetBeans is easily the best if you go for the optional ruby colorization plugin recently offered. I'm poking through syntax coloring options right now for RadRails 1.0 and it doesn't seem like there's any way to extensively customize it into something less sucky.
  12. * Error checking is hit-or-miss. Doesn't seem to refresh fast enough -- if I make a modification to a file that causes an error and quickly fix it, occasionally the error tag never goes away -- or it changes to report an error on perfectly valid syntax.
  13. * I just got a freakin' exception as it tried to perform code completion ("Content Assist"). Man, 3rdRail did that shit too. SWALLOW YOUR EXCEPTIONS. Log them somewhere or something. I was busy coding something when you the exception popped up. Not cool.

That's about it.

RadRails is OK, but I think it needs polish in general. As I understand it RadRails 1.0 was a one-man mission; not trying to harsh on the guy's work, just spittin' it as I see it.

I've gotten so used to NetBeans 6.0 and its creature comforts that I find coding in Aptana RadRails to be a real style-cramping exercise (I just finished up what I was doing in RadRails so I could switch back to NetBeans just now).

Your mileage may vary.

If you're using NetBeans 6 for Rails development, seriously consider getting the "Extra Ruby Color Themes." The Dark Pastels theme is a winner.


Christopher said...

Hi Arron,
Thank you for the review and comments on RadRails. I've taken your suggestions and added tickets to improve the project. I also have some questions and comments about the points:
#3 Do you have any particular suggestions?
#6 is a filtering option. You can filter out libraries from the view by selecting that filter under pull down menu in the upper right of the view.
For #8, RadRails should highlight/match ends with the code block opening for them.
#9. We turn the script/generate output into links that when clicked open the file. What files should we open automatically for them?
#13. Do you have the stack trace so I can track it down?


tor said...

Hi Arron,
Can you give some more information on #10 (Tag matching in HTML gives up), and #9 - Outline view -- what is missingthere?

Regarding #1 and #2 (NetBeans is slow) - can you give some more details? Is this during code completion, startup, or something else? Have you tried 6.1 beta - the startup indexing should be completely gone for 2nd and subsequent starts now.


Bet's On said...

Wow, I got replies from both developers of both IDE components. That's trippy. Thanks for coming by. =D

I'll address both of you in one comment, like the dexterous man I am.


#3: It's kind of clunky to have to do the select-to-execute, then clear window after you get results... it doesn't flow too well, I guess. It would be nicer if it had an interface like irb -- already familiar, works good.

#8: OK, I see... if you're at the "end" of an end block (the caret is behind the d) it won't highlight the match -- only if the caret is inside the word "end" does it match. That's kinda unusual, or am I the only one that puts the caret after the symbol I want to match? It works for ()'s like that.

#9: If I'm generating a model, then that file should probably open by default, as well as the migration for it. I'm not sure I'd generate a model unless I was ready to start editing those files, but someone may have a better use-case for that than me.

#13: Will attach to RadRails ASAP ticket system.


I haven't tried 6.1 beta yet... good to hear the speed issues are being resolved.

#1/#2: mostly during start-up (it appears to be doing some kind of indexing that slows everything down) and when it tries code completion -- sometimes CC is a snap, sometimes it slows things down quite a bit. I notice CC slowing down when I have a model with a lot of members.

#9: (referring to navigator) When you're in an RHTML file and you've got ERB's %lt;% %> everywhere, html elements are nested, but ERB elements are in the tree on their own, even if they are nested in the HTML. Nothing wrong with that... just doesn't follow the flow of the HTML.

In code view, RadRails also lists local variables in their outline view, making it real easy to key in on where the local was created in a code block. It's an easy way to instantly get to where you're going.

#10: It normally happens when writing HTML around ERB's <% %> blocks, but closing the file / reopening the file seems to fix things.

Hans A. said...

Thank you for the good comparison.
I've switched from RadRails to NetBeans recently and I'd like to add two more points to the list:

a. RadRails has a major problem with brackets [] when editing Ruby files: the editor freezes for seconds when you try to enter brackets. It seems to be reported as a problem but I havn't seen any solution or workaround so far.

b. The stylesheet editor in NetBeans is awesome while that in RadRails offers hardly more than block comments. Or have I missed something?


Cory said...

GREAT comparison. I think you were fair to both IDEs. As a newbie to Ruby and the Rails framework, I think I'm leaning to a more polished product and it seems that NetBeans fulfills that better than Aptana/RadRails.