Review of Aptana Studio 3
Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
With the emergence of HTML5, there is a strong need for HTML5-aware IDEs. The California-based company Aptana has stepped up to the plate with version 3 of Aptana Studio. Touted as a "professional, open source development tool for the open web", I thought that it was high time that I put it through its paces and give it the once-over. I am happy to say that I was delighted with what I found.
Third Party Products
Aptana Studio relies on a few third party tools, including:
- Sun/Oracle Java 1.5.x or later is required on Mac and Linux. However, the Windows installer includes a compatible version of Java.
- Git is required because it is used internally to update your scripting environment. On Windows, Aptana recommends PortableGit from msysgit because it has a bash shell for executing commands. But don't bother hunting it down; if you don't have msysgit installed, Studio 3 will offer to install it for its own internal use.
- If you intend to do Ruby on Rails development, you will also need to set up your Ruby and Rails development environment, as the installer won't set that up for you.
Features of Aptana Studio 3
HTML5 Savvy Intellisense
Intellisense is one of the main reasons to use an IDE for web development. When editing HTML files, Code Assist not only displays a list of matching tags, but it also includes graphical information about the level of support for each element in the major web browsers:
Running Aptana Studio
When you first launch Aptana Studio, you will see a blank workspace, as shown below. Unlike other IDEs, the interface comes with a black background by default which is supposed to be easier on the eye than the standard white.
There are several ways to create a new project. You can do one of the following to trigger the project creation wizard:
- Go to File => New => Project…
- Click on the new project icon located on the main toolbar (see below)
- If you have no current open projects, there will also be a "create project" icon in the App Explorer.
Aptana Studio supports the following project types: PHP, Ruby, Rails, .Net, Titanium, PyDev(Python, Jython, Iron Python), static/dynamic Web sites, and more…
Depending on the type of project decide to create, you will need to fill in the appropriate fields and hit finish to create the project. The project will then show up in the App Explorer.
If you are typing the name of an object (e.g. "document"), when you type the period (".") to call either a method or access a property for that object, Content Assist pops up a small window displaying the available methods and properties for that object (shown below). You can also type ctrl + space to access Content Assist at any time. You can also use Content Assist with your own objects and functions. For example, when you call a function that you have already coded, Content Assist can help you with parameters and return types. To use Content Assist with your own code, you will need to document it using /** */ tags.
It used to be that FTPing your files to the Web server was all that was needed to deploy your website. Not so with modern web apps. For those, it helps to have a good deployment mechanism in place. Here too, Aptana Studio can be of service. It supports Capistrano, Engine Yard, Heroku, as well as the more traditional FTP, SFTP, and FTPS Deployment.
Of course, any IDE worth its salt has to have some kind of version control. Aptana Studio has built-in support for no less than five version control products, including Git, Subversion (my personal fave), Mercurial, CVS, and Perforce.
At the file level, the Quick Diff feature highlights the line numbers for all lines of code that have had changes made since your last save, which helps to track your changes as you code. Right-click in the gray margin at the left of the editor and select "Show Quick Diff" from the context menu to toggle the Quick Diff feature on and off. The General tree in the Preferences window offers some options for the code change highlighting feature as well.