Review of Appcelerator platform for Rich Internet Applications (RIA)

A friend asked me to review a new platform called Appcelerator (http://www.appcelerator.com) to find out if this platform offers any benefits for my own software development. My first impression of the Appcelerator website is great. The site looks professional and very Web 2.0-oey. However, it doesn’t quite look like an application platform, more like a business website selling a commercial product related to software development.

Appcelerator is a fully-integrated platform for building RIAs (Rich Internet Applications) and is powered by a bunch of capabilities, which I will describe in more detail.

Message Oriented Architecture

This part of the framework seems to be the most abstract for me, as I was expecting a description of a framework. Rather, the Message Oriented Architecture talks about Appcelerator applications that communicate via messages. This architecture works with a message broker and service broker that work with Java, Ruby, PHP, .NET, Python and Perl. I’m confused by the example given on the documentation page, as I can’t see how this example extends to the usage of this architecture in an application. To be quite honest: This is where Appcelerator kinda lost me. But moving on.

Web Expression Language

The goal of this language is to make the visual and interaction design relatively simple. It works with several custom “set” attributes (control, behavior, layout, theme). Appcelerator provides a number of nice features for different user interactions. As I work with JavaScript and jQuery, I’m hesitant to learn this new language, as I’m not sure what additional features I’ll get out of it.

Widget Framework

Widgets are small applications based on JavaScript. There’s a number of existing widget created by the Appcelerator team. The platform is extendable and developers can create their own widgets. Speaking in Drupal terms: widgets are modules that extend the core of the Appcelerator platform.

Conclusion:
On the plus side, it’s great to see that the Appcelerator platform technically works with all programming languages. Being a Drupal developer, I am comparing Appcelerator to Drupal, so the programming language compatibility isn’t that relevant for me, as I’m more interested in the feature set and how easy it is to use the platform to build applications.

In order to build an application, I really appreciate the fact that Drupal offers a platform with all core features I need: nodes/content, categories, users, application-based permissions. Rebuilding these key elements for an application usually takes the largest chunk of time. I don’t see how the message oriented architecture adds to building that “core” of any application. I like the Web Expression Language for what it is: A language that gives you nice user interface effects. I’m skeptical, as this language doesn’t seem to extend the “feature” set of jQuery. The concept of an extendable platform that works with widgets is great, but the number of existing widgets is small compared to the availability of Drupal modules.

The main reason why I’d chose Drupal over Accelerator is the fact that while I was doing some research on Google, I hardly found any documentation, code snippets or developer discussions about Appcelerator other than on their own sites. As a developer, it’s crucial to me to be able to learn from others. The main point of choosing Appcelerator is to develop applications faster. While this might be true for adding features that are currently covered by an existing Appcelerator widget, I am skeptical if Appcelerator would contribute to delivering a rich application faster considering a potentially steep learning curve and little online documentation.