Flash, Flex, Open Source?

(Via Alex Russell’s blog I came across Mike Shaver’s “Being Open About Being Closed,” which is an excellent discussion of Adobe’s positioning of the Flash player and Flex in Top 10 Adobe Flex Misconceptions.

As Mike points out, the fact that the Tamarin is an open source project, and that various people in the community have over time deciphered the SWF file format, does not make Flash anything other than a proprietary product.

In many of the presentations I give about rich Internet applications, I use a slide which looks something like this:

Ajax and RIA Frameworks

It’s intended to communicate two key concepts:

  1. There are a huge number of mature, professional open source toolkits and frameworks for building RIAs.
  2. There is strong pressure on proprietary, closed, commercial toolkits and frameworks in this space to open up, at least in terms of source code visibility and modifiability, if not in terms of redistribution.

I suppose one could argue about the relative placement of Silverlight (which coincidentally this morning is throwing classic “Server Error in ‘/’ Application.” errors), since there is will be an open source implementation of it (moonlight). Adobe Integrated Runtime (AIR) similarly is a very proprietary package although it leverages webkit and Adobe cooperates with / contributes to the webkit community. The Flex SDK is free (as in beer, not as in freedom), though my impression is that teams which expect to do serious Flex development work end up using the proprietary toolset and other closed-source pieces (AMF) in addition to what is in the open SDK.

Does it matter? Do you care if the framework on which you build RIAs is fully open, partially open, or not at all open?

As I argued in my discussion of Mozilla Prism versus AIR, I think it matters quite a bit in certain scenarios, perhaps less in others.

At a minimum, before you invest significant development time (and therefore dollars) in building on a given framework, you ought to have a clear understanding of what parts of it are open and what parts are not.


  1. See also this Ars Technica post which describes Adobe’s open sourcing of BlazeDS and the format used in AMF.

    BlazeDS is available.

    This press release says that:

    . . . the technologies included in BlazeDS, along with the Action Message Format (AMF) protocol specification, are being contributed to open source under the Lesser General Public License (LGPL v3), and are available immediately as public betas on Adobe Labs.

    But it looks to me like in downloading BlazeDS beta you have to accept a terms of use which is certainly not LGPL.

    Returning to the press release, I saw this at the end:

    Subscription pricing will be announced at the time of general release of BlazeDS under the LGPL v3, currently scheduled for early 2008.

    So it will be LGPL at some point, but for now it is only free as in beer.

  2. The Flex SDK, including the Flex framework, the Flex compiler and the debugger, are free as in speech, not beer. Version 3 of the SDK is licensed under the MPL license, with a public bug database available at http://bugs.adobe.com/flex/

    So, I would say that you should probably move Flex to the open source side of your slide. Keeping AIR and Flash on the proprietary side would be accurate.


    Mike Potter
    Adobe Flex Team

  3. Thanks Mike. Flex is meant to be straddling some vague grey area there in between, with some portions open and others not.

    Maybe too hard to split on versions, but the Flex 2 SDK seems to have a pretty restrictive license, with no modifications or reverse engineering (see 2.10.x in the Adobe Flex 2.0.1 SDK License you have to accept to download). Version 3 moving to MPL is certainly good news, as is the impending LGPL of the BlazeDS and AMF spec.

    Are there still other parts of the Flex stack that remain proprietary, or are the Builder and the Flash player the only remining bits?

  4. Hi John,

    Flex Builder is a set of extensions to Eclipse. Those extensions are not open source. That said, the compiler is part of the Flex 3 MPL license and there are numerous third party, free and/or open ways to code Flex apps, so that part of the stack is open, with options to use non open software just at IntelliJ Ideas or even Adobe Flex Builder.

    The VM in the Flash Player (Tamarin) for both desktop (and now mobile, as of last night) is also free as in speech and hosted by Mozilla. The rest of the Flash Player is free as in beer, but not open.


Comments are closed.