HN2new | past | comments | ask | show | jobs | submitlogin
HaXe 2.08 (ncannasse.fr)
54 points by swah on Sept 25, 2011 | hide | past | favorite | 11 comments


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?

Whoever is downvoting me is exactly who I mean.


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.

[1] http://motion-twin.com/?force=1


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.

I'd still like to see the PHP use case, though.


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.

Definitely not a gamer-dude with the Dragon Book.


HaXe is a great platform. I vastly prefer it to javascript because I am a big fan of static typing. The only thing that irks me about their language is that they have both interfaces and class extension but for some reason decided not to have abstract classes.

This irks me because it seems to be a design choice; they aren't doing it because they haven't gotten around to it, they aren't doing it because they don't want to. I just don't get why they would leave this feature off but still have extension. (I am totally fine with Go, which doesn't have abstract classes but also doesn't have extension).

It's only a minor quibble I suppose, I still recommend developing in HaXe if you can.


HaXe is the technology behind the great game Hordes (http://www.hordes.fr/, French only unfortunately).


Apparently there are technologies that can compile this to C++, javascript + CSS, Flash, webOS, and Android. http://www.haxenme.org/

I haven't used this, but javascript + types (with type inference) is very appealing.


The tools are getting more and more streamlined, thanks in large part to the guy who built that website. And of course Hugh, who made the C++ output and nekonme, ridiculously cool pieces of engineering (nekonme is basically a rewrite of the Flash API so it can run on any platform).

The first port took me a few months - there was a minefield of GC bugs, libraries that had to be written, etc. The second port has taken about two days - mostly revising my code back to the SVN version of nekonme. Port #3 I am expecting to take a few hours at most.

There's a tool being written that simply spits out an XCode project - it's not far away from being as simple as Unity.

On the other hand, Unity is getting a Flash export option - which is the major benefit Haxe has currently.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: