
Many have commented about our elegant user interface and its richness for a web-based application. A number of folks have asked about our decision at blist to use Flash instead of AJAX or Silverlight or AIR.
I started thinking about the blist user interface in January 2007. For my predecessor company MessageRite, we developed an AJAX interface. While AJAX is certainly richer than plain HTML and CSS, There are a number of operations that are difficult to implement in a cross browser, cross operating system manner. Startups are usually resource constrained, so you make design sacrifices. At MessageRite, one of those design decisions was to only support Internet Explorer and only version 6.0 and above. When MessageRite launched in 2003, that was an OK compromise given IE 6+ was being used by our target audience - business users - abou 93% of the time.
For blist, though we wanted to target a broader consumer audience as well as businesses. Additionally, between 2003 and 2007 Firefox eroded IE’s market share significantly. I don’t remember the exact split at that time, but it was something like 70% IE, 25% Firefox and 5% everything else. We wanted to support IE and Firefox.
I spent a year at Microsoft after they acquired my company. One of my goals was to meet as many smart and interesting people as I could. It turns out I met and came to know two of the engineers on the Outlook for Web Access (OWA) 2000 team who developed the XMLHttpResponse object, which IS AJAX. XMLHttpRequest is a great name if you’re an engineer, not so much if you’re a marketer. Two years later Jesse James Garrett of Adaptive Path gave it the much cooler moniker AJAX, an acronym for Asynchronous Javascript And XML and AJAX took off like a weed. When I had a vision for what I wanted the blist UI to look like and do, I met these guys for coffee, described it, and asked if AJAX was up to the task. They confirmed my suspicion. One of them commented something along the lines of “You could probably get 80% to 90% of that functionality with AJAX, but not 100%. More important, in order to make this work across browsers and OS’s, you’re going to have a gargantuan javascript payload with all sorts of browser specific hacks. The end result is you’re going to have a buggy, fragile mess.”
All along I was really thinking only about Flash or AJAX. I was still carrying some baggage about Flash, most of it from the old Macromedia days when Flash 5 and Flash 6 were in circulation. In early 2007 Ryan Stewart, who blogs about rich Internet applications (RIAs) and happens to also live in Seattle, was totally independent and unbiased. He’s since joined Adobe as an evangelist, but in early 2007 I invited him for lunch and picked his brain about building an RIA. We talked through AJAX, Flex/Flash and Apollo - Adobe’s new RIA development tool still in alpha, not even beta. I came out of that luncheon feeling good about Flex, which is the primary tool used to create a Flash-based application. Version 3.0 was out in beta and was a dramatic improvement over Flex 2.0. In the old days, you would develop a Flash application with Flash. Unfortunately Flash uses a cinematographer metaphor - making scenes that unfold over time. Programmers don’t think well in that model. Flex uses a programmatic model and Flex 3 had a very robust application framework.
By this time I was leaning 90% toward Flex/Flash and 10% toward making a big bet on Apollo. Even in alpha, you could build a really cool application with Apollo. Additionally, Apollo makes offline access - a feature we want - very easy. Development tools shouldn’t be chosen based on technical capabilities alone. Due mostly to YouTube driving the adoption rate, Flash 9 was installed in more than 90% of PCs and Flash 8 was on 8% and only 2% had no Flash player or an older version. My feeling was that the 8% on Flash 8 and 2% without Flash at all were primarily zombies or laggards and we could safely ignore them. Apollo required a brand new runtime and had zero penetration. I didn’t want to introduce any artificial barrier to have people give blist a try.
By mid February I was 98% sure we were going to go with Flex 3 to develop a Flash 9 app. By that time I was recruiting to hire our first engineers. As part of the evaluation process I asked the top 2 engineering candidates to independently evaluate Flex by building a small application. Neither had worked with Flex, but both were near expert level with AJAX. The process worked and both of them came to similar conclusions about Flex.
People ask why I didn’t choose Silverlight, especially given my tenure with Microsoft. They think there’s more to it - like I’m sending my old employers a nasty message. Nope. It was simply that Silverlight didn’t exist when I made the decision. I knew a little about WPF, the internal code name for Silverlight when I was at Microsoft, but it was very, very immature and seemed years away.
We’ve been extremely happy with our decision to develop with Flex. We are pushing Flex harder than probably any other company with exception perhaps for our friends at Sprout, whom we met at DEMO. We’re working with Adobe to hone out some client side performance issues in their framework and controls, but we have confidence we’ll get performance to where it needs to be.
What do you think? Try out blist and tell us if you think our decision to use Flex and Flash was a good one.