Syntax should never be the defining factor of whether you choose a language! (Unless you got to put dolla signs before variables!!!)
I've come from doing cross platform mobile apps using various things like Unity and Marmalade, but when I finally looked at Haxe/NME not to long ago I was pleasantly surprised! I've been able to fairly seamlessly re-write my as3 code into haxe with just a few minor syntax changes. Definitely my top choice for making any cross platform 2d apps.
There are a few quirks with the language - as there are with any language.
Try compile this!
var j:Int = 20;
var q:Int = 10;
var b:Int = j / q;
'characters 2-20: Float should be Int'
It seems that dividing an int by another int will implicitly cast the result to a Float? And you cannot implicitly cast Floats to Int, so you're stuck having to do Std.Int() around cases like this.
It's open source so I imagine you can manually add implicitly casting Floats to Int if you know how.. but I don't!