Sunday, April 11, 2010

One Language. Multiple Platforms. Awesome.

Whilst wandering through the bowels of the vast jungle of the internet, I stumbled across something cool. It is called haXe. haXe is yet another programming language (you'd think we have enough of those), but there is one small thing that sets haXe apart from anything else that I've seen. The website claims that haXe is a multi-platform language. Let me explain what they mean by that.


Here's the magic of haXe. The haXe compiler (written in OCaml) actually has various back ends. Each of these back ends is able to translate any standard haXe program into another language where it can be compiled. This means that almost any haXe program that you write can not only target a browser, but be embedded as a .swf, run server side, or even compile to native C++ code. That's crazy. Because haXe is Object Oriented, you can use full object oriented features, and standard class definitions to create oo programs in languages with nonstandard oo features.

haXe has already been used for iPhone development, and a Java back end ins in production for writing Android apps. Man, I can't wait.

Actually, through use of the neash library, you can use a standard graphics library for th iPhone, desktop, and flash. Now that is even more crazy. If you are interested in multi platform application development, then haXe is definitely something to check out.

Now, you might respond: "Who cares?".
The answer: mobile and web application developers.

The problem that has plagued many developers for years is deployment. They want the maximum people possible to be able to use their product. The wanted a single unified way to create applications inside web browsers. They could attempt to embed a native application, but there is a problem. Any native application will have to be recompiled for every platform that it will be distributed on. This is a hassle, especially if you cannot anticipate the computers of your users. For this reason, various platforms were developed including JavaScript, flash, Java, and various other solutions.

But the problem is still relevant today. Suppose you are a mobile game developer. You want to develop a game for a bunch of platforms. You want to be able to reach iPhone users, Android users, Blackberry users, enV users, Window Mobile users, etc. Normally, this would require you to learn Objective-C, Java, C++, as well as learn the SDK's for each device. Now, however, there is an easy solution.

Meet the Airplay SDK
http://www.airplaysdk.com/


Airplay allows developers to use a single unified application SDK to develop their applications. Then using a single click, application can be deployed to numerous platforms. This saves time, work, and effort, and greatly increases your target audience size.