Talkback: Discuss this article with peers
This article is the the current installment in an ongoing series of site reviews for the Linux community. Each month, I will highlight a Linux-related site and tell you all about it. The intent of these articles is to let you know about sites that you might not have been to before, but they will all have to do with some aspect of Linux. Now, on with the story...
Linux, and UN*X in general, rocks the command line. However, as more users familiar with that other operating system migrate to a real operating system, they expect to see a graphical interface on almost everything. You may argue that this is a Bad Thing, but as a programmer myself, I see this as a Good Thing. It means that more and more programs will need to be written, updated and maintained, which translates to job security.
With users migrating from another windowing system, they expect to find programs that have a windowing interface. Even with the advantage that there is almost always more than one way to do something in Linux, the choice of windowing libraries to use can very quickly generate a religious war, so I'll try not to spread any of my own preferences in this area, lest I become a target myself.
Until recently, it has been difficult to write a completely windows-driven (note the lack of capitalization here) user interface from scratch. Writing an interface with a text editor and compiler can be exceedingly time consuming for a programmer who isn't intimitely knowledgeable about the windowing library. That's where Glade comes in.
Glade is an attempt to create an interface builder that uses the GTK+ library to create the widgets that the programmer needs for an application. If you have the GNOME development libraries installed, Glade can produce native GNOME application interfaces as well. Once you get used to creating and placing widgets in Glade, you can create some very complex interfaces in a manner of minutes.
When the interface is the way that you like, Glade can create the source code for you in either C, C++, Ada95, Python and Perl. Glade will also allow you to create a dynamically loaded interface that uses libGlade to read and build the screen definitions without generating source code (this can be handy for writing quick dialog boxes or informational windows).
Although Glade is currently still in development, now at version 0.5.7, my testing proved this to be a robust application that was able to create the interface that I wanted with a minimum of troubles.
This wouldn't be a Linux Site O' The Month without a look at the website, so let's take a closer look...
At first glance, the Glade website isn't the most exciting site on the internet. But, that's not necessarily a Bad Thing. With a minimum of graphic elements on the main page, it is a very fast-loading site, compared to others that I've seen recently. The site is frameless, which I am tending to like more as I see frames so misused on other sites.
The Features section of this site includes screenshots of the three windows that make up the Glade interface as well as some sample images of interfaces that were created with Glade. The Download page includes the usual list of source code tarballs and a few prebuilt packages for some of the more popular distros. The developer has included both the release history and todo list for Glade in the History and ToDo sections, respectively. If your mailbox isn't quite full enough yet, you can get your fill under the Mailing Lists link. Finally, in the Links section, there are links to information and tools that use or support Glade, while the Applications section highlights apps that were built with Glade.
This isn't a very big website, but what it lacks in size, it makes up in content. There is enough information on this site to help you get Glade installed on your box, get you started building applications with it, and get you examples of other programs that were created with it. If you've been thinking of building an application for Linux but don't know where to start in building your interface, try Glade. You'll be surprised at how easy it can be to get down to writing the code that controls your program and not worry about how it connects to the user's rodential device pointer.