×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

MonoとVala

表40 MonoとVala

項目MonoVala
実行形式の対象(動作)アーキテクチャ共通言語基盤(CLI)OSネイティブ
実行形式のOS・アーキテクチャ依存/非依存OS・アーキテクチャ非依存OS・アーキテクチャ依存
実行形式Mono/.NETアセンブリ(PE形式・*.exe/*.dll)OSごとの形式(GNU/LinuxではELF形式・一般的に拡張子なし)
同一実行ファイルの異なるOS・アーキテクチャ間の使い回し不可
動作に必要なパッケージ共通言語基盤(CLI)実装のランタイムパッケージ(Monoや.NET Framework)GLib,GObjectの各ライブラリ
使用可能言語C#,VB.NET,Boo,Python(IronPython使用),Ruby(IronRuby使用)などVala,Genie
コンパイルによるソース隠蔽
コンパイル時の動作アーキテクチャ向けの最適化不可可(Cコンパイラによる)
付属ライブラリ基本クラスライブラリGLib,GObject(追加で幾つかのライブラリが付属の言語バインディングから利用可能)
商用用途への向き/不向き向き不向きな場合あり
アプリケーション起動速度低速高速
動作速度やや高速高速

[ヒント]ヒント

MonoとValaは性質が大きく異なる。用途によっても向き・不向きがあり、互いに置き換え可能なものではない。

[注記]メモ

Monoについては商用もしくはプロプライエタリなアプリケーションを作成可能であると公式のFAQに書かれている。ただし、Gtk#のようなLGPLライブラリを用いる場合は、LGPLライセンスの制約により利用者による利用者自身のための改変とリバースエンジニアリングを禁止することはできない。Windows Formsについては標準のクラスライブラリの一部でこれはMITライセンスとなっているため、使用に問題はない。

[注意]注意

Valaを用いて作成された実行ファイルは少なくともGLibとGObjectという2つのLGPLライセンスのライブラリと動的リンクされるため、前述の改変とリバースエンジニアリングの禁止はできない。

[注意]注意

ValaにはMono/.NETの基本クラスライブラリに相当するものはない。実行したい処理によってGLibやGIO,その他のライブラリを用いることになる。標準Cライブラリなどに含まれる低レベル処理が必要であれば、posixパッケージを用いる。