PrintUI.com

Blog Post

Flex != Flash

Flex recently became a top level project at Apache and released version 4.9.0. I’m personally very excited about the project and I’ve seen a lot of confusion and misinformation on the web. Here’s some of facts as well as some of my thoughts on the subject. I hope it will help clarify what Flex is all about for some people.

A Brief History

Flex started its life in 2002 as a framework to develop enterprise applications for Flash. I think this makes it the oldest framework around for web application development. Flex in its infancy actually took on a very different form than what it currently is. It started off as server-side technology. Over the years, Flex evolved greatly, and four major versions were released. By the time that Flex was at version 3.x, it was a widely popular framework for web application development. A few years ago, Flex 4 was created which had a much more sophisticated skinning model and numerous improvements in the framework as a whole.

As most people know, Steve Jobs waged his war against Flash a couple of years ago, and Adobe shifted its focus. Enterprise application development is no longer a focus at Adobe. At least as Flash is concerned, Adobe is concentrating on games and video. Flex was no longer important to Adobe’s strategy, but it was still a highly popular development framework. I think most people would agree that Adobe did the right thing and donated Flex to Apache at the end of 2011. In fact many would argue that Adobe should have donated Flex earlier. It’s important to note that Adobe did not just “dump Flex in Apache’s lap”. There are a number of full time Adobe employees still working on Flex including Alex Harui, the new Apache Flex PMC Chair.

Where Flex is Today

Despite all the talk about Flash being dead, it’s still a very active technology. There’s lots of websites that use Flash to better deliver content. Some can be replaced by HTML5, but some cannot. Simply reciting the HTML5 mantra doesn’t necessarily make a better user experience for users. But let’s ignore the Flash plugin for a moment and pretend it doesn’t exist anymore…

Not just web

When most people think of Flash technology, they think of the Flash run-time that runs as a browser plugin. The fact of the matter is that Flash technology goes way beyond the browser plugin. The AIR runtime is much more powerful and capable big brother to the Flash browser plugin. Being able to quickly write an application and simply deploy across multiple platforms makes AIR a very compelling development environment. No Flash on iOS? What about AIR? I recently had a very amusing discussion with a friend of mine about the feasibility of creating a specific app using AIR. He had a hard time believing that AIR for iOS and AIR for Android could be used for building serious apps. Why does nobody know that all the Adobe touch apps were created using AIR? I blame Adobe for that. Their marketing department leaves what to be desired. They have the most powerful app publishing platform out there, and so many people believe the “Flash is dead” mantra. It’s sad really… But enough of the past. Let’s discuss the future!

Adobe “Dumping” Flex Was a Good Thing!

I’ve seen a lot of popular opinion that Adobe donating Flex to Apache was just the writing on the wall that Flex is dead. The logic of that argument always escaped me. Why is donating a rich project with many followers to a thriving open source organization a death sentence? The fact is, that the donation of Flex to Apache is the best thing that ever happened to Flex. If I’m not mistaken, the Flex mailing list discussions are the most activate of all the Apache projects. For the first time in Flex history, Flex is a true open source community with all the goodness associated with that.

But Flex was always open source!

Well, it depends what you mean by “open source”. It was in the strict sense of the word, but definitely not in spirit. It was open source in the sense that you can see how the components were implemented, crack them open and change them if you so desire, etc. It was not open source in the sense that anyone could contribute. The only way anything could be changed in Flex before it was donated to Apache was by Adobe employees making changes to the code and committing those changes. There have been countless bugs that had not been fixed and countless improvements that could not be made by the community at large.

As part of the Apache Software Foundation, Flex is truly open source. Literally anyone can contribute bug fixes and new innovations. If there’s an itch you’d like to scratch, you can scratch it yourself. Any one of the volunteers would be happy to commit new code, and if you put in enough effort, you will quickly become a committer yourself. In the last year there have been many new committers added who are doing incredible work advancing Apache Flex.

The discussions on where Flex is headed is incredibly refreshing. Flex got a new face, with a new logo, and a new beautiful website which should be live any day now. Of course I haven’t even discussed the innovations going on!

Flex Innovation is Exploding!

There has been a lot of work done on Apache Flex since the donation process started a little over year ago, and the momentum of the project is picking up rather than slowing down. There have been a whole pile of bugs fixed. There were new components donated. There have been discussion on how to improve Flex for mobile including GPU accelerated and 3D rendering. There have been countless stimulating discussions about where Flex is today and where it’s heading. What Flex is, etc.

What is Flex?

A year or two ago, you might have defined Flex as a framework for building Flash and AIR applications. A year or two ago, you might have even been right. But if someone defines Flex using that definition today, they would be totally wrong. A year ago, the future of Flex was totally tied to Adobe and what Adobe decides to do with Flash and Actionscript.

Falcon Compiler

Possibly as significant a donation as the Flex framework itself was the Falcon compiler. Actually, it might be even more significant than Flex itself! As someone so eloquently put it: “If you own the compiler, you own the language”. The donation of the Falcon compiler to Apache Flex is complete and Gordon Smith is currently finishing up the MXML functionality of the compiler. This means that the future of the ActionScript 3 language is in the hands of Apache Flex. The new Falcon compiler is extremely versatile and Adobe even donated a reference implementation of a Javascript cross-compiler based on Falcon. In my opinion, the future of Flex is in the Falcon compiler.

Flex to Javascript and HTML

If this concept is new to you, you have definitely not been following the Flex mailing lists. There’s not one but three different efforts currently going on to cross-compile Flex applications to Javascript and HTML. There are multiple efforts on different approaches to dealing with generating an HTML UI. This includes a new set of Flex components designed to be compiled both to Flash/AIR and HTML. The work on HTML Flex applications is moving at an incredible pace! Two implementations went from concept to a working demo in less than two months! The cross-compilation is being worked on by some really smart guys, and it’s really modular. The plan is to support a wide range UI frameworks, so native Flex frameworks can be supported as well as Sencha, jQuery UI, Google, etc. Another approach possible with the new generation of Flex will be a separation of business logic and UI design as in the Randori approach developed by Michael Labrioli.

This all adds up to an extremely powerful framework for creating HTML applications that can be used across a really wide range of developing requirements. The future of Flex is looking more exciting by the day! We could very likely be using Flex to create full HTML applications before the year is out!

It Goes Beyond HTML

The potential of the cross-compilation approach goes way beyond web apps. The same way the Falcon compiler is already being used to cross-compile to Javascript, it can be used to cross-compile to Java or Objective C. In other words, we could conceivably cross compile Flex applications directly to native mobile apps without the need for AIR or HTML application wrappers.

The dream of “write-once, deploy everywhere” was not quite realized by Adobe Flex, but it very well might be realized by Apache Flex!

Posted in Technology | Tagged , ,

  1. Comment by ydk2     Posted: February 19, 2014 at 1:16 am

    Sorry but Apache Flex needs both AIR and FLASH I try it today.

  2. Comment by Ron     Posted: December 23, 2013 at 7:01 pm

    Wait, folks! Don’t give up on Flex! You too can write MXML and Actionscript, which we can then translate into HTML and JS. After all, we all know it’s much more efficient to do it this way, rather than just developing in the target language to begin with.

  3. Comment by gogogogo     Posted: October 1, 2013 at 1:49 am

    The sad day was the day when Macromedia was sold to Adobe, i literally was depressed back then. Macromedia software was the best out there for creative professionals. If there still was Macromedia, we would still have healthy Flash and Flex in one piece like it always was, they would evolve and run circles around html5. Adobe are nubs.

  4. Comment by Faiz     Posted: August 29, 2013 at 11:02 pm

    Thanks Herbs, very nice,brief and compiled article.

  5. Pingback: Is there a future for Flex? | abbeythoughts

  6. Comment by Jolly     Posted: August 14, 2013 at 12:39 pm

    Really very helpful article. This help to inspire companies to work on flex for future products.

  7. Comment by Harbs     Posted: June 11, 2013 at 3:59 am

    CS Extensions use the Marshall Plan which causes issues with mixing an matching SDKs.

    You definitely cannot use 4.9.1 in pre-CS6. I don’t know if it’ll work in CS6 — probably not. CS Extensions use a customized version of Flex. You might be able to overlay parts of the newer SDK if you have need for specific classes though.

    I would be interested in hearing if you get 4.9.1 to work in a CS Extension.

  8. Comment by Romeo Copaciu     Posted: June 11, 2013 at 2:44 am

    Nice article, I’m a flex developer for years and there’s information here I had no idea about, on a side note: do you think it’s possible to use Flex 4.9.1 Framework into a Creative Suite Extension (2.0)? I don’t see why it wouldn’t be but maybe I don’t see something.

  9. Comment by Jude     Posted: May 28, 2013 at 3:43 am

    Asking questions are actually fastidious thing if you are not understanding something fully, except this article offers fastidious understanding even.

  10. Comment by Viktor Stevich     Posted: May 15, 2013 at 3:31 am

    I totally agree with you. When I read the Adobe comment NOV/2011 made me so confused I had question marks all over my head. At that point I thought 2 things, either the man from Adobe who was trying to kill Flex was a)drunk or b)depressed? . I think the best thing happened to Flex is that Adobe gave it to Apache. About the popular question Flex vs HTML5, I do not even want to talk about it, if I choose the technology I will choose 10 out of 10 times Flex, there are many reasons for that which I cannot write in such a small message.

  11. Comment by Vlad     Posted: May 2, 2013 at 11:43 am

    Very nice talk about JAVASCRIPT. Only I disagree with native apps. On latest conferences developers more prefer work on WEB app rather then native. Users don’t want to have more then 100 apps on their device and meter of try is sign up on the web.

  12. Comment by Harbs     Posted: March 22, 2013 at 12:24 am

    Yes. With the Falcon compiler, Apache Flex is in complete control over how the language develops.

    Future AIR compatibility is a concern, but I imagine it will be a while before there’s any real chance of compatibility issues. Yes. More cross-compilation capabilities will mean less reliance on even AIR runtimes. Removing as much dependance as possible on Adobe’s runtimes (while maintaining existing compatibility) is a very strong goal of Apache Flex.

  13. Comment by Brian Fogel     Posted: March 21, 2013 at 11:30 pm

    Very, very helpful article. I am really trying to understand the full ramifications of Adobe’s moves. I’m no longer worried about Flex’s future, but I am still worried about Actionscript’s future and the future of the runtime AIR, both of which I need to develop cross-platform apps.

    Is it true that whoever controls the compiler also controls the language? If that’s true then maybe I don’t need to worry about Actionscript, but AiR remains and will remain the property of Adobe and they can make it less and less compatible with Flex.

    Are you saying that with more and more cross-compilers from AS to other languages that we will become less dependent on even the AIR VM?

  14. Comment by Giovanni Candido     Posted: February 24, 2013 at 4:02 pm

    Very good article

  15. Comment by Gaurav     Posted: February 8, 2013 at 2:54 am

    Thanks for such a nice update about flex……………….Rest ….I dont have any doubt regarding Apache ppl………………………

  16. Comment by Arne     Posted: February 4, 2013 at 12:17 pm

    You really made me happy. A terrific article. Thank you very much.

  17. Comment by Baluvasireddy     Posted: February 4, 2013 at 6:57 am

    Nice article dude :)

  18. Comment by Devesh     Posted: February 3, 2013 at 9:53 pm

    Looking for more about further development into Flex.

  19. Comment by Pooyan     Posted: February 1, 2013 at 7:18 am

    Thanks for the interesting post. I am excited by the contribution that Flex receives at Apache, and I agree this is the best thing happened to Flex until now.

  20. Comment by Joel T.     Posted: January 31, 2013 at 8:10 pm

    What an encouraging post for Flex developers! Thanks for that!!!

  21. Comment by David Hamiter     Posted: January 29, 2013 at 10:32 am

    Nice post! I, too, have excitement and high hopes for the direction of Flex and spill over the mailing list daily.

  22. Comment by Prashant     Posted: January 29, 2013 at 7:36 am

    Among other things, your article does offer a lot of insight into the Falcon compiler related work – thanks so much for taking time and sharing it.

  23. Comment by Michael Schmalle     Posted: January 28, 2013 at 3:57 pm

    @skedio No, The actual Flex project inside Macromedia started 2002. From the mouth of Gordon Smith, the main developer.

    Very nice article, when it comes to things being relevant, people that dish on technologies are either ignorant or have a reason they want it to fail. Apache Flex is “not” Adobe Flex anymore, it is a compiler and it’s future is in the hands of the developers that wield that compiler to do new and innovative things.

    jQuery does not have a compiler that they can personally work on like we do.

    Mike

  24. Comment by skedio     Posted: January 28, 2013 at 2:19 am

    Nice article. Just one little thing, Flex version 1 was born in 2005, not 2002…

  25. Comment by Anand     Posted: January 28, 2013 at 1:55 am

    Yes, I so agree to everything what you wrote here. When Adobe decided to move on with Flex, it actually gave a new life to the technology.
    No doubt Flex has potential and which is why its a mainstream technology. Adobe AIR, cross compilation, Native extension support. They all will improve with course of time.
    I see a future where Flex is running from Desktop/web/devices and TV. No devices left.

    I strongly believe in flex and wrote my thoughts on somewhat on the similar track.

    https://www.planetria.com/blog/5-reasons-why-you-should-code-in-apache-flex-air

    I wish all success to Flex. Me and My organization believes in Flex and will continue serving Cross-Platform applications using Flex.

    -Anand Vardhan
    Founder, http://www.planetria.com

Leave a Comment »