One of the key messages that I’ve been talking about with a lot of my customers recently is a continuum of experience.
It starts on the left with Web and it’s absolute ubiquity through HTML and CSS. This works on any device with a browser from a phone to any desktop and even a lot of computer based applications (such as search engines or spam email harvesting engines). The tradeoff is that the user experience is less than optimal. Billy Hollis calls it the Cobol of the web referring back to the old time green screens. Whether we like it or not, HTML not only has it’s place now, it’s going to continue to have it’s place long into the future. Unfortunately, one of the reasons that many applications go this direction is not because they need ubiquitous reach but rather because it’s easier on the IT department to deploy it. This makes things hard on the user. Oops. Things can get better with AJAX. At this point, you are sacrificing some reach for functionality as you are giving up phones, PDAs and older browsers. Often that’s an easy decision to make.
On the right hand side of the continuum is Platform Optimized. This is really giving up broad reach for absolute functionality. As an example, the Halo 3 team knew which video card was in the target machine so they could tailor the experience for the edges of what’s possible on that hardware. That’s a good position to be in when you can be because it means that you can create the absolute best possible experience available. However, it would be hard to take that same experience and put it on any laptop. Short of knowing what hardware you are targeting, look at the platform that you are targeting. If you know that your users are using Vista or XP with the Service Pack 2, you can target WPF, WCF and so on because you know that it’s on the box. Backing up from there, if you can target .NET on the box, great.
Somewhere between the Web and Platform Optimized is the Supplemented Web with Silverlight and Flash/Flex. This is an exciting frontier to be in right now bridging the gap. It’s not full ubiquity but it’s more reach than platform optimized and it has a far superior user experience than HTML and CSS.
Microsoft and Adobe are working from opposite angles here. Adobe, with Air, is trying to take this supplemented web development paradigm to desktop. It’s an interesting idea to be able to bring HTML, Flex/Flash, embedding PDFs and so on to the desktop. Microsoft, on the other hand, is trying to take desktop application development paradigm to the web with Silverlight.
I think that there’s room for every type of experience along the continuum but you really need to evaluate your skill set and what type of experience you want to target when starting an application. Today actually, I had a customer meeting where we talked about a blended approach where we build a simple ASP.NET application for their ubiquitous touch and then target a click-once deployable application for those clients that are able to leverage it. This would be a great move on their part as it would give the best possible UX for the greatest possible audience.