マイクロソフトが開発中の新言語「Axum」は並列処理用
マイクロソフトが新しいプログラミング言語「Axum」を開発中と、米国のメディアが報じています。1つはeWeekの記事で「Microsoft Cooking Up New Parallel Programming Language」、もう1つは、ブログAll About Microsoftの「Axum: Another piece of Microsoft's parallel programming puzzle」というエントリです。
AxumはこれまでMaestroというコードネームで呼ばれていたのが、本社で行われたイベント「Lang.NETシンポジウム」でプロジェクトを公開するのに合わせてAxumという名前に変更されたとのこと。
上記のシンポジウムのセッションリストにはAxumの説明が載っています。簡潔にまとまっているのでポイントを引用してみましょう。
Axum is an incubation project from Microsoft's Parallel Computing Platform that aims to validate a safe and productive parallel programming model for the .NET framework. It's a language that builds upon the architecture of the web and the principles of isolation, agents, and message-passing to increase application safety, responsiveness, scalability and developer productivity.
ざっくりと訳すと、こんな感じでしょうか。
"Axumはパラレルコンピューティングプラットフォームのプロジェクトで、高い安全性と生産性を持つパラレルプログラミングのモデルを、.NETフレームワークの上に構築する。Axumはプログラム言語であり、Webのアーキテクチャを前提として、分離、エージェント、メッセージパッシングなどを基にして、アプリケーションの安全性や反応、スケーラビリティや生産性の向上を実現する。"
Axumについての技術的な内容は、上記のイベントページでセッションの内容をビデオで見ることができますし、Axumプロジェクトのブログ「Axum: Isolation, Agents, and Message-passing in .NET」があります。
Axumが実現しようとしている並列処理やパラレルプログラミング言語は、これから重要なテクノロジーになると考えられています。というのも、複数のサーバから構築されるクラウドの登場や、CPUのメニーコア化など、現在のコンピュータリソースそのものが並列化のトレンドにあるためです。
しかし並列処理のプログラミングは、それぞれの処理の依存関係や処理のタイミングをすべて想定してプログラミングしなければいけないなどの理由で、複雑で難しいものだと一般には言われています。いかにこの困難さを取り除くかは大事な課題で、そうでないと並列化したコンピュータリソースをソフトウェアが活用できないままです。Axumはその課題を解決するために注力した言語として作られているようです。
そういえばマイクロソフトは「F# for Windows Azure - Home」という、並列処理に対応した関数型プログラミング言語も開発中です。1つの課題に対して複数のプロジェクトで攻めるという、マイクロソフトお得意のアプローチが今回も行われているのですね。