I was asked to comment on the possibility of the Apache Flex Community to port Flex to Haxe, and use it has its main technology, so I posted the following mail on the Apache Flex mailing list.

I'm sharing it as well on my blog because it might also interest people that are not Flex subscribers.

--

I would say that there actually two choices to make there : one from a technical point of view, and one from a political point of view.

From the technical point, and with all due respect to AS3, Haxe as-a-language is way ahead in terms of features. I'll not make the list of all the improvements we made, please look at the documentation and make your own idea about it.

Of course, Haxe is a different language from AS3. In particular because it's been designed from the very start to be able to compile and run efficiently on different platforms (Flash, JavaScript, but also PHP,C++,C#,Java,etc.)

Efficiently is the keyword here.

Everybody working on compilers know that running a X language on a Y platform it's not been designed to run on is HARD. You can easily convert it to 80% - the part that always looks easy - then the next 10% are very hard, and the last 10% almost impossible without killing overall performances.

The reason is simple : most of the languages (including AS3) have been designed together with the platform/VM they run on, so adapting it to another runtime which made different choices is like trying to fit a square in a round hole : it doesn't fit - unless maybe you cut the square corners.

Haxe has been designed from the start to favor features that enable us to compile it efficiently on all platforms. It doesn't mean that we are using the lowest common denominator of all possible platforms, it's just that we make actual design choices that enable us to have great highlevel language features while still being able to compile them natively and efficiently on each platform.

I'm explaining that because I know you want to target Javascript/HTML5 with Flex as well. Don't take it lightly : one good share of Flex future is definitely there, and trying to do everything by yourself is definitely a very hard road to take.

I'm not a Flex expert, and to be honest I have never used it, so there might be pending issues and technical questions that you have regarding the best way to port Flex to Haxe : feel free to ask them there, I'll try to answer them to my best.

Now from the political point of view :

First, let me say that in the Flash world, Haxe is one of the most active open source community and we are very happy to welcome Apache Flex developers as a open source sister community.

I've personally always been a huge support of open source philosophy : some of you might also have used MTASC a long time ago, I hope you enjoyed its quality and speed and that you will find the same enjoyment at using Haxe - if you use it at some point.

You are now an independent community, which is great : you can now make your own choices, which should not be based on marketing, branding or overselling of a given tech, but on technical points.

Adobe is currently pressured and has to make hard choices. You don't know what they will be, you don't know where they will go, and if they say Left, it might finally be Right after a few months. I don't blame them : they're a commercial company, they have their own agenda to take care of, it's just the way it is.

OTOH, Haxe community has no hidden agenda : we thrive for the best technology, everything is open source, discussions and patches are welcome. We of course need to be conservative in terms of language features in order to not bloat the compiler and to keep the language elegant and coherent, so in the past years we've been improving things step by step, without either hurrying or slowing down.

In the past year, while Flash has suffered several drawbacks, Haxe has definitely gained a huge momentum. In great part this is thanks to its community which has been writing code, but also making things more visible / accessible for developers.

For instance http://haxenme.org is a great example of it : Haxe now enables to write-once compile-natively-everywhere on iOS, Android, Flash, Desktop and much more. You could do it before, but it's now much more easy, and people know about it.

Sorry if I feel to much enthusiast about it, but I'm definitely excited about the times to come.

Momentum is an important things for technology, especially when it's open source : it keeps developers motivated, it brings new people to the community, it helps making the right choices at the good time.

I'm definitely sure that Haxe momentum can help the Flex community, and vice-versa.

Now I guess you have two distincts choices left : continue to follow Adobe plans or adopt another technology (Haxe or something else) and move forward.

I can't decide for you, but I can at least answer the questions you might have.

Best,

Nicolas