1. While haxe has macros, they're like ocaml macros not like lisp macros. You can write a function that takes an ast and returns an ast, but because the language isn't homoiconic it feels a lot more like working with dom than like macros in lisp.
2. as2 is a superset of javascript, so it also has inline functions.
3. Having worked in haxe quite a bit, I found that the fancy type system got in the way more than it helped. I can't think of one case where it caught a bug, but I do have memories of spending hours writing typedefs and casting things to Dynamic.
4. You can't really target multiple platforms in practice, because nearly everything you might want to do depends on host-specific features. A multi platform codebase would be riddled with "if (flash) { } else if (c++) { } else if (javascript) { ...".
1. True, but whether or not this is good or bad is subjective.
2. It (AS2 & JS) has functions as a first class type that you can define anywhere, but it does not have inline functions in the commonly accepted C/C++ sense of the definition. Actual inline function support as included in haxe can be hugely important on devices with underpowered CPUs since making a function call has significant overhead in ActionScript when you are running on a dinky ARMv5 core. With inline functions there is no function call thus no overhead (at the cost of making the 'compiled' code larger, which is often a perfectly fine tradeoff).
3. I love the type system, so again I guess this is subjective.
4. There is some truth to this but it is easy to encapsulate code that has to be platform aware (generally UI stuff) into libraries and then keep your primary app code platform independent.
As to #2, I think georgemcbay is talking about where the contents of a short function can be copied into the place where it's called (as with the 'inline' keyword in C or C++), thus avoiding the overhead of a function call [1], whereas it sounds like rabidsnail is talking about inner or nested functions, which you can do in JavaScript [2].
4. I have worked with haxe quite a bit and I haven't seen this; after a while you create enough libs for yourself to avoid this. Or maybe i'm missing the point here; what kind of host-specific features are you talking about? Maybe you are creating totally different software from what I am making :)
Networking, drawing to the screen, video and audio, click events, etc. I think that's most of what most apps are doing. If you're doing something numeric (like a simulation or a computer algebra system) my previous statement doesn't apply.
But these things are encapsulated; if you work with haxe a lot, you'll have libs which, besides maybe a config setting per platform, are code compatible...
2. as2 is a superset of javascript, so it also has inline functions.
3. Having worked in haxe quite a bit, I found that the fancy type system got in the way more than it helped. I can't think of one case where it caught a bug, but I do have memories of spending hours writing typedefs and casting things to Dynamic.
4. You can't really target multiple platforms in practice, because nearly everything you might want to do depends on host-specific features. A multi platform codebase would be riddled with "if (flash) { } else if (c++) { } else if (javascript) { ...".