CodeGear Releases Ruby/Rails IDE with Intelligent Completion of Dynamic Methods
Code Navigation: 3rdRail assists rapid and efficient traversal of application structures ... It understands how a RoR application works so developers only have to look at the area of their code relevant to a given selection.
CodeGear Commanders: CodeGear Commanders provides a quick interface to all of the power of a RoR command line for running code generators and performing other tasks, and integrates it into the IDE. Command output is hyperlinked, so that clicking on any generated file or folder will open that in the IDE.
Intelligent Code Completion: 3rdRail’s code completion includes several powerful, integrated features for method completion, parameter completion and syntax checking. 3rdRail is able to understand the context of what a developer is doing and predicts likely expectations based on conventions and semantics. Rather than simply produce a pop-up list of hundreds of choices, 3rdRail shows the right ones. 3rdRail’s code completion includes methods that are created dynamically at runtime are included.
Refactoring: 3rdRail contains technology specifically for RoR that allows developers to improve and simplify application design. With the refactoring tools in 3rdRail, developers can reorganize their application code without changing the results.
InfoQ sat down with CodeGear Vice President Products and Strategy Michael Swindell and 3rd Rail Lead Joe McGlynn to discuss the release. They noted that CodeGear has seen a rise in interest in Ruby on Rails from commercial and enterprise developers. This leading indicator lead to the development of 3rd Rail. The project was started with each of the development team members immersing themselves as RoR developers. During this process they identified a number of pain points for the beginning RoR developer.
InfoQ then asked about the 3rd Rail support for the increasingly popular JRuby:
The main product installer can optionally install versions of Ruby, Rails, MySQL, and Interbase. Supported platforms are Windows, Linux, and OS X. Developers can also configure they IDE to use a previously installed version of Ruby or JRuby. The target platorm can be different per project.
The conversation then shifted to the ability to use 3rd Rail as a pure Ruby IDE. Similar questions have been raised in respect to Netbeans. McGlynn responded that the first step in making a great Rails IDE was making a great Ruby IDE. Ruby support includes editing, a debugger, embedded IVR, and gem support.
InfoQ then asked about the open source foundation of 3rd Rail. McGlynn responded:
For 3rd Rail the development team started out with the Eclipse Platform not IDE. There are no Java views lurking around. The team looked at the foundation provided by RadRails and DLTK ultimately deciding to make extensive use of DLTK. CodeGear has found the DLTK team a pleasure to work with and has two CodeGear employees as DLTK committers. In terms of the balance between proprietary code and code submitted back to DLTK, anything Ruby related is submitted back. Specialized tooling for 3rd Rail is kept as part of the product.
One of the more innovative features of 3rd Rails is a command window that is project aware. Swindell discussed the reasoning for its inclusion:
Rails makes extensive use of command line scripts. Commander keeps this power while bringing into the IDE in an intelligent manner. Enhancements over a shell include include the ability to CTRL+Space complete commands and options. Commander supports all Rails commands, Capistrano, and Gems.
The conversation then turned to code editing and navigation. McGlynn noted that Rails does a lot of magic under the hood. CodeGear wanted to make this visible to users during editing and navigation. As a result the editor supports code completion of dynamic methods such as finder methods. The navigation tools understand and follow the Rails dispatch path. CTLR+ALT+N will navigate to the next dispatch point. There is also a call hierarchy view in the editing perspective.
Finally Swindell was asked about the competing Netbeans IDE's Ruby/Rails support:
3rd Rail has been build from the ground up as a pure Ruby/Rails IDE. 3rd Rail includes a number of features not found in Netbeans such as code completion of dynamic runtime methods.
3rd Rail will be sold with a license that includes a year worth of updates. Features such Rails specific debug options are already slated for release in Q4.
Is it worth the 299$ ?
You'll have same eclipse based interface (that I dislike but that's a personal view) and ~same features. Of course every single small details are important when talking about an IDE so you should have a go on it by yourself.
For me the answer is that it's not worth it (today) next to free competitors.
Also the quote "3rd Rail includes a number of features not found in Netbeans such as code completion of dynamic runtime methods". Number ? Can you number them indeed ? "A number" is next to 1 (even if that dynamic completion is a cool feature that NetBeans should include).
Fact is Borland used to innovate @Java old times with JBuilder, now they started the race after everybody (it's never too late though) and are coming with not such an innovative IDE.
Re: Is it worth the 299$ ?
I'm not sure what's in Netbeans, but I'm sure you'll find more than one thing that's in 3rd Rail.
You make a good point on price though, what are you paying for? If you consider that open source and free alternatives cost so little to implement the extra you're getting with Borland's products is probably not worth the price. Code Gear may have increased the support effort, but historically Borland has struggled to support its products in the past and has left many developers very dissappointed. I would recommend to Ruby developers that they keep an eye on Code Gear's progress with this IDE but to wait a while before splashing out with the cash.
Re: Is it worth the 299$ ?
After seeing the screenshots and the feature matrix of 3rdRail (weird name, though), I can say the 3 things I find most useful are the code navigation, code completion and command line features.
Being a non-Ruby developer by day, I appreciate very much the possibility to have a logical code view (Models, Controllers ec.) without scrolling around in subfolders. Also the ability to just go to the definition of a class/routine is very nice, as I don't know very well the standard and third-party libraries. Plus the inbound/Outbound dependency viewers are really helpful.
So, to be honest, if I would have a commercial project in sight I would go for it.
For long time, hard-line, Ruby/Rails developers, maybe some more advanced productivity features would help ... Hopefully CodeGear will give back something to the Rails community too, not just to Eclipse/DLTK.
Re: Is it worth the 299$ ?
Yeah those 3 (code navigation, code completion and command line features) are important, and RadRails should maybe improve 1st one, concerning the other 2 I think they are available on RadRails (not as selective) ? Anyway those 3 are for sure supported by NetBeans (that you should try if you didn't yet)
Martin Thompson Jul 27, 2014