Farewell Flex. Good riddance.

Even before the news broke – I’d felt the winds of change. Like the icy chill of a company changing direction, without the slightest regard for its loyal and dedicated developer community.

The Flex Evangelists were all suddenly blogging about PhoneGap instead.

For months, I’ve found it impossible to get publishers interested in an AIR mobile book I’m inspired to write. “No interest in AIR”, they would say.

Christian Cantrell blogged about porting AIR applications to HTML.

But despite the mixed messages, AIR seems to be safe – we think.

It’s healthy for a company to adapt to become more competitive in the face of new opportunities. It should be a positive thing, shouldn’t it?

That’s not how the message was conveyed. If it was Adobe’s intention to generate as much FUD and negative speculation as possible – they couldn’t have done a better job.

I remember that Macromedia had a better understanding, and respect, for the developer community.

Last month, I was involved in a mobile developer conference. Just a small affair. 200 people. Mostly new to the mobile arena, and mostly interested in developing enterprise apps, not public apps on an app store. As a result of my afternoon workshop, many of these developers went away VERY interested in Adobe AIR and MadComponents. Some have already adopted it for their projects.

I invited Adobe to come along to my conference and give some mobile-related presentations. Dreamweaver and Flash Builder. After some unfruitful discussion with Adobe Singapore – they didn’t want anything to do with it. How stupid is that!? It would have been an excellent and unique opportunity for them to win the hearts and minds of developers in the region. Although I did a pretty good job by myself. I’m not officially an Adobe evangelist. But people respect my untethered opinions more than they respect Adobe or its evangelists nowadays.

I hear about Adobe employees being laid off. So let’s hope that the axe has fallen with callous severely on Singapore. Because Adobe’s Group Marketing team there are about as effective as a chocolate teapot.

Mostly, I’ve been really worried about the ferocity with which Adobe had been pushing Flex for mobile. Putting all Adobe’s AIR for mobile eggs in the Flex basket was a dreadful mistake. Flex is tolerable inside its niche. Bloated enterprise apps. But if Adobe pushes the notion that Flex 4.6 can export to compete on consumer app stores – then the harder they fight to win that battle, the more they risk losing the war.

The war is the general perception of Adobe AIR on mobile. And it could make or break Adobe.

I’ve always described the power of Pure ActionScript AIR as Adobe’s best kept secret. If Adobe take the lean meat of AIR 3, and sandwich it inside layers of fat and bloated Flex… Well, it’s no wonder that the wider developer community is deterred from a technical standpoint. Flex has already compromised the credibility of AIR on the desktop ( see: 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”. ).

This is what I had against Flex. It was threatening the survival of the entire mobile future of AIR and the Flash Platform.

Ungrateful maybe, because as a Senior Flex Developer I’d made good money from Flex. But familiarity with Flex lead to contempt, and often frustration, about the limitations of Flex compared to Pure ActionScript.

Sure, Flex made cool “look how easy this is” , “Drag and Drop” demos – but Flex was a real pain to scale up to anything real.

Even though I hated it in the browser and desktop – I can’t see an alternative right now. I find it hard to imagine HTML5/JavaScript in this space. I guess I’ll have to wait and see.

I think Flex inhibited the adoption and development of more lightweight, possibly better, AS3 frameworks that were around. After all, who was going to take notice of anything else, if Adobe was throwing all it’s weight behind Flex. Now it’s gone, I wonder if developers can fill the void?

After all, the general idea of Flex was ok. It was just the bloated implementation that was awful.

In the mobile space, we’re ok. We still have a great framework. MadComponents. A lot of developers are using this now for both enterprise and consumerapps. I’m currently improving JSON support, and adding a SplitView and other enhancements to the extended library. Watch this space. Despite the FUD, I’m still enthusiastic and committed to AIR and the MadComponents project. Even more so now Flex is dying.

Like this:

Related

11 Comments

As guys from BBT pointed out in one show “Everything’s better with bluetooth”. I reckon you’re in the same group, you just replace bluetooth with “Pure”. Going with that logic, you should probably update your website directly in Pure HTML, and not use WordPress – c’mon, that’s a layer of abstraction to make life easier – what were you thinking? We’re not supposed to use them! Pure HTML is best!

I agree that Flex implementation sometimes led to frustration and was far from best, but if you say that it couldn’t scale up to anything real, then you’re probably far from being a “Senior Developer”. What do you think Flex was written in? Unpure Actionscript?

Don’t put words in my mouth. “Going with that logic, you should probably update your website directly in Pure HTML, and not use WordPress “… that’s not what I’m saying. But if I did that, I”d be able to change the “leave a comment” button to read “flame me here”.

Is this really the first time you’ve heard an experienced developer criticise Flex for its bloatedness? Surely not?

As I said, the basic IDEA of Flex was ok. It was the implementation that sucked. As a Flex developer, The MadComponents framework would be very familiar to you. An XML layout language. Skinning, Styling, Data-binding between server and components, etc. I’ve nothing against frameworks, high level abstractions, and code reuse.

I like these ideas. I’m just saying in Flex, it sucked! And open-sourcing Flex isn’t going to remedy this. Sucking is in its DNA.

Have you tried my tutorials? I guess not. (Arghhh!, blinkered myopic Flex fanboy – try thinking wider) If you had, you’d notice how much EASIER the MadComponents framework was to developing the same app in Flex? That’s because I designed MadComponents from the ground up to be fit-for-purpose.

It isn’t just the Flex components I dislike. Also their visual IDE is stone-aged. Primitive. And you’re lecturing ME about layers of abstraction, and ease of use??!! ( If I get time (unlikely), I’d like to write a visual drag and drop IDE for MadComponents. NOT like Flex. My idea is more like storyboards in XCode. But I had the idea before I saw storyboards – honest. )

It’s a poor layer of abstraction that complicates the process. If Adobe were writing Flex now, fit-for-purpose from the ground up. Given the benefit of hindsight, I think they’d do it very differently. Flex suffers from its legacy. It started as something else. Part of a server technology, and just evolved, mostly in a knee-jerk, reactive way. Now it’s reached an evolutionary dead end. More often than not, its evolutionary path was dictated by Adobe wanting to entice you to pay to upgrade to the next version. So we took some detours and got stuck in some evolutionary cul-de-sacs. like ActionScript-2, The even-more bloated Halo Components, and the buggy Advanced Data Grid.

In the browser, I’m drawing mostly from my experience with a very big project I worked on. Over 100K+ lines of .as and .mxml. I assure you, I’ve lived and breathed Flex well enough to know it intimately. In the mobile space, Flex just wasn’t appropriate for consumer apps. I even want Adobe to cut down the size of the captive runtime – including only what’s needed.

Yes, I’ve heard the naive argument that “MXML is converted to intermediate ActionScript, (you can even tell the compiler to keep this intermediate file), and then compiled. So the fan boys say that mxml is no different from pure ActionScript. WRONG! The components are bloated. Surely you know that’s not the way. When you write classes, you “Program to the interface, not the implementation”. That doesn’t mean creating monolithic, software equivalent to the swiss-army-knife. That’s how I describe the Flex components, but I like what you call it “unpure actionscript”. I suppose I wanted Flex to be more like OOP. But they were designed so that a non-programmer could fiddle with settings in the properties panel. Reusable components are great, but I wanted them to be more lightweight and extensible. I wanted to be able to extend simpler classes. Most of all, I wanted to avoid all that bloating, and poor performance.

The thing is, by the time Flex came along, I’d already amassed a cool library of well-written AS components. Don’t forget, I’ve been involved with the Flash Platform for over a decade.

( “far from being a Senior Developer” ??! – You cheeky pup! *lol*. Sonny, While you were still in nappies, I had created an algorithm that beat three other research labs and was implemented in BILLIONS of mobile handsets. Don’t assume I’m a naive young web developer. I’m awesome *lol*, well, I’m a developer and old (Senior) anyway. ).

Oh my :) I actually went through your tutorials and examined the code and documentation. It’s a good job. But you have to admit that it’s just a small fraction of what Flex offers.

I guess we both agree on problems with Flex. It’s very common among experienced developers to constantly bash Adobe for poor implementation – and I’m that group as well. I actually don’t believe it’s so much Flex fault, but rather Flash Player and its virtual machine. Its performance was never upgraded significantly and currently it even lags after some javascript implementations (i.e. Chrome). We would never probably notice poor Flex performance if the FP could handle it well. I know its covering one problem with the other, but that’s the way it is with abstraction – they have their price. Granted, some thngs can be implemented in a more optimized way, but the overhead will be there. It’s just shame that Falcon wasn’t released earlier and FP and AS as language never received any significant upgrade (they’re so old now!).

Flex was built in such a way on purpose. The move from Flex 1.5 to 2 and build an Eclipse-based IDE was to attract Java developers mostly. Do you know of anyone else who succeeded to this extent in this area? Silverlight is dropdown dead. JavaFX was a disaster. Java-based UI frameworks like OpenLaszlo or Echo2 – does anyone remember them now? So they’ve seen their issues with Halo and started new Spark model. In many ways, it is really great and a step in new direction. It performs poor, but there’s probably a lot of space to optimize that. Having all that, does it make sense to just thrash it now? I think Spark is more OO plus in my years of development, the best UI app development patterns I learnt while working with Flex (microframeworks, model-view-presenter, parsley, etc.). Maybe the Flex itself wasn’t 100% OO, but the features it gives allows the developer to build a beautiful architecture for application. I cringe when I think of JS in that regard.

My feeling always was that Adobe is either putting not charismatic people enough (think Steve Jobs) to drive the Flex SDK commandship or they simply did not commit enough well-qualified resources to make this platform really great. And that they constantly struggle about what they actually want from Flash Platform and Flex.

In my experience recent Flex SDK (4.6) was performing great on iPhone 4. I honestly don’t think I would need more for simple native mobile app (and most of mobile apps are like that).

What I just don’t understand is your cheer about recent events. So you have MadComponents. How long do you plan to support them? What will happen to people using them, when you get bored by it? Without that heavy support that Adobe was giving Flex, what will become of AIR? Will there be that many developers picking up some random 3rd party libs, without a standard whatsoever to developer the apps or games? I doubt that. Not a year will pass when Adobe discover they’re again not making money out if it and will make another “shift” and announce cease of support for AIR on mobiles and shouting html5 in browser all over the place.

I just don’t think it make sense to tear the goddamn building apart just to create a new one “from scratch”. As Joel Spolsky pointed out, that’s this kind of move that can as well put you out of business. There will be nothing in place of Flex, no chance. Business people will be scared by shouting banners (“Flash is dead”), there will be no market traction and developers one by one will go away to other areas, some will curse and move into html5/js area, the rest will probably shift into native platforms developers.

Personally, I think it’s terribly sad that in 2011, having all the amazing hardware we have, we’re still worried about the speed of things and not the ease of use (development-wise) and time spent. It’s like we haven’t really progressed in 30 years, and optimizing Manic Miner for that ZX machine is “an achievement”.

When we got all that “bad news” from Adobe, I thought they might lift our spirits with some good news. But it never came. (I even had “Good News First” from RUSH Snakes and Arrows playing in my head – the lyrics were very appropriate).

I know there’s a rationale behind these tough decisions Adobe made. The sort of decisions you have to make when your very survival is threatened. Either that, or Shantanu Narayen is insane and fiddling while Rome burns. Have you seen this?:-

The competition is not HTML5, it is certainly not Apple. Adobe’s competition on mobile is Corona now, and Unity increasingly as people use Stage3D more, and better tools are developed to author 3D content.

AIR is important.

MadComponents is open source. If I move onto other things, hopefully it will endure. (As long as people don’t think it sucks at a genetic level).

ZX81… first computer I owned. (Not counting the 4 bit thing I built with lights and switches on the front).

Jeff / Nov 13 2011 10:51 pm

I didn’t realize Flex was caught up in the “focusing”. Has that been verified?

To be honest, I’ve never done anything in Flex beyond the tutorials. It’s just all too bloated like you pointed out. MadComponents is wonderful – I making big use of it in a large and complex multi-platform app.

What I’d really like is a reasonably priced development environment especially for the Mac. It’s really old using Flash and TextMate. The debugging really takes a step back in time too – my main debugging tool is the trace statement. There’s just something really wrong with that. If Flex is gone, hopefully we’ll see some other development environments to help with ActionScript development.

“That doesn’t mean, however, that HTML5 is the right choice for all use cases – the performance, framework maturity and robust tooling provided by Adobe are cited as critical factors by enterprise customers as to why they continue to select Flex.
We firmly believe that Flex is already the best technology for building complex, high-fidelity enterprise applications such as business dashboards, line of business tools, real-time trading applications and desktop replacement applications, and see leading companies in healthcare, financial services, communications and other industries standardizing on it. We will continue to heavily invest in strengthening Flex for enterprise use, ensuring that you can deliver expressive, robust applications. As we share more details about our upcoming releases, you’ll see our commitment to tackle areas such as Spark component completion, accessibility, build system integration, performance analysis tooling and integration of a next-generation compiler, making Flex the #1 choice for building enterprise-grade RIAs.

Q: Does Adobe recommend we use Flex or HTML5 for our enterprise application development?

A: In the long-term, we believe HTML5 will be the best technology for enterprise application development. We also know that, currently, Flex has clear benefits for large-scale client projects typically associated with desktop application profiles.

” However, I’ll be the first to admit that (to my knowledge) there are not yet any HTML options that have the breadth and capabilities of Flex, and so Flex remains a viable and important option for many uses cases, and as Deepa and Andrew noted we are still committed to Flex.”

Lucky for me, I’m on the design side of everything. Even if Adobe nixes Flex or Photoshop, I’ll just sigh and move on to the other design apps currently popular.

But on the dark side of things, isn’t Adobe effectively saying that HTML5 and Javascript are the dynamic duo that will kill Flex and eventually Flash? It could be years along the way but surely it will happen. Since they have already started preaching about the other boat, isn’t it just time before they jump to it and abandon Flex and, later on, Flash?

As a non-developer, my mind is simply saying that if the browser is the app that will allow people to access the internet (via desktop or mobile) and anything you can put in it, and if HTML5 is the way to go coding the internet, plus Javascipt for effects and to connect databases to online websites and its other incarnations – all other platforms that ride on other platforms (not excluding your MADComps for the Flash platform) are simply bloated (just in different degrees) and are ultimately doomed to succumb to less enterprise support such as those of Adobe or to lack of fellow developer support. That may be what Adobe is saying: it is all just a matter of time. But if you go HTML5 and Javascript, you won’t even need an Adobe wing to develop a platform for you, which is what Adobe might have meant when they said content is their next focus of business and not apps to create content. Or am I misreading all these?

I earned a good income from freelance Flex work – but I don’t like Flex, and I don’t mourn its demise. The concept of Flex was ok – just a pity that Flex was so badly implemented and so bloated. It under-acheived so dismally compared to good pure-actionscript development and libraries.

If JavaScript was clockwork, it would still look good next to Flex.

I think it IS time for a fresh approach. I hope that Google get their way with Dart, despite Microsoft’s opposition to it.

But is Adobe up-to-the-job of building the development ecosystem? Can they compete when they don’t control the plug-in intellectual property?

For example, the AXDT guys had to strip all the AIR stuff out, for fear of Adobe’s lawyers pouncing on them. So without the walled garden – what’s to stop a competitor building a better content authoring tool than Adobe?

I don’t care too much what happens in the browser or desktop – but I DO CARE about AIR on Mobile.

It scares me that FB4.6 was touted as being able to export to consumer app stores. Bloated mobile Flex was tolerable in its enterprise niche. But Flex consumer apps will turn public perception away from AIR on mobile and lose the entire AIR mobile war. The harder Adobe’s marketing people try to push Flex as a consumer app solution – the more they risk losing the whole AIR mobile war.

As long as Adobe don’t screw up Falcon, I’d expect compiled AIR ActionScript to outperform interpreted JavaScript in a webview. So I still see value in the Flash Platform for years to come. AIR apps on mobile devices. Hopefully coming to more platforms too. WP7, etc.