Something about this gives me the willies... It feels like a language designed on indie game forums for non-programmers who can about wrap their heads around the basics of ActionScript. The value it brings doesn't really make sense for a non-trivial project-- compiling for, say, Flash and <canvas> sounds nice, but in what circumstance would I really want the same code to target PHP, AS3, and C++?
Even the name seems to be saying "Using this will make your game cooler!"
On the other hand, when I say that out loud, I probably sound like quite the elitist... it's not doing any harm to me, and getting more people into coding has gotta be a net good. Maybe I'm just not looking at it right as a programmer rather than someone less technical who just wants to get their game out to as many people as possible. Can anyone set me straight on this?
Actually I know a Flash developer who used to use haXe instead of Macromedia (and then Adobe) tools because the language and the standard library were better, and also because the produced SWF files were lighter and executed faster. He could avoid paying for the professional Flash tools and saved a lot of money thanks to that (so he made a good donations to the haXe project). This was before ActionScript 3 and I don't know if it holds since. But the point is that it is clearly not "a language designed on indie game forums for non-programmers".
Also, I believe haXe is used for every projects of Motion-Twin[1], the company at which Nicolas Canasse works. That means a lot of good flash games which a lot of people are playing daily.
Okay, that I totally buy. Macromedia's (and Adobe's) tools were pretty abysmal.
And I guess that answers my question in general, too: It's not supposed to be a general-purpose language, and for casual games specifically multi-platform has a lot more cache.
Motion Twin, I believe, use it to power their websites - the javascript, Flash game code, server side multiplayer and web site code are all written in the same language. That's ridiculously powerful for that specific use case.
PHP wasn't an original goal; the first versions of haXe only supported Flash, JS, and NekoVM(A server-oriented VM Nicholas created). The community added the PHP target later since there was demand for using it on cheap web hosts in place of Neko.
Today there's a stronger demand for the C++ target and cross-platform graphics APIs, to get a solution that works on the web and mobile platforms equally well.
I guess it's part of the same appeal nodejs has on. Using the same set of APIs, for example you can parse XML the same way independently of each compiling target.
I suppose you will never use the same code to build a game in flash and something like PHP, but you could share the same model classes, like Player, Score Tables, etc.
Nick Cannesse, the designer of HaXe, Neko VM, mtasc and various other pieces of systems software is a competent ML hacker and has the requisite theoretical background to hold his own in PL design. He's also contributed a bunch of Ocaml libraries.
Even the name seems to be saying "Using this will make your game cooler!"
On the other hand, when I say that out loud, I probably sound like quite the elitist... it's not doing any harm to me, and getting more people into coding has gotta be a net good. Maybe I'm just not looking at it right as a programmer rather than someone less technical who just wants to get their game out to as many people as possible. Can anyone set me straight on this?
Whoever is downvoting me is exactly who I mean.