Come on, admit it, we all love a good smackdown! In response to my article about Flash coming back to the iPhone, Bill Lucchini wrote a well-reasoned rebuttal: 5 Reasons Adobe Flex is Doomed. Here they are, paraphrased for brevity:
– Flex creates an unnatural and dilutive web user experience.
– Steve Jobs argument that you can’t trust a 3rd party platform to reliably keep up with the features of the underlying device. This results in sub-standard apps in Steve’s mind.
– Bill doesn’t buy the “apps are where it’s at” argument. In his words, “Some things like games seem much more appropriate as apps, but for many apps, mobile web seems more appropriate.”
– AJAX toolkits are so much better these days as insulating developers from platform and browser issues that the relative advantage of Flex as eroded.
Point-by-point, let’s have at it!
Flex creates an unnatural and dilutive web user experience
BTW, you can create crazy UI to your heart’s content in an AJAX app too, it’s just a lot easier to do so with Flex. I can’t hold that against the platform.
Bill saw this in the form of complaints from his last gig with the Intuit Partner Platform. I think it is important to look at his money quote for the insight:
Despite our research that showed that Flex had really great performance characteristics, we saw development team after development team struggle to get their apps to perform as fast as they needed to…
The italics are mine because I wanted to call out that obviously Intuit’s own development staff anticipated this and concluded there wasn’t a problem with Flex. In fact, there isn’t. I write 3D graphics code in it for CAD/CAM applications that just simply wouldn’t even be feasible otherwise. Flex looks to me like it can support more of the cpu capacity of your machine because of how the Flash engine works, and the JIT compiler is excellent. I spent time reviewing tons of benchmarks via Google, and didn’t find any counters. I will tell you that some of the Flex components can bog down. It’s hard to use the TextArea with files of many megabytes, for example. OTOH, there are straightforward ways to work around that.
In the end, I really don’t buy the argument that Flex is slow. But, I will tell you what argument I would buy:
Sorry, I know “them’s fightin’ words” to someone out there (probably annoys both camps, actually), but Flex has a couple idiosyncracies that can be both strengths and weaknesses. I also know I can’t leave that grenade on the table sans pin without elaborating a bit.
Bill doesn’t buy the “apps are where it’s at” argument
I broke this out into a whole other blog post, because it is a fascinating and deep topic. Suffice it to say that Bill and I seem to agree both models are needed. Where we may differ is in how often the app model has to come up, and perhaps on the relative monetizability of the two, which I also think is very important. To paraphrase, the point from the other post is that the app model comes up a lot. You can’t just shoehorn any old thing into a browsing experience and expect a good experience. There are sound cognitive reasons why sometimes an app is better. I argue that if what you’re about is creating something, the manipulative orientation of an app is far more intuitive than the navigational orientation of browsing.
The other thing about apps is people are predisposed towards monetization of them versus the browse. It’s very easy for a paid for browsing experience to cross the line to looking like a pay wall, and that’s not a happy thing. It’s been tried and found wanting.
AJAX toolkits are so much better these days as insulating developers from platform and browser issues
I was recently chatting with VC Bruce Cleveland at Interwest about this very topic and he was lamenting that no sooner had we reached a point of write once run everywhere for the server and on PC clients than the mobile world was plunged back into the old “port for every platform with long-term maintenance pain” headache we’d just gotten away from. His portfolio was not very happy about that.
You can’t trust a 3rd party platform to reliably keep up with the features of the underlying device
I had to save this one for last because it is so richly ironic it is silly. Here is Steve Jobs lamenting that 3rd parties might make arbitrary decisions that affect the User Experience on his platform. That would be the same Steve Jobs whose arbitrary decisions (among many many other deleterious effects over the years) kicked Flash right off his platform and then suddenly brought it back again. Or the Steve Jobs that won’t really give Adobe the same access to the underlying hardware to make Flash Player better as they can get on other platforms. I have to admit, if I was Steve Jobs, I would be terrified at the prospect of doing business with myself!
But everyone isn’t Steve Jobs. In fact, most are not, and most think about products and going to market very differently. Some actually understand that platforms have to be Switzerland. More importantly, as my first post that started this smackdown made abundantly clear, it is competition that benefits the consumer, not arbitrary decisions by Steve Jobs, Adobe, or any other entity, however enlightened and brilliant they may be. If the platform or toolset owner ignores the wishes of its audience, and there is competition, that platform owner will lose.
Thanks to Bill Lucchini for the excellent debate. He raised a lot of interesting points and sharpened my thinking. In many ways, I think we are in peculiar agreement!