I don't get
Adobe Flex.
Actually, Flex looks great. Solid architecture, slick IDE, modern declarative markup language and scripting language, lots of productivity features.
Still, I don't get it. Why would an architect choose to rely on a proprietary runtime, available only from a single vendor to do stuff that can be done just as easily with standard XHTML, CSS and JavaScript?
I chatted on Flex with
Mark Anders from Adobe. Mark worked on ASP.NET from 1998 until 2003, and then co-founded the Flex effort at Macromedia.
Mark demoed Flex at FOWA today, building a functional, slick Flickr tag browser in few minutes using the Flex markup and practically zero code. The thing is that the exact same day can be built with just as easily with an environment like ASP.NET, with the output delivered to the client using standard XHTML CSS and JavaScript. So why Flex?
Is Flex Adobe's way of leveraging the huge Flash developers community and lure them into a vendor-lockdown?
According to Mark, Flex is a way to avoid the browser compatibility issues, especially with regards to CSS and JavaScript. It's a reliable, predictable runtime that works the same way on all browsers.
Flex must have been a huge engineering effort. Could the same effort have been dedicated to delivering the same productivity and reliability advancements, but with the markup and the script "compiled" into XHTML + CSS + JavaScript instead of proprietary Flash runtime bytecodes?
And what about
search engines and other content-aware tools, which cannot easily access the content delivered by Flex applications? And
permalinks, which do not work as naturally with Flex as they do with HTML? How do you
bookmark a piece of content in a Flex application on Delicious? And - which surprises will you run into when you hit the browser's
Back button?
The upcoming
Apollo server platform from Adobe promises to deliver support for rich web applications that work equally well offline and online. This is something I've been looking forward to for a long time. Of course, it will require the Flex runtime to provide this functionality. Technically speaking, I don't see a reason why the same capability cannot be delivered through standard XHTML + CSS + JavaScript + a client-side plugin, which could be a subset of the Flex-required Flash runtime.
Given Adobe's track record with Flash and its
98% penetration, I think it's safe to guess that Flex will be hugely successful. Still, I can't help but feel that in a sense, it's a step backward. Or at least sideways.