I'm torn on haxe. It has a few nice features (macros!) and has many, many targets.
But on the other hand, its syntax and some of its semantics are Java/C++-inspired, whereas something closer to its ML roots would've been so much better.
It might still beat Java for writing Android apps.
The syntax is curly-brace, and on a surface level closest to AS3, but the underlying design borrows a lot from Pascal in terms of minimalism(something which Nicolas has mentioned once or twice):
The types are based on JS without truthy or falsy values; comparison is required to get boolean values.
Like Coffeescript, while+iterators are used instead of C-style for loops. (no "do while" blocks either)
Case statements don't fall through.
These little changes(plus a few others) help bring in a lot of the enforced-cleanliness that you'd get with a bigger syntax change, it just "looks" curly-brace. One that I miss is :=, since I have run into the ==/= typo occasionally(it just occurs in much more limited situations). No-truthiness is particularly interesting since you only really notice it's there when you try to port C or JS code.
But on the other hand, its syntax and some of its semantics are Java/C++-inspired, whereas something closer to its ML roots would've been so much better.
It might still beat Java for writing Android apps.