Ajax: The State of the Art with Dion and Ben
This morning, I added Dion and Ben's talk titled Ajax: The State of the Art. Below are my notes from the event.
Today's Ajax landscape is mature, really rich, and really exciting. Today, Dion and Ben are going to talk about technologies they're really excited about for the future.
The building blocks of the web are text, boxes and images. With canvas, it really makes a lot more things possible. You can do bitmap rendering and image manipulation. They're showing a slide with Doom and Mario Kart running. Canvas 3D does true 3D rendering. Firefox and Opera have done prototypes of this. Can you do canvas-type things today in a browser? Yes, if you use Flash or Curl. Dion and Ben are excited about canvas over plugins for the following reasons:
- No start-up delay
- Available on mobile devices today
- Rendering fidelity with browser (especially important for typography)
- No bridges necessary (no marshalling/unmarshalling)
- Not a plug-in
Dion and Ben aren't that excited about SVG because it's such a huge spec. We've been struggling with the HTML standard for the last 10 years and the thought of another huge spec for the next 10 years isn't that appealing.
Interface latency is awful for applications. Jakob Nielsen once said:
0.1 second is about the limit for having the user feel that the system is reacting instantaneously. 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay.
The ability to build desktop apps as web apps is very exciting. There's a few technologies that demonstrate this: Fluid, Mozilla Prism, Adobe AIR, Appcelerator Titanium and Gears. The Palm Pre demonstrates the logical extension of this. The Palm Pre uses the web stack as its developer SDK. It's very cool that web developers don't have to learn anything new to become a Palm developer. Desktop integration is exciting especially if we can access desktop applications like email and address book.
There's a lot of platforms out there: Microsoft Silverlight, Adobe Flash, Apple Cocoa and Sun's JavaFX. The web often isn't considered a platform. Dion and Ben believe there should be an Open Web Platform. The problem right now is there is no central location to find out how to get stuff done. You have to search and find resources from many different locations. Mozilla is putting it's resources into creating an Open Web Platform. This site will consist of 4 different areas:
- Documentation (for different frameworks, browsers, quirks)
- Dashboard (state of the open web)
- Roadmap (what's going on)
This is not just Mozilla, it's very much a community effort. This is something that Ben and Dion have been working on. But there's something else they've been working on too. They've been talking about all these cool things, but what about an interesting application to test all these technologies?
As they looked at code editors, most of them provide awful user experiences. Bespin is the Editor of Your Dreams and contains the following features:
- Accessible from anywhere - any device in any location
- Simple to use, like Textmate (not heavyweight like Eclipse) - an editor, not an IDE
- Wicked Fast - performance, performance, performance
- Rock-solid real-time collaboration, like SubEthaEdit - it just works
- Integrated command-line, like vi - Fun like Quicksilver, social like Ubiquity
For viewing files, they couldn't bring themselves to use a tree. Instead, they developed a file-browsing interface that looks very much like Apple's Finder. Personally, I like Finder, but wish it had Windows Explorer's path bar that allows you to simply type in the path without mouse clicks. Back to the command line. They've done a lot to make things more discoverable so users can easily find the power of the editor.
Bespin could be used to engage developers more with open source projects. Checking out projects, modifying code and creating patches can be a real pain. Bespin could be used to interface with open source projects in the cloud. You could login, modify code and easily patch/build with the click of a button. One other thing they want to do is to have the server do code-analysis as you're developing.
Is it OK to love a software tool? You must love your software tools. What we do as Software Developers is one of the most difficult jobs on the planet. Programmers, like poets, start with a blank slate and create something from nothing. If you don't love your tools, you'll start resenting what you do. If you don't love your tools, it shows in your work. -- Dave Thomas at RubyConf08
All users care about is the user interface. Dion and Ben believe there's a key to creating compelling user experiences. It all has to do with managing expectations. It's not that different from how you manage relationships in your life. Expectations for movies and games have changes drastically over the years. What used to be the web (animated gifs and awful web pages) has also changed drastically (video of Apple's online store). What was cool with MapQuest got changed drastically with Google Maps. What we have today isn't the end of the game - expectations will continue to change. However, users have different expectations for software.
Alan Cooper has done some interesting work in this area. The software designer needs to focus in on a user's goals. There are basic things you can apply to all users, for instance "sex sells". An example of this is Delicious Library. This application allows you to keep track of things in your home such as books, movies, music and games. They made $500K in 3 months and made $54K the first day, with no advertising.
The quality of any software is determined by the interaction. If the interaction isn't good, it will poison the entire experience. Donald Norman has a good quote: "Attractive things work better". In society, this is often called "Dress for Success".
The Open Web is hear to stay because it has:
- An Easy Programming Model
- Easy Remoting
- Extensive Customization Vectors (e.g. GreaseMonkey)
- Easy Deployment
- Great Widgets
- Great Visual Effects
- Great Mobile Story
- Desktop Integration
- State-of-the-Art Plug-ins
Bespin is a tech preview that they hope to release next week. Thunderhead will be released at the same time.
This was a great talk and easily the most inspiring of the conference. Dion and Ben always do a great job and the sexiness of their presentation made it all the more appealing.
Posted by Matthias Wessendorf on February 05, 2009 at 12:19 PM MST #
We will get the talk up, probably to go with the fun next week.
Thanks for getting up early to be there Matt!
Posted by Dion Almaer on February 05, 2009 at 12:27 PM MST #
Even if we get powerful libraries to imitate a desktop with the Canvas tag, how long do we have to wait to get a similar presentation of todays Flex? Sure, 3D is cool stuff (http://exciting.jigetiser.com). But, how many real world use cases do we will have in business to use it for?
The plugin discussion is a problem at the moment. But, in a year or so nobody will argue against a Flex implementation anymore. The market coverage will be beyond 95% for the minimum required flash player.
For me Flex has the better, because it is easier, programming model ;-). Some thoughts:
Posted by rainwebs on February 05, 2009 at 01:29 PM MST #
Posted by Chris on February 05, 2009 at 09:46 PM MST #