Haxe Introduction

Haxe (pronounced as hex) is an open source programming language

While most other languages are bound to their own platform (Java to the JVM, C# to .Net, ActionScript to the Flash Player), Haxe is a multiplatform language.

It means that you can use Haxe to target the following platforms :

  • Javascript : You can compile a Haxe program to a single .js file. You can access the typed browser DOM APIs with autocompletion support, and all the dependencies are resolved at compilation time.
  • Flash : You can compile a Haxe program to a .swf file. Haxe is compatible with Flash Players 6 to 11. Haxe offers very good performance and language features to develop Flash content.
  • NekoVM : You can compile a Haxe program to NekoVM bytecode. This can be used for server-side programming such as dynamic webpages (using mod_neko for Apache) and also for command-line or desktop applications, since NekoVM can be embedded and extended with some other DLL.
  • PHP : You can compile a Haxe program to .php files. This enables you to use a high level strictly-typed language such as Haxe while keeping full compatibility with your existing server platform and libraries.
  • C++ : You can generate C++ code from your Haxe source code, with the required Makefiles. This is very useful for creating native applications. The NME library uses this to run Haxe code on iOS, Android, etc. As of 2.10 it also includes debugging.
  • C# and Java: You can generate source code for these targets new as of 2.10 (note this is still experimental, with better support coming in Haxe 3.0.

The idea behind Haxe is to let the developer choose the best platform for a given job. In general, this is not easy to do, because every new platform comes with its own programming language. What Haxe provides you with is:

  • a standardized language with many good features
  • a standard library (including Date, Xml, Math…) that works the same on all platforms
  • platform-specific libraries : the full APIs for a given platform are accessible from Haxe

Haxe is useful for many different reasons. You might be wondering why use Haxe?

Want to learn more about Haxe ? Access the documentation.