Can Flex save Flash?

Posted by on March 3, 2010
 

A lifetime ago, I wrote an article titled Flex and PHP: Party in the Front, Business in the Back in which I had this to say about Flex.

Flex won’t help developers like me design eye-pleasing interfaces any more than a new pencil would improve my inability to draw.

After writing the article and the accompanying source code, I packed away my Flex license and went back to programming PHP application because…well, because PHP solved the problems I was working on (honestly, that’s the only real reason to use any tool).

In 2009, Marco Tabini (now a business associate of mine, at that point just a good friend) contacted me and asked me to present on Flex during the CodeWorks ’09 conference tour. It had been a long while since I had even thought about Flex, so I installed the 60-day demo and started playing around again. (Yes, that’s one of the things I love about flex: Adobe recognizes that you can’t get the feel for a language in thirty days so the test drive is sixty. Go Adobe!)

Over the course of the seven cities that made up the CodeWorks ’09 tour, I presented 11 hours of sessions on Flex. At each stop, I built a simple twitter client from scratch as the attendees watched (incidentally. I learned a lot about live coding in conferences sessions and the importance of not depending on conference Internet connections). Even though I hadn’t worked with Flex in more than 2 years, I was able to easily slip back into the groove and build this simple example from nothing more than an idea every time.

Since then, I’ve moved back home to the US and am now a partner with Blue Parabola. The very first project I worked on was a simple but media-rich online contest that I chose to build in Flex for the New York Red Bulls soccer team. The final product looks excellent—I did not design the User Interface—and works well (I did write all the code). I was very pleased at how easy it was to build a moderately complex piece of front-end code.

Why Flex?

For this particular project, the client had given us complete freedom in choosing both frontend and backend technologies. For the latter, we chose PHP—it’s perfect for what, in the end, amounts to a simple data-manipulation system. The three obvious choices for the former—where the real heavy lifting of this project takes place—were JavaScript/HTML, Silverlight and Flash/Flex. I chose Flex because I felt that the tool, Flex Builder, would make a difference in the speed of development, which was important because the project was time sensitive. I knew the project could have been done in JavaScript/HTML (except possibly for the video), but the combination of my rusty JavaScipt skills along with the absence of a good tool like Flex Builder made the choice for me.  By the same token,  I have never worked with Silverlight and, while I would love to do a project with it, I didn’t have time on this project to learn a totally new language.

The point of the above preamble was to show that I feel that Flex and Flash are both still useful technologies. The question is, how much longer will Flash be useful and can Flex extend that useful lifetime?

Apple vs. Adobe

As I pointed in Let’s get all the facts on HTML5 whether you like Flash or not, you cannot deny the fact that it filled an important gap up till now as HTML, CSS and JavaScript just were not up to the task of rich UI and things like video.

No one has been beating the drum the anti-Flash drum more than Apple. With it’s top management reportedly claiming that Flash is buggy and performs poorly, Apple has allegedly denied Adobe access to the iPhone and iPad like a spoiled child protecting a favorite toy. If true, Apple’s attacks on Adobe are especially grievous since if Adobe had not been so supportive of Mac in the early days—producing top quality graphics tools for Mac first and giving Microsoft and Windows users the cold shoulder—Apple and the Mac platform would not be enjoying the loyalty of the graphic design community. It is disheartening that Apple seems willing to forget its friends when it’s convenient. Even when it’s pointed out than many of Apple’s arguments against Flash are specious at best, they continue to liken Flash to floppy disks.

Apple’s bad behavior notwithstanding, the question of whether the venerable Flash has reached its end of life is, of course, the crux of the matter.

Flash vs. HTML5

It is true that HTML5 contains many—but not all—of the features that Flash has given the web over the years. I do look forward to HTML5′s finalization and adoption, the fact of the matter is, Flash is here now. With the exception of Apple, it’s widely supported and usable now. Flex adds to Flash in very important ways, the most important being that it makes the tool much easier for programmers to work with. Even if HTML5 were adopted in a consistent way across browsers tomorrow, there are still no tools like Flex Builder that programmers can use to build applications with it.

That is the most important thing that Flex brings to Flash: professional grade tooling. The Flex framework, which Adobe has open sourced, makes application development quick and painless for programmers familiar with event driven programming. Arguably, anyone familiar with JavaScript can leverage that skill with Flex given that ActionScript is a close (and somewhat more powerful) cousin to JavaScript. Flex Builder gives a solid IDE in which to build. While I am not a fan of Eclipse, I do recognize its importance and acknowledge the fact that its adoption is widespread across many different languages. It is a good tool and it was smart of Adobe to build on top of it.

It ain’t over until it’s over

So, to answer my own question, can Flex save Flash? The answer is a resounding “for now.” No technology lives forever and Flash has had a great run—however, it’s not quite done yet. Apple’s petulance aside, Flash will continue to be an important technology for some time. Flex will allow programmers more freedom to create Flash-based applications for both the web and for the desktop.

Microsoft’s Silverlight and HTML5 will both challenge Flash for dominance in the coming years. One of them may eventually unseat it. However, don’t expect to see that happen soon: given the slow rate of adoption on the web for new technologies, it could arguably be in the five years or more before one of them has the adoption rate to unseat the reigning champion. Remember—Flash is still installed on 99% of computers (and that’s according to both Adobe’s own metrics and several independent surveys), a statistic that other technologies would kill to have. It will take time and a good set of tools to unseat Flash from its throne.

So for the time being, developers and designers alike will continue to develop Flash applications for the web and the desktop. As for me, I’ll continue to develop ugly apps and turn them over the likes of the lovely and talented Kathy to make them look nice. A sharper pencil just gives me another way to hurt myself and others.


About the author—Cal Evans is a veteran of the browser wars. (BW-I, the big one) He has been programming for more years than he likes to remember but for the past [redacted] years he's been working strictly with PHP, MySQL and their friends. Cal regularly speaks at PHP users groups and conferences, writes articles and wanders the net looking for trouble to cause. He blogs on an "as he feels like it" basis at Postcards from my life.