To xinfinity and beyond!
Here's one to keep an eye on:
The xinf (pronounced: 'sinf, acronym for "xinf is not flash") project aims to provide a unified platform for cross-runtime GUI development. It will enable you to develop graphical interfaces and "rich internet applications" that run on the Adobe Flash Player, within web browsers supporting JavaScript, and on a cross-platform player built on neko and OpenGL, from one and the same codebase. Most of the cross-runtime magic is provided by Nicolas Cannasse's "haXe" language and compiler.
Xinf is currently slated to have three components:
- xinfinity - a cross-platform (Windows, MacOSX, Linux and friends) 'player' application running on the neko virtual machine, utilizing OpenGL and other open-source libraries.
- xinfony - an API/implementation that provides various (mostly graphical) primitives that abstract away most differences between the target runtimes. xinfony will be split into a core, providing the basic primitives that will run reliably on all runtimes, and modules that provide either higher-level functionality, or functions that are not available on all target runtimes.
- xinful - a XUL-like XML dialect and API/implementation of user interface widgets.
- xnf - the "xinf native format" (or so)- a compact file format to carry data, images and code to be run by the xinfinity player.
Mark Winterhalder has this to say about the plans for Xinf:
Nicolas' haXe makes it possible to write code for different platforms. However, for interface stuff it is still necessary to adjust parts of the code to the specifics of each targeted platform. That doesn't only apply to projects that target different platforms at a time, but e.g. for GUI widgets. That's how I understand Xinfony, as a compatibility layer where the specifics are hidden behind. Xinful would be the next step on top of that, GUI widgets based on Xinfony that work the same on every platform. So, at least in theory, something written in haXe and using Xinfony (or even Xinful) could be published for the FP and JavaScript (for both FF and that other browser) without any changes. Widgets based on Xinfony could be used by non-haXe users, too, in their favorite environment, be it AS2, AS3 (once haXe can target FP9), or javascript.So, this is about re-use, coming together to agree on a standard that works on all platforms.
Xinfinity, while it can use Xinfony-based classes/widgets, would work as an independent platform. This is interesting for places the FP can't go, like [your favorite obscure OS or platform here], doesn't like to go (not easily distributable due to license restrictions), or isn't particularly welcome (pure FOSS environments). It is also interesting for all the standard open source reasons, it is extendable, can be modified to your needs, and so on. In a way, it's a way to support a piece of open source infrastructure without giving up support for your mainstream users of a proprietary plugin, since it can be used as a fallback (serve an SWF if XNF isn't supported).
Xinf is in the very early planning stages but what should we think of it? Is it a pipe dream? With such lofty ideals, you might be tempted to think so were it not for the fact that it is being developed by none other than Daniel Fischer, the technical genius who gave us the Swfmill compiler.
I'll definitely be keeping an eye on Xinf to see where it leads. If nothing else, I predict there will be some interesting intellectual conversations on their mailing list! :)