Hi Campers! I’m here to introduce Haxe to people who have never heard of it. I just heard about it a week ago was very impressed; I want to get the word out, see what people think!
What is it?
Haxe is an open source, strictly typed programming language that is made to be cross-platform, but Haxe has a different approach to being cross-platform than other languages. Haxe is able to run natively on the target platform by compiling to that target’s native language. Haxe can compile to an impressive number of different languages: Java, Python, C#, C++, Javascript, PHP, and Lua. Haxe can also run on two virtual machines ( runtimes ), Neko and HashLink, both made by the Haxe Foundation. It’s almost freaky that you have a language that is actually meant to be compiled to all these different languages. You can pretty much target almost any platform you could ever want to.
What can you use it for?
Haxe’s use cases cover a large spectrum of software development. You can use it to build CLI’s, Mobile Apps, and websites as well. A particularly interesting idea is using Haxe to write both the server-side backend and the web frontend of a web application. The backend code can get compiled to PHP, Neko, or Node, and the frontend code can get compiled to Javascript to run in the Browser.
It seems, however, that the most common use case for Haxe is the development cross-platform games. There are a number of libraries and frameworks for building cross-platform games that are built on Haxe. There is also WIP game engine called Armory 3D that I think will be pretty amazing when it’s done.
What is the language itself like?
I haven’t spent very much time at all using the language yet ( I just found out about it a week ago ), but I have read a bit of the manual and, so far, I like it a lot. Haxe is an object oriented language that is strictly typed; it should be easy to learn if you have any experience in another object oriented language like Java, C#, or C++. Its syntax has borrowed a lot from Javascript. What I like about it is that it give you the extra safety of a statically typed language, but it also tries to be as flexible and non-intrusive to your programming as possible.
For example, you are not, in many cases, required to specify the type of a variable if the type can be inferred by the compiler. Haxe also has the Dynamic
type that allows you to work around static type checking if you don’t know what type a variable will be until runtime. It is nice and clean to read and write and it keeps you safe while not limiting your flexibility.
What state is it in?
As far as I can tell, it seems that the Haxe community is still relatively small, but I think that the potential of Haxe is very high. The language itself seems to be stable and the Haxe Foundation does provide paid support plans, which will hopefully help fund the Haxe project. I would love to see the Haxelib library grow and to see more projects developed in the language. That’s part of the reason I am posting this topic, I’m hoping that more people will find out about it and start to use it.
Anyway, if you think this is cool, tell other people about it! Get the word out. The Haxe community could really use the help. If you’re interested in making games, check out Armory 3D as well. Its not done yet, but I think that it could be awesome.