![]()
I'm more of a command line kind of guy, but there are things better done in a graphical treatment. When this is true, I often resort to HTML, but that isn't always suitable either. Most of what I've read about GUI programming has left me feeling daunted by the learning curve, and the writing itself has mostly been difficult to read and unsatisfying
This book was a delightful exception. As its introduction promises, the content "lies somewhere between a tutorial and a reference". The code examples are often just the kind of things you would write yourself to test-drive your understanding; no unnecessary fluff. There are complete programs also, and these are downloadable from the No Starch web site.
Matthias Warkus has a real knack for explaining complex subjects. I particularly liked his way of explaining object inheritance, which is completely upside down from the way it is usually presented, and thereby makes a much more understandable case for using OO code.
The first chapter is an overview of GLib capabilies. I was quite surprised at the things GLib includes: I come from the days when you needed to buy commercial libraries to get features like memory management, linked lists, B-trees, etc. The second chapter covers GObject, which adds Object Oriented capability to standard C programming. That's an important aspect of Gnome: it is plain vanilla C with the OO stuff added on through the GObject library. For those of us who have yet to be entranced by C++, that's important.
Chapters three and four explain GTK+ and the Gnome libraries, the overlap between them, and when you'd use either. Chapter five is a lucid introduction to Glade, the interactive development tool for Gnome. I was interested to note that Glade produces XML files that your programs references through calls to Glade libraries.
The rest of the book is miscellaneous coverage that wasn't covered elsewhere; compiling issues, configuration helpers like Gconf. I had ben previously unaware of the GnomeVFS discussed in chapter eight which allows your program to transparently access remote web servers and archive formats like PKzipped files.
All in all, this looks like a very good intro to Gnome GUI development.
More Articles by Tony Lawrence - Find me on Google+
Have you tried Searching this site?
Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.
Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.
Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.
We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.
Click here to add your comments
"I come from the days when you needed to buy commercial libraries to get features like memory management, linked lists, B-trees, etc."
I can recall when you had to write that stuff because there weren't any libraries to purchase.
"...it is plain vanilla C with the OO stuff added on through the GObject library. For those of us who have yet to be entranced by C++, that's important."
It seems that those who are most entranced by C++ are those whose livelihood depends upon this cumbersome language being used to the max. I've yet to figure out what C++ is good for besides generating binaries the size of a freight locomotive.
--BigDumbDinosaur
I remember a very (very!) short B-Tree implementation in Basic. I found it nearly impossible to comprehend, but it worked well. Probably have it kicking around somewhere.
--
TonyLawrence
---November 30, 2004
Don't miss responses! Subscribe to Comments by RSS or by Email
Click here to add your comments
If you want a picture to show with your comment, go get a Gravatar