# 言語バインディング

GNOMEプラットフォームは主にC言語で書かれていますが、他のプログラミング言語に簡単にバインドできるように意図して記述されています。言語バインディングを使用することにより、GNOMEプラットフォームで好みのプログラミング言語による開発を行うことができます。

言語バインディングには、多くのプログラミング言語、およびGNOMEプラットフォームで公式にサポートされているのC++やJava、Perl、およびPython用のバインディングのサポートが存在します。

## C++

C++バインディングはGTK+、Libglade、GConfを含むGNOMEプラットフォームを完全に網羅します。C++バインディングはすべてのオブジェクトをネイティブのC++オブジェクトにラップし、プログラマが独自のウィジェットを通常のC++インタフェースで提供できるようにします。C++バインディングは、タイプセーフなシグナルハンドラ、すべての標準C++ライブラリの使用、そして完全なC++メモリ管理をもつネイティブなAPIを提供します。

GNOMEのC++バインディングについての詳細は gtkmmのWebサイト を参照してください。

## Java

JavaバインディングはGTK+、Cairo、GConfを含むGNOMEプラットフォームを完全に網羅します。JavaバインディングはすべてのオブジェクトをネイティブのJavaオブジェクトにラップし、プログラマが独自のウィジェットを通常のJavaの継承により提供できるようにします。JavaバインディングはJavaのClassライブラリ、適切なインタフェースを使用して完全にネイティブなAPIを提供します。

GNOMEのJavaバインディングについての詳細は Java-GNOMEのWebサイト を参照してください。

## Perl

PerlバインディングはGTK+、GnomeVFS、GConfを含むGNOMEプラットフォームのためのPerlのネイティブなインタフェースを提供します。PerlバインディングはすべてのオブジェクトをPerlオブジェクトにラップし、プログラマが通常Perlを使う標準的な方法でそれらを操作することを可能にします。PerlバインディングはPerlのネイティブなデータ型を適切に使用して、完全にネイティブなAPIを提供します。

GNOMEのPerlバインディングについての詳細は gtk2-perlのWebサイト を参照してください。

## Python

PythonバインディングはGTK+、GnomeVFS、GConfを含むGNOMEプラットフォームのためのPythonのネイティブなインタフェースを提供します。PerlバインディングはすべてのオブジェクトをPythonオブジェクトにラップし、プログラマが独自のウィジェットを通常のPythonの継承により提供できるようにします。Pythonバインディングはタイプキャストやメモリ管理などの詳細を自動的に処理して、完全にネイティブなPythonのためのAPIを提供します。

GNOMEのPythonバインディングについての詳細は PyGTKのWebサイト を参照してください。

## その他の言語

C#、Eiffel、JavaScript、Ruby、Scheme、その他の言語に完全または部分的に対応したバインディングが数多く存在します。それらがまだ正式にGNOMEでサポートされていないとしても、それらのバインディングはGNOMEで公式にサポートされているバインディングと同程度に高品質であり、それらのいくつかは将来のリリースでGNOMEの公式バインディングに含まれることでしょう。

言語バインディングについての詳細は GTK+ bindings page を参照してください。