Webアプリケーションの開発ではPHPやJavaをはじめ、PythonやRuby、Perlなどが根強い人気を誇る。Webアプリの開発をC/C++でおこなう例はあまり公にならないことが多い。しかしながらTIOBE Programming Community Index for January 2009が報告するところによれば、C/C++の人気は依然として高い。それにこれまで開発されてきた多くのライブラリやソフトウェアがC/C++をベースとしている。PHPやJava、Python、Ruby、Perlであっても処理系はC/C++で開発されている。

Alchemyの目的は、これまでC/C++で開発されたソフトウェア資産をFlashプラットフォームにもたらすことにある。特に次のソフトウェアを利用することを想定している。

  • 暗号関連ライブラリ
  • データ変換処理(オーディオデータ変換処理、ビデオデータ変換処理)
  • テキストパース処理
  • SourceFourgeで提供されている各種ライブラリやツール

暗号関連処理のコードを一から開発するのは大変な労力が必要だ。またそういったコードはActionScriptを直接使って開発するのは難しい側面が大きい。問題がないコードに仕上げるまでは開発期間も必要だし、検証期間も必要になる。バグも混入しやすい。すでにC/C++で開発され長い間検証されたコードがあるのだから、これをFlashプラットフォームで動作させようというのがAlchemyの最大の利点だ。しかもLLVM中間形式からいったんActionScript 3に変換するところがポイントとなる。一度書いたらどこでも動作するというFlashの前提を崩すことがない。

逆にAlchemyは、既存のC/C++アプリケーションをそのままFlashプラットフォームで動作させるということを目的にしたものではない。OSの機能にあまり依存せずに開発されているライブラリやツールのパワーをFlashプラットフォームにもたらすのが目的だ。

Alclemyのデモ。Cコードで書かれた"Hello, MAX!"がAlchemyで変換されたところ(Adobe MAX 2008にて)

古いゲームもAlchemyでよみがえる! 左はグラフィックなしの「ZORK」、右はご存じ「スーパーマリオブラザーズ」