« Apollo Buzz at FoWA | Main | Heading down to San Jose for Flex 360 »

February 27, 2007

Got Flex?

Well I'm back from FOWA and, despite the poor quality of the internet access, my talk went well. Afterwards, I spent a bunch time talking with people about Flex and Apollo, and just about everyone was really impressed by what we're doing. One of the things I did in my talk was to build a Flickr browser in a couple of minutes using Flex . While this wasn't a new demo, I included it because a lot of people still don't know what Flex is. Based on how many people came up to me to tell me how cool Flex looked, I think that it's a great way to show the power of Flex.

Of all the people I talked to, there was really only one who was not impressed with Flex, and his name is Yaniv Golan. We actually talked about it for quite a while. While I normally wouldn't write about something like this, Yaniv blogged about it over the weekend and even included a picture of me and so I thought I'd respond.

In his post, titled "Why I don’t get Adobe Flex", he admitted that "Actually, Flex looks great. Solid architecture, slick IDE, modern declarative markup language and scripting language" but goes on to question why anyone would use it when they could use a standards based approach based on HTML, CSS and JavaScript.

Having talked to lots of people who've chosen Flex, the key things I've heard is that it enables them to be more far productive in building their apps, has features not supported by HTML/AJAX, gets rid of the headaches of cross-browser implementation differences and is a more solid environment for large applications.

In his post, Yaniv speculated that:

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?

One of the things that Yaniv might have missed at FOWA was that even people who are committed to and building with AJAX have issues with it. There was a great talk given by Jonathan Rochelle of Google who runs their Docs and Spreadsheets product where he talked about how poor AJAX is for large scale development. This is a complaint I've heard from many people building applications in AJAX.

Now, when someone like Jonathan says that AJAX is not a great foundation for robust applications, I don't think he means that it would be great if only he had better developers or if Adobe had spent their energy developing Flex for AJAX. The fact that you have multiple implementations of varying quality and that the browser infrastructure wasn't really designed for large applications means that no matter what you do on top of it, you can only go so far. We are trying to improve things for AJAX, however.

One of the things that I highlighted in my talk is that ActionScript 3 is based on the same standard as JavaScript, and we've been helping to move the standard forward to provide a better language for applications, whether they are using HTML or Flash. We've also donated the code to the ActionScript Virtual Machine to the Mozilla foundation to help improve the implementation in Firefox. The development team now consists of both Adobe and Mozilla engineers and the implementation will be the same across future Firefox and Flash Player versions.

Interestingly, Yaniv's blog entry was a bit different from the conversation we had. During our chat, his basic question was why would anyone use Flex when ASP.NET is just as easy to use and the result would be an HTML app which is standards based. However, in his post he phrases this as "I don't get it. Why would an architect choose to rely on a proprietary runtime, available only from a single vendor?"

What I found amusing about this is that if Yaniv is really so worried about vendor lock in, why on earth would he be using ASP.NET? ASP.NET, while a great technology, is single vendor lock in. And not only that, but it's expensive lock in. Flex, on the other hand, is a free framework, running on a free runtime. The free SDK even runs on Linux. Also, when you get the free SDK, you get all the source to the framework.

But to answer Yaniv's fundamental question, why would someone choose Flex? Hopefully because it solves real problems they have better than anything else. This could be because the runtime is richer and more expressive, after all, you have drawing API, video support and other things that just don't exist in HTML. It could be because it has a faster, more modern, more strongly typed language that enables better productivity tools to be created. It could be because Flex has a richer, more consistent architecture, allows you to easily bind to data and customize how it's presented. It could be a host of other reasons.

In the end, I was really glad that went to FOWA and got to meet so many people who really "got" what we are doing with Flex, ActionScript 3 and Apollo. I really DID enjoy meeting at talking with Yaniv, too. We had a nice, spirited debate. He might not "get Flex" yet, but maybe some day he will!

Posted by Mark Anders at February 27, 2007 07:37 AM