Some thougths on Actionscript in the serverside

I’ve been always fascinated by the capabilities of Flash, especially in making networked applications (and games) that can run everywhere.

Flash is the only tool that can bring to the maximum audience with the minimum effort a full fledged application/media player/real time network client.
Yes, low-latency, bi-directional, real time messaging. (using XmlSocket connections)

But, even if Flash is such amazing stuff, why there isn’t so much real time, synchronized, networked Flash applications out there?

After some thoughts, some non-blocking servers and a thesis (jira), I think I’ve found the answer: the lack of a server.

Yes, there are many, like the promising Red5, the full-fledged (non-free) SmartFox, Oregano, and others, but no one seems to reach a decent level of notoriety and support.

The chosen one seems to be Red5, with SmartFox coming next with his maturity but the lack of streaming, but there is another one that can won the race with a large margin: haXe.

For those who doesn’t know, haXe is a compiler/language written by the authors of MTASC (Motion-Twin). His main feature is that it can output running code (or bytecode) for Javascript, Flash 8-9 and the Neko VM, with the same language.
But the most interesting features are coming form the Neko VM: the ability to run as a Apache module and the non-blocking sockets support.

What does it mean?

This mean that with only one language and a common set of libraries it is possible not only to build the client, but even the server side of a web application.
And for server side, I mean all kind of server: ‘classic’ webserver serving html from a database, Flash Remoting or a massive chat/multiplayer non-blocking server.

Whats the catch? It’s a C/C++ stuff and the lack of a large community/hype. However, the capabilities are already exciting.

I hope to find the time to take a better look to haXe. In the meantime, I’ll monitor the Java scripting languages support waiting for the ActionScript 3 (Tamarin) ScriptEngine.