Rapid Application Development with GTK+ Bindings; GUI Programming the Fast Way
An overview of application development options.
Besides using a proper language for your needs, it's equally important to use the tools that best match your coding efforts. Such tools can significantly cut down on development time and cost, either by supporting the target language directly in a more intelligent way or by automating and simplifying repetitive tasks.
Of the available tools, probably the single most important tool in context of GTK+ programming is libglade. Using libglade (see "GTK+ fundamentals, Part 2: How to use GTK+" (www.ibm.com/developerworks/opensource/library/os-gtk2/), you can get tremendous gains in code legibility, maintainability, modularity, and brevity - all by separating the inherently visual task of specifying what your UI is going to look like from the process of writing code (that is, the application logic).
Because of its crucial importance, language bindings developers are making a point to support libglade (even though it's not (yet) part of the base GTK+ library) in their languages. Therefore, you can be sure that your language of choice will support libglade, as long as you have the option to use GTK+.
To use libglade, you must create the interface description files for it. You can use several applications to do so, starting with the original Glade2, after which the library takes its name. However, prompted by some limitations of the current stable Glade2 and coupled with long-stalled progress on the Glade3 branch, a couple of alternative UI editors have been created. Of those, the most mature today is Gazpacho (see the Resources section), written as a Python implementation of Glade3 design ideas. Gazpacho also sports a pure-Python reimplementation of libglade better tailored for PyGTK+ applications' needs.
Yet another category of support tools is various kinds of IDEs, which are designed to provide comprehensive help during all stages of development. Tailored to a specific language, IDEs can often offer significant assistance for programmers. In this area, Mono/.NET enjoy good support, both from the original .NET creator (Microsoft) and from the community gathered around the Mono project, which develops an accompanying IDE called MonoDevelop. As Gtk# is the GUI toolkit of choice for Mono and MonoDevelop creators, it has good support out of the box; however, for those using the Microsoft family of tools, you can easily install custom packages with appropriate definitions in the Microsoft Visual Studio* IDE.
Similarly, Java programmers have an exceptionally good, freely available IDE from the Eclipse project. To get the support for GTK+ code, you need to do little more than import the libraries into your project. You can find detailed instructions on settings on the Java-GNOME project page (see the Resources section).