Aptana Studio [Tech Review]

Aptana screenshotA few days ago, I reviewed the web content development software called “Quanta Plus”, and had mentioned an upcoming review of another development application aimed more at doing real coding.

That program is called “Aptana“, and is based on the Eclipse development environment. It is absolutely terrific for doing web development.

If you’re at all acquainted with Eclipse (commonly used for Java, C/C++, Python, and many other languages), the interface of Aptana will feel very familiar; With the exception of some very minor cosmetic changes and a few plugins / features, the original Eclipse interface is mostly conserved.

I happen to use Aptana mostly for PHP development, but I know for a fact there are Ruby-on-Rails, Python, and other web-language plugins you can load. When you first load the software, it will walk you through the plugins manager, where you select which server-languages, JavaScript frameworks, and any other plugins (subversion / git integration, for example) you wish to load. This window will actually display every time you open Aptana until you uncheck the box in the dialog window. :) It’s super easy to install those plugins though — just check the boxes and click OK; the software handles the rest.

Getting started is just as easy — create a project, determine where you want to save it and what type of project it is (if you’re using a specific language, this is typically where you would select that) you intend to use for it.  That’s it. Adding files is just as easy, a simple right-click “new file” and specify what type of file it is.

javadocThe real beauty in Aptana is the aspects it shares with the Eclipse framework. Creating PHP classes is so handy — need an abstract class? deriving from another class? Want to create method stubs for inherited methods? Apply some interfaces? It’s all configured in a single screen when you add a new class to a project. You can use JavaDoc style coding (typing /** immediately before a method, and then pressing enter, will auto-generate JavaDoc-style commenting), and not only that, but any time you reference that specific method, those JavaDoc comments will show up!  This gets real handy when you start dealing with multiple levels of inheritance — remembering the super-super-class methods can be a real PITA.

Linking into a CVS was a bit of a pain, and not as intuitive as the Aptana developers probably expected. I had installed the “Subclipse” plugin, to allow integration with a Subversion instance on the cloud. Problem was, I knew it was installed, but I couldn’t find any menu option or anything that suggested SVN integration. I looked in Project Properties, in the context-menu when right-flicking, in the various window menus, etc. Nothing. Only after consulting with the help documentation did I learn that I need to select “Team->Share Project…” from the right-click context menu. No mention of SVN, or CVS, or Subclipse. That was a bit inconvenient — hard to say if I would have stumbled on it accidentally or not.

Once I did finally click on that, however, connecting to the SVN server was very easy. They use “comment templates” for commit comments, which is handy, but not well-explained. (Essentially, it’s just a block of text that is included by default in any commit comment — I made mine say “Description / Known Bugs / Todo”). Aptana automatically switches you over to the “SVN Perspective” which shows a list of all files currently available in the active repository. I haven’t really explored this all that much, but it appears you can browse previous versions / commit changes, edit files, create files, etc. The “persepctive switching” aspect of Eclipse is a little non-intuitive, but very handy once you get used to it.

Another nice feature is that the editor provides a nearly-full inline function reference for pretty much any PHP function available. If you type “substr(” it will immediately pop-up with a hint specifying the arguments and what order it expects them. Veterans of Dreamweaver will find this feature familiar. Aptana also auto-closes curly braces — a bit awkward at first, but useful. The usual bevy of features one would expect in an IDE — line numbers, code coloration, and code collapsing — are all here as well.

Project Referencing is also possible. Those familiar with the Smarty templating engine will be pleased to see a Smarty plugin — PHP projects will automatically reference that engine, so integration with Smarty is fairly easy. You can reference your own projects as well. That feature may not be quite as useful in web development as it is in typical non-web coding environments (ie. Visual Studio) but it’s there if needed.

One other feature I found really cool was the integration of JavaScript libraries as well as their fancy-pants extensions. Prototype, JQuery, Ajaxian, and other frameworks are available, along with Scriptaculous, Moofx and many others. I have yet to see how tightly these are integrated, but I would imagine they have code referencing / code-completion. New “Web” projects can incorporate those libraries simply by checking a couple boxes when creating a new project.

Lastly, for those interested and with some bucks to throw around, Aptana offers cloud-hosting for projects built in aptana. The cheapest plan is $20 / month, but provides slick integration with the software and is fully-hosted. As I have my own webhost already I really don’t need this feature, but that’s still neat anyways! :)

Aptana is currently available for download, multi-platform, with both 32 and 64 bit versiosn for Windows, Linux, and Mac. It is not currently available in the Ubuntu universe repositories, but it’s a painless installation, I promise. :) Aptana is FOSS (Free/Open-Source Software) so you can grab it right away! It’s definitely worth trying out, if you do web development / coding in any open-source langauge. (A “Mono” language plugin may exist, I have not looked.)