This is a modified version of a letter I wrote to a client to defend the choice of using Flash. This issue has come up due to some recent PR heat that Adobe is abandoning Flash. I believe that Flash and Flex were the right choice for building Enterprise applications a year ago. I believe that Flash and Flex are the right choice for building Enterprise applications today. As HTML5 tooling, frameworks, and related resources improve I will reevaluate my needs and the needs of my clients on a routine basis. I had to remove some client specific information, but the bulk of the information remains the same.
Here is the letter:
Per our recent discussion, regarding Flash and Flex, I wanted to clarify a few things to in writing. In the recent weeks, many media outlets have reported that Adobe is abandoning The Flash Platform in favor or HTML5 solutions. This represents an incomplete understanding of the facts, and I hope to clarify that here. Such a statement would be like saying Amazon.com is going to abandon selling real world goods because they released the Kindle Fire.
What is the Adobe Flash Platform?
First, for completeness, I want to clarify what Adobe's Flash Platform is. The Flash Platform consists of multiple deployment runtimes, development tools, and frameworks that are integrated across the full Adobe Creative Suite. Here is a list of some Flash Platform elements:
- The Flash Player: Flash Player is a browser plug-in which allows us to deploy web based applications to Windows, Mac, Linux, Android, and Blackberry.
- Adobe AIR: Adobe AIR is a runtime that allows us to deploy native applications to Windows, Mac, Android, iOS, and Blackberry.
- Flash Professional: Flash Professional is a tool for developing timeline based animations.
- Flash Builder: Flash Builder is an IDE to help programmer's write advanced code.
- Adobe Flex: Flex is the Software Development Kit that helps programmers build, debug, and deploy Enterprise applications with the Flash Platform. Flex includes a UI Component library, a SWF compiler, a command line debugger, an application profiler.
There are more aspects of the Flash Platform ecosystem, but I highlight these because they come from Adobe and are prominently used by Flash Platform developers.
We have built our applications using Adobe Flex to target the Flash Player desktop runtimes. One part of this decision is the breadth of the tooling available to us decreases the time it takes us to deliver a finished application. The ease of styling the default Flex Components also provides the applications with some cross platform elegance. They will work without change on the Windows and Mac machines used by your employees.
Is Flash Really Dead?
I want to quantify some of the press announcements over the course of the past week. The first one is that Adobe will no longer, personally, develop the Flash Player for Mobile Devices. This means that Adobe will not produce version of the Flash Player for Android, or Blackberry devices. To quote:
"We will no longer continue to develop Flash Player in the browser to work with new mobile device configurations (chipset, browser, OS version, etc.) following the upcoming release of Flash Player 11.1 for Android and BlackBerry PlayBook"
If you look at my list of Flash Platform elements above, it is clear this affects a very small subset of the Flash Platform; and not one we have targeted in our development. Through Adobe's Open Screen Project, licensees are able to continue their own development of the mobile Flash Plugin. RIM has already stated they will do this for Blackberry devices. To quote:
"As an Adobe source code licensee, we will continue to work on and release our own implementations. RIM remains committed to delivering an uncompromised Web browsing experience to our customers, including native support for Adobe Flash Player"
Moving forward, Adobe will focus on development of Flash Player 12 for desktops, and focus on using Flash Platform technologies to deploy Native Apps to mobile devices:
"Our future work with Flash on mobile devices will be focused on enabling Flash developers to package native apps with Adobe AIR for all the major app stores."
"We are already working on Flash Player 12 and a new round of exciting features"
According to the Adobe Max 2011 keynote, the Adobe touch apps, including Photoshop touch, were built using the Flash Platform. This is the surest sign of Adobe's commitment to the Flash platform.
"You've already seen some incredible examples of applications built in Flash. What do you guys think of the touch apps that Kevin showed you yesterday? So, they were useful and usable, they had rich UI, performed really well, very engaging interfaces. What you weren't told is that almost all of those applications were actually built in Flash!"
Source ~14 minutes, 20 seconds
Flash Platform technologies are continuing to evolve and provide a strong value proposition for our current use.
What does this mean for Flex?
A big part of the work we have done together has been based on the Flex SDK, and I wanted to highlight some changes about the future of Flex. The model with which Flex is developed will change. First, Adobe is working on making Flex part of the Apache Foundation:
"Adobe is in the process of preparing two proposals for incubating Flex SDK and BlazeDS at the Apache Software Foundation."
The Apache Foundation is one of the leading Open Source Foundations and the project will be managed by Adobe and some high profile Flex Community members from the Spoon.as project, an effort from the Flex development community to help improve the Flex Framework.
Continued development will take place under the open source foundation, however Adobe still plans to implement the road map they discussed at Adobe Max. This will include new components that make building applications easier, and an improved compiler that will make development easier.
Additionally, Adobe is committing to future Flash Builder improvements, with support for the future releases of the Flex SDK:
"Future versions of Adobe Flash Builder will continue to provide code editing, compilation, debugging and profiling support for Flex applications. Adobe will undertake the required work to ensure Flash Builder is compatible with future releases of Flex SDK."
The future of Flex is strong.
HTML5, ColdFusion, and Silverlight
Much of the recent press talks about how Adobe is abandoning Flash in favor of HTML5 development. I believe the information above is clarification that Adobe is not abandoning Flash. However, it is undeniable that they are investing heavily in HTML5 development tools. The primary reason for this focus is mobile device support. All major mobile web browsers-Android, iOS, and Blackberry--use the same rendering engine, Webkit, therefore providing a consistent experience across mobile devices.
"Wallaby is the codename for an experimental technology that converts the artwork and animation contained in Adobe(r) Flash(r) Professional (FLA) files into HTML."
HTML5 is something to watch carefully over the next 3-5 years, but it is not yet ready for Enterprise applications.
Another Adobe technology used in our projects is ColdFusion. ColdFusion is alive and well, and not affected by any of the recent announcements:
"There is no change in plan for next version of ColdFusion codenamed Zeus and we continue to go aggressively trying to make Zeus a kick ass release."
"We're still here--same leadership, engineers, and sales team as before last week--and we're still selling ColdFusion 9 and working hard on the next version of ColdFusion, codenamed ColdFusion Zeus."
With ColdFusion, we have nothing to worry about.
We had discussed Silverlight as a possibility, so I wanted to make you aware that many of the same issues which Flash Player experiences on Mobile devices will also be issues for Silverlight. In Windows 8, Metro style browsing will not support plugins:
"The Metro style browser in Windows 8 is as HTML5-only as possible, and plug-in free."
This means that the Windows 8 Metro UI will not support Flash or Silverlight. Traditional desktop browsing will still support both, but many believe that the metro interface will be the Microsoft interface for Tablets and other mobile devices. Additionally, rumors are that Silverlight 5 will be the last release of the player:
"Several of my customer and partner contacts have told me they have heard from their own Microsoft sources over the past couple of weeks that Silverlight 5 is the last version of Silverlight that Microsoft will release."
Converting existing projects to Silverlight would not solve any issues for us at this time, and may introduce other issues later.
Right now, today, I still believe that Flex is the right choice for the development we are doing together. We should continue to evaluate the state of alternate technologies on a routine basis to verify our choices. But, today I leave you with this quote
"..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."