Flash, HTML, Ajax: Which will win the Web app war?

I ended up being quoted a few times in this recent article about modern web app technologies. I’ll provide a bit more context here.

…Microsoft sees things differently, believing that programmers are best off ditching HTML and JavaScript as soon as Web applications start getting rich.

"It’s amazing what people have done with HTML, which was never intended to do rich Internet applications. And Flash was originally created for lightweight animation–literally for Mickey Mouse on the Web," said Brad Becker, who as group product manager for rich client platforms at Microsoft helps oversee Silverlight. "But these technologies were designed for something else, and people are really hacking them to do more”

Each of these technologies had an original purpose that it was intended to fulfill and I believe all of them are good at doing what they were intended to do. This point is something I hope people really think about. It reminds me of the fact that I once sawed a branch off a tree with the little saw on my Swiss Army knife. Once.

Flash began as “Smart sketch” and then became “FutureSplash Animator” and then “Flash”. It’s a tablet sketch app, tweaked to become a lightweight web animation player, that’s had coding bolted on to it. It’s completely optimized around animation and does a great job with traditional cartoon animation on the web. When you dive deep into a Flash app though, you’re still knee deep in “movie clips”, “timelines”, and “frames”. Makes perfect sense for animation but it’s a bizarre model to build applications on top of.

HTML was designed to present hypertext. The first version didn’t even have an image tag, let alone support for the sort of things people are doing today with AJAX. And when it comes to hypertext (with images or not), HTML is still king. Adding JavaScript can enable better user experiences but at great cost to developers.

Just because Google is doing something doesn’t mean it’s the right way, though, Becker said. "If you look at Google Apps, they’re doing great things, but how many shops out there have the Ajax chops that Google does?"

Small bits of AJAX are easy to put together. True RIA’s are hard. “divs”, “paragraphs”, and JavaScript-overridden hyperlinks are strange building blocks for RIA’s that aren’t page based hypertext documents. There are good frameworks out there that abstract away some of this misalignment (including our very own AJAX framework for ASP.NET) but frameworks can only abstract so much without impacting performance and flexibility. And a lot of businesses are rolling their own frameworks which is usually a wasted effort–maintaining a framework to keep up with multiple versions of multiple browsers is a lot of busy work that could instead be spent building the actual apps your customers need.

I’ve built true RIA’s in AJAX, I’ve built them in Flash. These project were completed successfully but it was a lot like sawing that tree with the Swiss Army knife. Flash and HTML are great at what they were intended for but they’re both convoluted when it comes to building real applications. There’s good news though; things don’t have to be so hard:

That’s exactly what Becker promises. "We’re going to be iterating pretty quickly, and each version is going to add new features and functionality," Becker said. The final version of Silverlight 2 will be released later this year, added Brian Goldfarb, group product manager for developer platforms at Microsoft.

This has been a very nice surprise for me—how quickly Microsoft has been able to innovate with Silverlight and deliver stable iterations of the platform. That’s because we took a decade of experience from .NET and Windows Media and used that expertise to build a modern platform that was designed for today’s rich web applications and media experiences. It’s the only platform out there that was actually designed for building modern web applications.

Flash, HTML, Ajax: Which will win the Web app war? | Business Tech – CNET News.com