> Look like ECMAScript2015 (JavaScript, or TypeScript) very much ...
The more Java like expressions is probably because the original author Nicolas
Cannasse wrote the MTASC ( Flash ) compiler. What used ActionScript and this in
turn turned into ECMAScript. Describing it like JavaScript is almost like a
insult _lol_. Got a profound dislike for JavaScript and can not say the same
for Haxe.
To me its more like a extended PHP 7.1 design. Then again, PHP has slowly been
merging towards a full C/Java style.
> Why that effort? See google or Manning page:
Contact them a few days ago and they updated the shipping address. So Krux02 is
going to ge the book directly.
> Apart from the fact that it forces this object oriented programming paradigm
> that I alread learned to dislike from Java, it seems to be designed pretty ok.
Personally i do not understand why people still insist on functional
programming. In general object oriented programming results in a more clean
code base ( example ).
* * *
class FloatTools {
static public function round(f:Float) {
return Math.round(f * 100) / 100; // The value 100 rounds to two
decimals
}
}
using FloatTools; // Adding 'FloatTools' as a static extension
class Main {
static function main() {
var f = 0.119999;
var rf = f.round(); // 0.12
var rf = 0.119999.round(); // 0.12
}
}
* * *
static function round(f) {
return Math.round(f * 100) / 100; // The value 100 rounds to two
decimals
}
include "round.xxx";
var f = 0.119999;
var rf = round(f); // 0.12
var rf = round(0.119999); // 0.12
* * *
Both do the same in this simple example. But as one starts to extend
functionality, its where you are much more likely to run into conflicts (
forcing the need for instance to namespace ). Of the two examples, what is more
easy to extend ( inherit, override, abstract, etc ) and clean. Its simply the
object oriented version. :)
The fact that it also forces the first initial call ( the Main construct ) to
be a class, is less of a issue ( unless losing 4 lines of code, of the 1000's
is a issue ;) ). If we simply look at GoLang with its forced function paradigm,
it still relies on C like function attachment to objects.
I said it before but coming from a PHP background and with the PHP7 / 7.1
designs, its more easy to get into Haxe then Nim.
Nim really focuses more to Python developers. Where Crystal really focused on
Ruby developers.
Nim & Haxe are languages that more incorporate from other languages. Crystal is
almost a copy of Ruby ( but they recently start to incorporate other
functionality from other languages ).
For me Haxe solves a few problems. Going to push it at work simply because: One
can code base it for PHP but at the same time deal with the annoying JS and
deal with Angular. Now at work its all separated and frankly messy ( but that
is a different topic ;) ).
Almost forgot, another useful corner for Nim to look at:
[http://code.haxe.org](http://forum.nim-lang.org///code.haxe.org)/