The timing of these announcements by Adobe is regrettable. They have spooked the community and left many of us who build on Flash technologies as part of our business unsure of the short to medium term future of Flash. Yet there is currently no alternative RIA solution that can equal Flex. What other solutions there are use very different technologies. making migration difficult at best.
So I’m proposing “Project FlaXe” to address that and to turn haXe into a first-class Flex programming language. The steps involved are still a bit undefined at this stage as I’m rapidly trying to research a number of ideas and solutions, but they go something like:
- Create or identify a suitable existing AS3 lexical analyser and parser.
- Create a utility that uses that parser plus haXe generation routines to create a utility that can read an AS3 source file and output the equivalent haXe source file.
- Use this utility to process the whole of the Flex SDK and to generate the haXe equivalent: FlaXe.
- Identify those builtin classes used by Flex that are not yet supported by haXe and create haXe versions.
- Use the utility to convert existing Flex applications, robot legs and other essential AS3 frameworks and libraries into haXe code.
- Initially compile those haXe solutions for the Flash player to allow life to continue as normal for a time.
For stage one, at least two possible starting points exist. Firstly, as previously mentioned, the source for the mxmlc compiler is available and – subject to there being no sticking points with license terms – could be used to provide the parser, with the back end being replaced with a haXe generator. Another possibility is the asblocks and jasblocks projects by Michael Schmalle that appear to offer both AS3 (could be self-complied into haXe maybe?) and Java parsers for reading AS3 files.
If this project interests you and you’d like to get involved in some way, know of any flaws to the idea, or have some good suggestions, please leave a comment or drop me an email at david at davidarno. org.