Linux環境でVBコンポーネントをコンパイルできる新しいMono

Microsoft .NETプラットフォームのオープンソース版であるMonoの最新リリースには、Rolf Bjarne氏の開発したVisual Basicコンパイラがバンドルされている。それ自体もVisual Basicで書かれているこのコンパイラにより、非常に人気のあるプログラミング言語の1つであるVBで書かれたアプリケーションの開発と導入がLinux環境で容易に行えるようになる。

MonoにおけるVisual Basicのサポートは今回に始まったことではなく、Monoの以前のバージョンにも、Linux環境でVBアプリケーションの実行を可能にするVBのランタイムコンポーネントがバンドルされていた。最新版であるMono 1.2.3の変更点について、Novellの開発プラットフォーム担当副社長でMonoプロジェクトの創設者でもあるMiguel De Icaza氏は、次のように述べる。「VBのランタイムコンポーネントをアップデートし、まだ実現されていなかった多くの機能を追加した。これはMoma(Mono Migration Analyzer)を利用して進めている活動の一部だが、今回のリリースにより、WindowsでコンパイルされたアプリケーションをMono上で実行できるようになる」

このことをユーザはLinux環境でVBアプリケーションを実行する際に役立てることができるわけだが、もっと注目すべき点は、VBコンパイラを付けたことだとDe Icaza氏は語る。「たやすく複数のプラットフォームで動かせるソフトウェアが書けるようになることを、開発者たちはずっと夢見てきた。MonoのVBコンパイラは、その実現に向けた大きな一歩だ。これで開発者は、新しいソフトウェア・スキルを獲得しなくても、より多くのユーザに成果物を届け、変更なしに主要なOSのプラットフォームのすべてで動作するアプリケーションを作ることができるのだ」

De Icaza氏の説明によれば、Code Document Object Model(CodeDOM)を利用するアプリケーションではコンパイラを実行する必要があるという。「CodeDOMを利用する最もよく知られたフレームワークがASP.NETである。これまでLinuxで動作しなかったVB.NETで書かれたASP.NETアプリケーションも、今は実行できるわけだ」。その他のメリットとして、彼は「Linuxは開発のターゲット環境としてだけでなく、Visual Basic開発を行う環境としても使えるようになった」と指摘する。

今回追加されたVBのコンパイラやランタイムは、ランタイムの機能強化とコンパイラの開発をねらいとするMonoの新しいVisual Basic Frameworkの一部である。De Icaza氏は、Mono 1.2.3にはこの新しいフレームワークに対する取り組みの大半が含まれており、以降のリリースでアップデートを重ねていくことになる、と述べている。また、Mono 1.2.4には、開発者を支援するための統合開発環境MonoDevelop 0.13も追加される。

「.NETフレームワークの1.0や2.0を使ってWindows上で書かれたアプリケーションは今回のランタイムによってサポートされるが、我々のVBコンパイラでは2.0のランタイム用のコードしか生成できない」とDe Icaza氏は話す。一方、Microsoftは昨年11月にすでに.NETのバージョン3.0をリリースしている。De Icaza氏によると、Monoでは今年末までに、Language-Integrated Query(LINQ)機能を有するC# 3.0コンパイラや、3.0および3.5の新しいAPIの一部とも合わせてNET 3.0サポートのプレビュー版が出るという。

だが、Visual Basicのような言語のサポートにはある種の限界がある。「実際のところVBはWindows用に最適化されたものではないが、一部でWindows固有のAPI呼び出しを行っているため、我々はそれらをLinuxの処理に対応づけている。とはいえ、大半のアプリケーションはそれほど強くWindowsに依存しているわけではない。我々がサポートしていないものの1つにCOMコンポーネントがあるが、それはLinuxにはCOMに相当するものが存在しないからだ。そのため、COMまたはActiveXコントロールを必要とするVisual Basicのアプリケーションは、Monoでは動かない」

Monoには、今回のVBコンパイラを使ってLinux環境でコンパイルしたアプリケーションを実行する方法が2つある。「MonoのVBランタイムをインストールするか、実行に際して外部との依存関係を持たない静的実行可能ファイルを生成するバンドル処理と呼ばれるMonoの処理を利用するか、のどちらかになる」とDe Icaza氏は説明する。.NET 2.0をインストールしていれば、クロスプラットフォーム開発の本来の思想にのっとり、Linux上でコンパイルしたアプリケーションをWindows環境で動作させることもできる。

Monoによるクロスプラットフォームのアプリケーション開発をさらに発展させるべく、Monoの開発者はASP.NET 2.0とWindows Forms 2.0のサポートという2つの大きなマイルストーンを年内に設定している。「これにより、Linuxには多くの新しいアプリケーションがもたらされるだろう。現在、我々はNovellのもとに移植の要望が送られてきた約1,000種類ものアプリケーション、ライブラリ、コンポーネントの進捗を追跡しているところだ」

NewsForge.com 原文