1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- -->
<chapter id="bindings">
<title>Language Bindings</title>
<para>Although the GNOME platform is written primarily in C, it is written
intentionally to make it easy to bind to other programming languages. Using
language bindings, you can develop with the GNOME platform natively in your
programming language of choice.</para>
<para>Language bindings exist for many programming languages, and the GNOME
platform officially supports bindings for C++, Java, Perl, and Python.</para>
<section id="cpp">
<title>C++</title>
<para>The C++ bindings provide complete coverage of the GNOME platform,
including GTK+, Glade, and GConf. The C++ bindings wrap all objects with
native C++ objects and allow programmers to provide custom widgets with
normal C++ inheritence. They provide a fully native API, with type-safe
signal handlers, full use of the standard C++ library, and complete C++
memory management.</para>
<para>For more information on the GNOME C++ bindings, visit <ulink
url="http://www.gtkmm.org/">the gtkmm web site</ulink>.</para>
</section>
<section id="java">
<title>Java</title>
<para>The Java bindings provide complete coverage of the GNOME platform,
including GTK+, Cairo, and GConf. The Java bindings wrap all objects with
native Java objects and allow programmers to provide custom widgets with
normal Java inheritence. They provide a fully native API, using Java's
class libraries and interfaces wherever appropriate.</para>
<para>For more information on the GNOME Java bindings, visit <ulink
url="http://java-gnome.sourceforge.net/">the Java-GNOME web site</ulink>.</para>
</section>
<section id="perl">
<title>Perl</title>
<para>The Perl bindings provide native Perl interfaces for the GNOME
platform, including GTK+, GnomeVFS, and GConf. The Perl bindings wrap
all objects with Perl objects and allow programmers to use standard Perl
practices to manipulate them. They provide a fully native API, using
Perl's native data types wherever appropriate.</para>
<para>For more information on the GNOME Perl bindings, visit <ulink
url="http://gtk2-perl.sourceforge.net/">the gtk2-perl web site</ulink>.</para>
</section>
<section id="python">
<title>Python</title>
<para>The Python bindings provide native Python interfaces for the GNOME
platform, including GTK+, GnomeVFS, and GConf. The Python bindings wrap
all objects with native Python objects and allow programmers to provide
custom widgets with normal Python inheritence. They provide a fully native
Python API which automatically handles details like type casting and memory
management.</para>
<para>For more information on the GNOME Python bindings, visit <ulink
url="http://www.pygtk.org/">the PyGTK web site</ulink>.</para>
</section>
<section id="other-bindings">
<title>Other Languages</title>
<para>Full or partial bindings exist for many other programming langauges,
such as C#, Eiffel, JavaScript, Ruby, and Scheme. Even though they may not
currently be officially supported by GNOME, many of these bindings are of the
same high quality as the official GNOME bindings, and some of them may be
included as official GNOME bindings in future releases.</para>
<para>For a list of language bindings, visit <ulink
url="http://gtk.org/bindings.html">the GTK+ bindings page</ulink>.</para>
</section>
</chapter>
|