| CARVIEW |
Language bindings
One of the primary goals of GNOME is to facilitate using GNOME from any programming language. By allowing the development of programs in the language that best meets the task, productivity and program quality increase.
Language bindings for GTK+ are available for a wide variety of languages, and many of these languages have support for GNOME libraries. This list is a brief summary of the language bindings that support the GNOME 2.x Developer Platform libraries, and may be practical for your project. Specific information about each language binding can be found on their respective homepages.
GNOME Platform Bindings
The projects below follow the GNOME schedule, and GNOME Bindings rules which guarantee API stability and time-based releases. These projects make an effort to track the changes in the GNOME Developer Platform.
C++ (gtkmm)
https://www.gtkmm.org/
The gtkmm project provides comprehensive support for GNOME;
the basic GNOME libs, GConf, libglade, libXML, gnome-vfs, and many other C++ libraries provide
full support for application development.
Additional features include exception handling, simplified memory management,
typesafety, and namespaces. The Bakery framework can be
used to rapidly develop applications using the document/view
architecture. The documentation on gtkmm is outstanding, and it includes a tutorial.
Java (Java-GNOME)
https://java-gnome.sourceforge.net/
Java-GNOME provides bindings for libglade, GConf, and Cairo. Additional
bindings include libgtkhtml, libvte, libgtkmozembed, gst, and libgnomevfs. The documentation
is complete and tutorials are available.
Perl (gtk2-perl)
https://gtk2-perl.sourceforge.net/
The gtk2-perl bindings provide access to the basic GNOME libs, plus
libgnomecanvas, gnome-vfs, libglade and GConf. Bindings for other GNOME libraries are also
available, including Gnomeprint, GtkSpell, libegg tray, libvte and libwnck.
Python (PyGTK)
https://www.pygtk.org/
PyGTK supports most of GNOME's widgets and application frameworks.
The GNOME libs, GConf, gnome-vfs, libglade, XML/XSLT are complete.
Bindings for other GNOME libs like Gnomeprint, gtkhtml2, gtkmozembed, GStreamer,
gtksourceview, and panel-applets can be used. The APIs are well documented and
tutorials and articles are available.
Other bindings
Ada (GtkAda)
https://libre.act-europe.fr/GtkAda/
GNOME/Ada provides libgnomeui and libbonoboui support for Ada95, and is
maintained as an extension of GtkAda project. XML/Ada can be used for
processing XML data and documents. The project also produces GPS, an IDE with
source management, browsing, editing and debugging tools for GTK and GNOME applications.
C# (GTK#/Mono)
https://gtk-sharp.sourceforge.net/
https://www.mono-project.com/
GTK#/Mono includes a comprehensive set GNOME bindings, including the GNOME libs,
GConf, libglade, gnome-vfs, and panel applets. Bindings for other GNOME libs,
like RSVG, gtksourceview, Gnome-DB and GStreamer are available. The
Mono runtime is capable of using the functions in any GNOME library (or any c-based library) through
P/Invoke. The APIs are well documented.
Erlang (Erlang/Gtk)
https://erlgtk.sourceforge.net/
Erlang/Gtk provides incomplete support for some GNOME libs like libgnomeui
and libgnomecanvas.
Haskell (Gtk2Hs)
https://haskell.org/gtk2hs/
Gtk2Hs does not support the core GNOME libs. It provides bindings for
popular GNOME libs like to libglade, GConf, gtksourceview, and gtkmozembed.
Objective-Caml (LablGTK)
https://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html
LablGTK provides GTK+ bindings and GnomeCanvas widgets
for Objective Caml 3. Bindings for libglade, the panel, and RSVG are optional.
The bindings provide strongly typed data and take advantage of lablgtk's memory
management.
Pike (Pike)
https://pike.ida.liu.se/
Pike has bindings for the basic GNOME libs, plus libglade. The API is well documented.
Ruby (Ruby-GNOME2)
https://ruby-gnome2.sourceforge.jp/
Ruby-GNOME2 provides excellent binding support for the basic GNOME libs, GConf, XML2,
and gnome-vfs. Bindings for panel-applets, libgda, gtkhtml2, gtksourceview, RSVG, trayicon, and
GStreamer also exist. The APIs are well documented.
A class browser is also available in addition to tutorials, and samples.
Scheme (guile-gnome)
https://www.gnu.org/software/guile-gnome/
Guile-gnome provides bindings for GNOME libs, libglade, GConf, and XML2.
Other bindings such as panel-applets, Gnomeprint, gtkhtml, gtksourceview, libwnck,
and GStreamer are also available.
TCL (Gnocl)
https://www.dr-baum.net/gnocl/
Gnocl provides the basic bindings to GNOME widgets plus gnome-vfs.
Navigation
Last modified 2005/11/12 16:33:59 UTC.
Optimised for standards. Hosted by Red Hat.
