<?xml version="1.0" encoding="utf-8"?>
<!-- -*- indent-tabs-mode: nil -*- -->
<chapter id="bindings">
  <title>言語バインディング</title>

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

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

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

  <para>GNOMEのC++バインディングについての詳細は <ulink url="http://www.gtkmm.org/">gtkmmのWebサイト</ulink> を参照してください。</para>
</section>

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

  <para>GNOMEのJavaバインディングについての詳細は <ulink url="http://java-gnome.sourceforge.net/">Java-GNOMEのWebサイト</ulink> を参照してください。</para>
</section>

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

  <para>GNOMEのPerlバインディングについての詳細は <ulink url="http://gtk2-perl.sourceforge.net/">gtk2-perlのWebサイト</ulink> を参照してください。</para>
</section>

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

  <para>GNOMEのPythonバインディングについての詳細は <ulink url="http://www.pygtk.org/">PyGTKのWebサイト</ulink> を参照してください。</para>
</section>

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

  <para>言語バインディングについての詳細は <ulink url="http://www.gtk.org/language-bindings.html">GTK+ bindings page</ulink> を参照してください。</para>
</section>

</chapter>
