Apache Flex Proposal
Apache Flex is an application framework for easily building Flash-based applications for mobile devices, the browser and desktop.
Apache Flex allows developers to target a variety of platforms, initially Apple iOS, Google Android, RIM BlackBerry, Microsoft Windows, and Mac OS X with a single codebase. Flex provides a compiler, skinnable user-interface components and managers to handle styling, skinning, layout, localization, animation, module-loading and user interaction management.
Apache Flex is the software evolution of the popular Adobe Flex SDK project. Adobe Flex SDK evolved from the need to provide developers with an easy programming model for creating rich Internet applications that can run in the browser, on the desktop or on mobile devices.
Adobe Flex SDK has always focused on a single goal: to provide application developers with all of the constructs needed to boost their productivity while building large-scale, visually expressive applications. This meant that Flex provided all the traditional UI components in a way that designers and developers could interact with them along with a dynamic scripting language, ActionScript, and a declarative markup language, MXML.
Adobe will donate the Flex trademark to the Apache Software Foundation as part of the incubation process. The source code, documentation and related assets will all be contributed to the Apache Foundation as Flex.
Content developers need to target multiple screens and the cost of creating applications native to every target platform is high. Additionally, the dominant window to the web is quickly becoming devices, mostly phones, and delivering consistent experiences is key. The Apache Flex project exists to bring the focus back to a consistent development model, one where a single application can run the exact same way across the web, desktop and mobile devices.
- Donate all Adobe Flex SDK source code and documentation to the Apache Software Foundation.
- Setup and standardize the open governance of the Apache Flex project.
- Rename all assets from Adobe Flex SDK to Apache Flex in project source code, docs, tests and related infrastructure.
Flex is a mature software project. 1.0 was shipped in March of 2004 with 7 major releases having shipped since. The most recent release was the 4.6 version which shipped on November 29th, 2011.
Once mailing lists are created (https://issues.apache.org/jira/browse/INFRA-4260), people will be able to subscribe to the podling's dev list by sending a message to email@example.com .
The Adobe Flex source code is available to the community on the Adobe opensource site: http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK. Currently, while the community has been invited to contribute patches to the codebase, only Adobe employees decided on which patches to commit. There were no external committers and this caused frustration in the community.
Going forward, both Adobe and our community are eager to become one single merit-based community working together. To that end, Adobe employes only have a minority representation on the initial committers list. Adobe is working to educate our community with meetings and blog posts on how the Apache model makes this possible for them.
We have made it clear to our community that going forward, the community, rather than Adobe, will determine the future of Flex.
The community surrounding Flex is vast, diverse, distributed globally, and with all levels of proficiency in software development. The common thread of application development binds all Flex developers together.
It is estimated that there is between 350,000 and 500,000 Flex developers worldwide. Precise numbers are impossible for us to know due to the open nature of Flex. A blog post calling for initial committers received over 60 responses in two days. The FlexCoders mailing list, a general-purpose mailing list for anyone working with Flex, has over 9000 members. A quick look on the Adobe Forums or Twitter’s #AdobeFlex hashtag usually shows activity within minutes. The community is engaged and active daily and incredibly excited by Adobe’s move to contribute Adobe Flex SDK to Apache. The community is responsive, inclusive and honestly emphatic when it comes to bettering Flex for application development.
The only way the Apache Flex project can work is if it is an open, transparent and collaborative effort. The project has now grown in mind-share and community enough that we believe it is time we work with a foundation to see the code mature in a fashion consistent with our values.
Moving from a corporate-led project to the Apache model of collaboration is a challenge, and Adobe is committed to help making the transition as smooth as possible, by delegating employees to work on the new project. We would like to see more free collaboration from the community but with the same principles that has kept Flex with the high-quality design and ease-of-use it has maintained under Adobe’s governing hand.
We will, over time, be moving all of the documentation, including localized versions, from Adobe (http://www.adobe.com/devnet/flex/documentation.html) to the Apache Software Foundation.
All code related to the Apache Flex project can be found on SVN here: http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/
Source and IP Submission Plan
- All canonical source will be moved to Apache infrastructure under the name Flex.
- Documentation and specifications will be moved completely over to the Apache systems.
- The existing Flash Builder trademark will be used as a commercial entity.
- Existing Flex-related conferences, podcasts and websites should be allowed to continue using “Flex” as part of their name, however such use will have to conform to existing Apache trademark policies listed at http://www.apache.org/foundation/marks/ . Apache Flex will need to create guidelines and provide guidance for that.
Some parts of Flex development rely on third-party libraries. The complete list is still being determined but some are:
- Adobe AIR SDK
- Adobe Flash Player SDK
- Adobe Text Layout Framework (TLF)
- Adobe Open Source Media Framework (OSMF)
- Adobe Font Engine (AFE)
Licensing of these dependencies will have to be checked, and possibly adapted, to allow their use in Apache Flex.
- FLEX project in JIRA.
Wiki will be requested as needed.
- Alex Harui (aharui at adobe dot com)
- Carol Frampton (cframpto at adobe dot com)
- Adam Flater (adamflater at gmail dot com)
- Anatole Tartakovsky (atartakovsky at faratasystems dot com)
- Ben Kolin (bkolin at vmware dot com)
- Chuck Mastrandrea (chuck.mastrandrea at sas dot com)
- Douglas Arthur (darthur at vmware dot com)
- Espen Skogen (espen.skogen at jpmorgan dot com)
- Gabor Csomak (csomakk at gmail dot com)
- Garth Braithwaite (garthdb at adobe dot com)
- Greg Owen (Greg.Owen at effectiveui dot com)
- Igor Costa (igorcosta at gmail dot com)
- Iwo Banas (banas.iwo at gmail dot com)
- Jeff Boothe (jeff.boothe. at reurgency dot com)
- Jeff Tapper (jeff at spoon.as)
- Jeffry Houser (jeffry at dot-com-it dot com)
- Jeremy Tellier (jtellier at Actieve dot com)
- Jon Rose (jon.rose at gorillajawn dot com)
- Jonathon Campos (jonbcampos at gmail dot com)
- Jun Heider (jun at realeyes dot com)
- Kevin Korngut (kevin at spoon.as)
- Leif Wells (leif.wells at gmail dot com)
- Michael Jordan (mijordan at adobe dot com)
- Michael Labriola (labriola at digitalprimates dot net)
- Michael Schmalle (mike at teotigraphix dot com)
- Michelle Yaiser (myaiser at adobe dot com)
- Nicholas Kwaitkowski (nicholas at spoon.as)
- Omar Gonzalez (omarg.developer at gmail dot com)
- Peter Elst (peter.elst at gmail dot com)
- Pratyoosh Sharma (pratyoosh.sharma at jpmorgan dot com)
- Rui Silva (rui.silva at alert-online dot com)
- Ryan Frishberg (Ryan.Frishberg at ubs dot com)
- Scott Delamater (sdelamater at shutterfly dot com)
- Sebastian Mohr (masuland at gmail dot com)
- Stephen Downs (stephen.downs at tink dot ws)
- Stephen Gilson (smgilson at adobe dot com)
- Bertrand Delacretaz
- Bertrand Delacretaz (bdelacretaz at a.o)
- Greg Reddin (greddin at a.o)
- Anne Kathrine Petteroe (akpetteroe at a.o)
- Dave Fisher (wave at a.o)
- Apache Incubator