- Richly interactive UI
- Rich client/server communications
- Zero-cost administration
- Web security
- Web look and feel (back button and bookmarks)
- Multi-browser "standard"
All of the above features where things the Zimbra team expected. They also got lucky in a number of areas.
- SAO/Mash-ups and Ajax authoring
- RIA winner? Big sites voting with their feet: Google, Microsoft, Yahoo, Amazon, etc.
- It really works
Zimbra's tools are good for Java programmers. If you're not familiar with OO concepts, it might be a bit difficult to understand. Now Scott is showing some demos, basically grids and trees - all built using the "Zimbra toolkit", whatever that is. Now he's moved on to demoing the Zimbra application itself. I used Zimbra as my primary e-mail client for a couple weeks and it's by far the best web application I've ever used. Not only does it look awesome, but everything works just as it would in a desktop application. The unfortunate thing about Zimbra is it has two licenses: an open source one and a pay-for version that has all the features you really want.
Ajax is finally giving us a clear partition between client logic and server logic. The dividing line is up to the developer, that's the challenge for web developers today. It's basically a user-defined SOA Endpoint. Before Ajax, in the Java world, JSPs and Servlets were considered the client-side, even though they were really more server-oriented.
Ajax applications are cheaper on the server/network than Web 1.0/HTML apps. Modulo the initial download (gzip is essential). Ajax is much more expensive on the client CPU. Tend to be finder grained in their client/server interactions. They tend to be more stateful. Rule #1: Pick your service bindings well! For modularity and re-use/mashups.
Ajax Challenges: Browsers and Toolkits. Browsers render the same HTML differently, they have different event models, different levels of DOM supported, they have different APIs that do the same thing, as well as many issues. As far as toolkits for Ajax, there's too many rather than too few. Consolidation would definitely be a good thing.
The proprietary Ajax Landscape consists of MS Visual Studio (Tooling) and MS Atlas (Toolkit). On the open source side, there's Eclipse+Mozilla for tooling and all kinds of frameworks for toolkits (i.e. Zimbra/Kabuki, Dojo, Scriptaculous). Scott's opinion is there's really no room for any proprietary vendors to provide solutions outside of Microsoft.
Now Scott is doing a demo of mash-ups in Zimbra. He's showing how you can mouse-over many things in an e-mail message to get the information you're looking for w/o switching to a new page/context. Mash-ups he showed include: real-time flight information, displaying schedule for a particular day, dragging a message to an SMS sender, viewing a map by mousing over an address. The latest thing they're working on is dragging an appointment from a calendar to a "travel agent" that books your flight.
Zimbra also includes a WYSIWYG authoring environment for documents. It allows you to do HTML editing (in design view) as well as embedding spreadsheets within pages.
Practical Tips for Ajax:
- Use an Ajax toolkit
- CSS is your friend
- Use JSON (as well as XML)
- Use asynchronous network programming
- MVC paradigm worked for us
- Tooling better, but rough edges remain
- _all.js -> jsmin (saves ~ 1/4X)
- _all.js, _all.css -> gzip (saves ~ 3-4X)
- Mercury's QuickTest-Pro (QTP) [IE + FF*]
- Pick your fights - not all applications need to be Ajax enabled
- No such thing as secure client-side business logic in Ajax
- Dedicate some top UI OO talent (or wait for tech to catch up)
Ajax Sweet Spots:
- Richly interactive UI desirable (HTML simplicity is ideal for many applications - for example, you'd rather use Amazon's one-click than drag a book to a shopping cart)
- Combine with web look and feel and deployment
- No client-side data/resources (but is changing, stay tuned)
- Perfect for on-demand services
Recipe for Ajax Success: Ajax is not a business model, compelling and appropriate innovation is essential.
Next Ajax Steps: In open source land, try the OSS toolkits, Eclipse ATF and participate in Ajax communities (Apache/Zimbra, Eclipse, Mozilla, Dojo, Scriptaculous). Scott moved to fast for me to catch his recommendations for Microsoft developers. He did have positive things to say about Microsoft though.
Hardest Ajax problem of all? Recruiting. According to Scott, it's incredibly hard to recruit people that know Ajax.
Update: Additional coverage of this talk is available at Ajaxian.com.