In this post, InfoQ discusses the Appcelerator platform with Matt Quinlan, Vice President of Community Development at Appcelerator. Quinlan highlights the strengths of Appcelerator and some of its common uses.
The Appcelerator site provides a detailed answer to the question, "What is Appcelerator?"
Appcelerator is a fully-integrated RIA + SOA platform.
Appcelerator combines the usability benefits of Web 2.0-style, Rich Internet Applications (RIAs) with the reusability and flexibility of Service Oriented Architecture (SOA). This combination results in a "client/server for the web" development style...
After understanding the "What," InfoQ asked Quinlan, why software professionals should consider using Appcelerator:
Why? To see that it is possible for mere mortals to build rich internet applications (RIAs) based on Ajax, not just development teams composed of PhD carrying JavaScript ninjas like Google!
InfoQ inquired about the Appcelerator expression language:
The Web Expression Language is really just an expansion of the JavaScript event model used in traditional HTML (with slightly altered syntax). On some condition do some action. For example, you might have onClick="some javascript" as an attribute on some HTML element. With Appcelerator's web expression language you would have on="click then script[some javascript]". However, the list of conditions and actions available to the web developer with Appcelerator is much larger.
Conditions:Actions:
- DOM events (click, focus, blur, change, mouse events)
- key events (up, down, press)
- other (history, drag/drop, selected, resize, iPhone orient, sortXYZ)
- subscribe to custom message
This allows a developer to address event handling, DOM manipulation, and Ajax (via the custom messages) all in the same consistent manner that is extremely similar to how they address events (e.g. onClick) today.
- Scriptaculous effects (show/hide, fade, move, scrollto, drop, grow, highlight, morph, ...)
- set element value (static, dynamic, bind)
- set CSS class or attribute
- execute custom JavaScript
- publish custom message
To understand the messaging that enables our UI decoupling and Ajax see first page of http://doc.appcelerator.org. Think observer pattern & publish/subscribe rather than API calls.
InfoQ asked about deploying Appcelerator applications:
Appcelerator-based applications can run out-of-box in any JavaScript enabled web-browser (no plugins required). Simply include the appcelerator.js file in your HTML. We like to say, "We write lots of complex JavaScript so you don't have to". We support service-bindings for all six major web development platforms (Java/J2EE, .Net, Ruby, PHP, Python, Perl).
Then, InfoQ followed-up, asking Quinlan if an SOA backend is required:
No, our client-side technology (web expressions, widgets, client-only messaging) can be used with traditional non-SOA-enabled web architectures. This is important to allow developers to adopt technology at their own pace (we call this the "crawl" stage). However, we strongly encourage developers consider building their web applications as service oriented UIs (SOUIs) that are essentially true web clients (built of HTML, CSS, & minimal JavaScript) that interact with the server only through asynchronous service calls (we refer to this as the "walk" stage). You don't have to generate your UI from server-side scripts anymore (see http://www.appcelerant.com/lipstick-on-cgi.html).
Quinlan then shared about Appcelerator Google App Engine support:
We provide a handy little swiss-army knife tool called "app" (similar to Ruby's GEM command) which allows us to many things including deploying your Appcelerator app directly to the Google App Engine cloud. You can also publish assets to the Amazon S3 cloud as well from the command.
http://www.appcelerant.com/running-appcelerator-on-the-google-app-engine.html
InfoQ asked Quinlan what else InfoQ readers need to know about Appcelerator:
The publish/subscribe messaging paradigm is EXTREMELY powerful and enables clean decoupling of user-interface elements from each other, and from the serverside. This architecture makes Appcelerator-based applications well-suited for offline (queue the messages, then flush), for testing (stop imitating clicks and just record messages... hint: they work cross-browser!), for prototyping (build fully functional prototypes with zero server code by mocking the server-side service in HTML), and for so many other concerns of web developers.
Shortly after InfoQ.com interviewed Quinlan, Appcelerator announced a license change from GPL to the Apache2 license. Appcelerator CEO Jeff Haynie anounced the change in his post "Appcelerator announces licensing changes; bye-bye GPL."
We've talked and listened to the community a lot in the past 6 months to understand how people want to use Appcelerator, how they are presently using Appcelerator and what types of things they would like to do in the future. We've clearly heard a very resounding theme: GPL is not the right license from a community perspective because of the implications that it brings to redistribution, especially as it relates to building web applications and how they are incorporated and downloaded by a web server. While we initially considered attempting to clarify our position on the GPL as it relates to these special legal concerns - I felt like we would essentially dilute the intent of the GPL license and that would defeat it's purpose. This was a clear indication that our license didn't match our business and technical goals.
Learn more about Appcelerator at: http://www.appcelerator.com/