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.
Web Development Tools: Mozilla browser, JavaScript debugging, Document Object Model inspection, request monitoring and other tools are embedded to help developers edit and manage all website artifacts.
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.