The Flex Team discusses the future of Flex
Earlier today, Andrew Shorten published an article on the Flex Team blog titled, “Flex: where we are headed“. If you haven’t seen it, I encourage you to read it. It’s a clear, bold statement about Adobe’s investment in Flex, the recent increase in Flash Builder downloads and the future ahead.
From my own personal perspective, this is the most excited I’ve ever been about Flex and the most energized I’ve been since I joined the Adobe Evangelist team four years ago. The story is solid, the value proposition is clear, and the technology delivers. Getting developers excited about it is easy! (don’t tell my boss!).





Andrew is only talking about iterative improvements and refinement of the details. Not the radical re-think and innovation that Flex for Mobile warrants. In fact, Adobe needs to inject new ruthless technical leadership here. (I’d certainly enjoy such a challenge).
But my real worry about Flex, and Flex evangelism is that the more Adobe do to win this Flex battle – the more they risk losing the Flash Platform on Mobile war. As I said before, Adobe’s best kept secret is really how powerful AIR is on mobile, without Flex.
I’m pleased that Andrew is aware of the importance of the perception of “Flash” on mobile. The fracas with Apple brought this issue to prominence. So developers are concerned about performance. App size and performance on mobile are a big deal.
Mobile is still very new, but this example from AIR desktop is transferrable: http://al3x.net/2011/01/15/user-hostile-platforms.html
In that article, if you scroll down to the third paragraph of “Postscript, January 16 2011″…
“… the developer of JamCloud who claims that the poor performance of many AIR apps is avoidable by using AS3 and not Flex”.
That’s the crux of the matter. Did Adobe AIR deserve the bad rap (poor perception) that was generated here – no it didn’t! Flex is slow and bloated – but the Flash Platform, and Adobe AIR shouldn’t be held accountable for this.
And they shouldn’t be held accountable for mobile applications either. But the end user won’t be able to discern the cause. This is why I’m worried that too much one-sided emphasis on Flex for mobile, could completely destroy the credibility of AIR on mobile.
Think of Adobe as a fleet of ships. All aligning themselves to focus on mobile now. Some ships are well aligned. The AIR team is focussed, The Dreamweaver team, exporting to phoneGap, well aligned etc. But the Flex ship (crewed by R&D, developers, marketing and evangelists) is cutting across the other ships.
Andrew is clear and focussed on the enterprise niche that leverages Flex to its best advantage. But the message is getting amplified, distorted, and we’ve got fragmentation WITHIN the Flash Platform community now. The danger with all this Flex evangelism is that it’s conveying a very one-sided story. And Flex will be recommended and promoted for use in performance/memory critical situations where it is just not suitable.
Flex has its niche. And it brings other advantages apart from performance. But a lot of experienced and senior Flex developers are making a decision not to use Flex, and opt for a lightweight pure-actionsctipt approach. Not only games and entertainment, but enterprise too. That’s what they’re doing with MadComponents.
Wasn’t the application name “Flex Builder”, changed to “Flash Builder” for this very reason? There are developers out here doing pure actionscript. Why does Flex get all the limelight? Why is the reputation of Adobe AIR on mobile so utterly dependent on Flex? If the perception of Flex on mobile falls, so does everything else. So why are Adobe putting all their eggs in ONE basket?
I notice your title is “Group Manager Enterprise Platform Evangelism at Adobe Systems”. Why the Flex bias Greg?
Hey Daniel – Thanks for the well written comment.
Like any technology, developers need to know enough to use the right tool for the job at hand. Yes, some developers are using Flex for things that Flex should not be used for (this has always been the case). Flex provides a lot of shortcuts such as an extensive set of components, data binding, a sophisticated event model, etc. If your app can benefit from these features, it’s a huge time saver.
I’m sure you are aware of this, but I’m going to state it for the other readers — Flex is simply a framework. Everything is converted to pure ActionScript as step one of the build process. You can even change settings in Flash Builder to save the generated ActionScript. Is this generated ActionScript optimized for every use-case? Of course not. The Flex product managers and engineers put a lot of effort into prioritizing where to invest engineering time based on a wide array of use-cases.
So, when considering building an app with the Flex framework vs building it in pure ActionScript, you are really making a decision to use pre-written ActionScript that was created for a multitude of use-cases or to write your own ActionScript that is specific to your use-case. Of course, the latter is usually going to perform better (but it’s usually going to take you longer to build).
Here’s a bit of an extreme analogy – if you want the absolute best performance possible, write it in assembly code and create a different version for each processor that your app targets. The performance will be insane, but the development effort will take years! I realize that this is a crazy comparison, but again, we developers have to make some intelligent decisions when deciding what to use. Frameworks like Flex save us time, but it does have some costs. By the way, the same holds true for JavaScript. I recently wrote an application that utilized a lot of JQuery. JQuery saved me a TON of time, and thankfully in my app, the performance was adequate without me having to replace any of the JQuery functions with my own JavaScript.
For someone building custom components, I would almost always recommend that they write it in pure ActionScript because it gives them the greatest control and the most efficient code. This is especially the case when creating components designed for use in mobile application, so I’m not surprised at all that Mad Components went with pure ActionScript. It was the right choice.
The guys at HD Interactive have written some great games that are in the Apple app store, Android Market, etc. The games include Kung Fu Battle Slots, Pyramix, Mr Mixit, Neptune and more. I have been super impressed by their app performance, so I sat down with them and looked at how they do it. The apps are built as Flex apps, but they only take advantage of the Flex Framework for some of the functionality. Many of the animations, transitions and effects were coded with pure ActionScript because they needed extreme performance. For example, some of the effects and transitions in Flex are more than adequate for most apps, but they were not fast enough to handle the types of animations and the rich graphics that their games demanded, so they made the smart decision to invest some extra time writing very specific ActionScript code. They even go to Flash Pro to build some of the animations because the tooling made more sense for a couple of specific items. They are the masters at using the right tool for the job at hand.
Most of the apps I’m involved in are well suited for Flex. Flex may be a niche for game development, but for enterprise development, it’s the development time savings Flex provides that is a huge factor in the decision process. I’ve never seen a real Flex application that didn’t contain a decent amount of ActionScript, so it’s never really a Flex vs ActionScript decision at all. It’s more of a series of decisions about how and when to take advantage of the framework.
I hope this help you understand my perspective and why as an evangelist focused on enterprise use-cases, I tend to blog more about Flex than pure-ActionScript development. Many of my colleagues cover gaming and other non-enterprise use-cases, and you’ll find a lot of posts that don’t even mention Flex, so I encourage you to take a look across the entire evangelism team. There’s a good list at http://adobeevangelists.com (and there is an aggregator of all of our blogs at http://adobeevangelists.com/superblog/ )
Thanks!
Greg