Notes From AJAXWorld New York 2009
Posted on 06/24/2009 @ 02:35AM
I recently had the good fortune of getting a free pass to the 2009 AJAXWorld RIA Conference & Expo conference here in NYC (big thanks goes out to Mike G). Here's a brief summary of some of the highlights.
Cool Tech
Appcelerator Titanium Mobile
This is the one I am itching to play with. I had heard of Appcelerator before, but seeing how easily you can develop mobile apps with it using just HTML and JavaScript was impressive. It compiles and deploys native apps to both iPhone and Android, and even allows you to use non-native UI components that are simulated using JavaScript. The only downside is that rendering is done through an embedded WebKit view, which I'm told affects performance a bit. But time will tell, Titanium Mobile is currently in closed beta.
Ext 3.0 Core
I already love Ext JS, so I actually skipped this session. But having the core library out there ought to help spread this kickass UI library further.
SproutCore
The person giving the SproutCore JS framework demo made me say "Whoa!" out loud when he brought up a scrollable <div> with 200,000 numbered checkboxes in it (yes, you read that number correctly). I had seen containers that load elements onscroll before, but this was lightning fast; I'm still wondering how the hell they did it.
The library features a ton of UI components, cross-platform deployment (you write once in HTML/JavaScript, run a command and it spits out the results), great development tools (a WEBrick-like local development server), custom events via subscribeable()/observable() methods and more. Oh yeah, it also has great HTML5 support which gracefully degrades to use Flash for IE6.
OpenLaszlo
The OpenLaszlo platform enables you to develop your web apps using JavaScript 2.0...at least that's how the demo was advertised. To be clearer, you primarily compose your UI using OpenLaszlo's LZX tag format (XML-like), and use JavaScript to add further interactivity much like you do now (but presumably with the JavaScript 2 features thrown in). You then run a command to compile things down to a format that all of today's browsers can view. LZX tags are simple enough to work with, but still require some learning naturally. The library also isn't actively tested with IE6 anymore (I know no one cares, but it's worth a mention).
A really cool feature however is OL's animation support. It can generate complex animation using the <canvas> element with a Flash fallback. In addition, you can preview your app in the browser and actually toggle the <canvas> and Flash versions with a single click - VERY cool.
Bits of Industry Wisdom
UX, UX, UX
One thing that was drilled into my head was the importance of User Experience - not just for designers and dedicated UX people, but for your whole team. Apple and Facebook (and Microsoft back in the day) have proven that user engagement drives profitability, so having everyone in your organization putting themselves in the shoes of the end user is essential, and will drive your product to gain more widespread acceptance.
Open Source Revolution
The Enterprise is slowly opening up to open source a software paradigm, and this means many things are going to change - business models, workflows, software licensing, etc. Moreover, the widespread use of OS technologies means that competition is coming from all over the world now, and the sooner everyone jumps on the OS tidal wave, the faster they can use it to make their companies flourish.
JavaScript & AJAX Ain't Goin' Nowhere.
With HTML 5 being partially supported now, IE6 fading into the distance and so many promising tools that are making cross platform issues a little less relevant, Flash doesn't seem so big and bad anymore. It's still a great tool and will be heavily used, but the idea that it will push AJAX RIA's out is ridiculous. JavaScript is available on every desktop browser in existence, not to mention the iPhone and Android, neither of which have Flash plugins yet. But I do think we'll see a good deal of these cool hybrid solutions which use both AJAX and flash when each is appropriate.