Tuesday, September 18, 2007

An hour with CodeGear's 3rdRail product

I've been waiting for this one to come out -- sort of. It's been on my periphery, but I hadn't kept up with it until I got an email in my inbox touting the release.

First impression: weird name. Not very Google friendly, either.

Second impression: Looks like Aptana / RadRails. A lot. Mostly because they're based on Eclipse, but still.

So, I downloaded it about two hours ago, got it set up and everything -- they ask you to register for a trial key, but the software apparently will run for 5 days without a trial key.

I managed to slough through the whole 21 minute web video of 3rdRail in action before-hand. A lot of impressive stuff, but a few telling signs when the narrator quickly pages away from 3rdRail's RHTML editor. There's a good reason for that: the RHTML editor, like RadRails by default, is really quite awful. More on that later.

So, I've got the IDE cracked open in front of me. All Rails IDEs can handle the newbish "create project from scratch" scenario, so I ignored that completely and went straight to File --> Import. They're clearly expecting this: there's a wizard for importing an existing Rails project into 3rdRail with a few clicks.

On the initial run you've got to set up your Ruby interpretor, which should have been a straight-forward process (check c:\ruby\ first please, sheesh), but wasn't. Setting up the Ruby interpretor also required me to set up the "Interpreter system libraries," which it should have been able to parse from the Ruby installation directory, but didn't, so whatever, k-thx. It doesn't tell you exactly what it means by that, either, so I just picked some random directory and hit 'OK.'

I went back to check on it a few minutes later and the system libraries grid was filled with all the correct values -- apparently auto-detected after I clicked on the 'OK' button. Whatever.

The project import process is dog-slow: apparently 3rdRails does something "special," and by "special" I mean they need to consume about 100MB and waste 5 minutes before making the project available.

The IDE is pretty impressive at first glance: they've got a Rails-centric view of the project, where everything is neatly tucked away; you've got "layouts" (all your layouts), "models" (all your models), etc. Kind've like the raw folder structure, except inside, say, Models, you can drill down into a particular model and get all sorts of good information, like a model's attributes, the model's members, its associations and aggregations, too.

When you jump into a model / class, on the right pane there's an "inbound" and "outbound" section. Outbound shows what attributes / models / etc this model references, and inbound shows what attributes / models / etc in this model is referenced externally. When it worked (once), it worked great.

Unfortunately, this feature appears to be very buggy -- I've got a perfectly valid production site running on Rails. The 3rdRails kept vomiting up the most basic error of all: "java.lang.NullPointerException."



Check your freakin' nullables.

I get the error every time I "click through" source code, which makes it pretty hard to use the IDE.

On the upside, code completion is pretty good.

On the downside again, RHTML editing is crap.

No joke: you've basically got templates for common Rails idioms, but that's it. It's no good -- I gotta keep my head in HTML as much as I have to keep it in Ruby, so what they're giving me is just half the tools. But, surprisingly, 3rdRail's CSS editor is actually OK. Not sure what's up with that.

Aptana's RadRails ships with two editors for HTML: the default (god awful) RHTML, but also the most delicious HTML editor I've ever used in a free product. Change the default editor for .RHTML files to Aptana's, and you're kickin' ass and taking names. The CSS editor is, as well, pretty sweet. I would totally recommend stealing their HTML editor and integrating it into 3rdRail instead of what they're using right now. Take Aptana's CSS editor too, while you're at it.

Overall, it stacks up pretty fairly against Aptana, except for one problem: price.


Too much.

I would pay maybe $59.99, $69.99 for this software. It'd be a different answer if Aptana / RadRails wasn't available, and it is, and that's the problem - aside from Code Completion, Aptana has most of 3rdRail's touted features, all for the wonderful price of "free." That pushes Aptana into the "good enough" category for most developers, of which I am one.

Anyway, that's it. If anything interesting crops up before the trial times out, I'll probably blog about it in furious rage.

Back to hacking.



Joe McGlynn said...

Thanks for taking a look at 3rdRail. We had a bug slip through, which you've run into...sorry about that. I've posted in a number of places how to work-around this bug until we release a bug fix update in a few weeks (http://grabtherail.com/forums/viewtopic.php?f=10&t=33), basically just turn off the "views" in the dependency editor.

We'll have a feature update in Q4 with some across-the-board improvements and some completely new features.

In fact, the pricing probably needs some explanation. The $299 includes a perpetual license and a update subscription. We have an aggressive plan to add features every three months, which will be available to everyone on active subscription.

Bet's On said...

Thanks for the update, Joe.

The $299 sounds more palatable when you put it that way.

I'm eagerly waiting to see what the Q4 release contains. :)