Time To Learn Haxe

Ever since being introduced to it in 2009, I have had pride in being called a Flash programmer. Recent trends, however, have forced me to reconsider the future of my programming career. In particular, the heralding of Flash's defeat to HTML5 in the battle for web dominance has been troubling, even if premature. And though I do not see the end of the use of Flash on the horizon like some excited folk, I do realize that it is becoming a dying art. And in today's world, it's adapt or die.

For those who are unaware, Flash is the platform that many web applications (and in particular, web games hosted on Kongregate and Newgrounds) run on. Flash and its Actionscript programming language were developed by Macromedia in 1996. In 2005, Adobe acquired Macromedia and developed the version of Flash we know today. Being nearly unrivaled in its capacity for web animation and video/audio support, Flash flourished.

Lately, however, there has been less of a need for Flash. As the CSS3 standards were implemented, simple web animations (like transitions, fading, and so on) could be done even without Javascript, the Internet's primary scripting language. At some point, Apple stopped supporting Flash on its devices. Now, with HTML5 receiving hype as a direct rival to Flash in terms of functionality, Internet prophets have foreshadowed Flash's death.

In reality, though, having had a decade-long head start on HTML5, Flash is all over the Internet, and I do not foresee it disappearing very quickly. Stubborn Actionscript programmers will still exist, programming mainly for Adobe AIR (Adobe's mobile app solution) and exceptionally large projects (like games) not easily feasible in a Javascript environment.

So, why do I feel the urgency to move on then? If none of CSS3, Apple, or HTML5 are really choking Flash, what is?

Interestingly, it is Adobe. Adobe is what is killing Flash, and it is for their negligence that I am needing to flee. Since the release of Actionscript 3.0 in 2006, we have been waiting diligently for a new AS4 standard meant to take advantage of modern knowledge and technologies. As Javascript has gotten faster and faster, Flash has merely retained its 2006 performance, and nowadays, Javascript is actually faster than Flash at many tasks despite being an interpreted language.

Well, the reason AS4 has never come to be is because Adobe decided to essentially abandon Flash in favor of HTML5. Adobe has, for instance, developed a tool for converting Actionscript to Javascript, and they have authored a new program called Edge Animate which makes HTML5 development easier.

In other words, Flash doesn't have a future. And, if something does not have a future, I do not want a part in it.

Therefore, in a search for something that serves as a compromise between Actionscript's nice object-oriented format and HTML5, I discovered Haxe and OpenFL. Haxe is a cross-platform object-oriented programming language. Being cross-platform, the same Haxe code can be compiled to Windows, Mac, mobile, and even HTML5. The language is furthermore stronger than Actionscript 3.0 was, including support for generics and even functional programming features. And, to make it a true dream come true, OpenFL is an API for Haxe that mimics Flash's API as much as possible!

Therefore, starting today, I will be learning and practicing in Haxe and contributing to the documentation effort through posts on this periodical. My hope is that I can benefit by reinforcing material that I learn and that you can benefit from my explanations and discoveries.