Paperback: 512 pages
Publisher: Sams Publishing; 1 edition (February 18, 1999)
Language: English
ISBN-10: 0735700214
ISBN-13: 978-0735700215
Product Dimensions: 6.9 x 1.2 x 8.9 inches
Shipping Weight: 1.5 pounds (View shipping rates and policies)
Average Customer Review: 3.1 out of 5 stars See all reviews (20 customer reviews)
Best Sellers Rank: #3,613,569 in Books (See Top 100 in Books) #51 in Books > Computers & Technology > Operating Systems > Linux > Applications #538 in Books > Computers & Technology > Operating Systems > Linux > Programming #1003 in Books > Computers & Technology > Operating Systems > Unix
There are a number of factors that separate good toolkit programmer manuals from less gifted ones:* There should be a number of rather large realistic examples - not just dozens of snippets rivaling the "Hello, World's" complexity. In this sense, Harlow's book is fine: there are good examples of real-life programs that could get the programmer going.* There should be no cheesy stripped down (and ultimately useless) API reference, occupying the last third of a book. This book doesn't make this mistake either.* API calls described must be presented clearly, with all parameters documented and return values explained. And that's where this book screws it up real bad.Let me make it clear - it will be almost impossible for you to try any of the smaller examples from the book without having access to the API reference (or another book for that matter). I mean, having an example like: htable = g_hash_table_new(HashValueKey, HashValueComparator);how am I supposed to figure out what the type of htable is? And most examples in the book are just like that. This is a serious problem with the book that should've been caught by the editor or by anyone trying to look at the text with a fresh set of eyes.And it is a pity - this book doesn't violate the two main principles stated above so it could've been the best one on the subject.
I looked at this book in the bookstore, was impressed by the quality of presentation, brought it home and was writing working applications in a few hours without any other documentation. If you need to get up to speed, I don't think you could do better than this; it's extremely well written and tells its story well.It has a large sampling of examples, and I really liked them because they were useful in their own right, and tied into the things I wanted to use GTK for.There are two significant flaws in this book. First, there were a number of embarassing errors that got past the copyreaders. Some functions had upper case in their names when printed; the actual functions are all lowercase. The gtk-config program takes options beginning with double hyphens, not single hyphens. This kind of sloppiness is annoying, and I'm sure there are many beginners who will stop learning, not realizing they are literally a hyphen away from success.The second problem is that, once you're through the examples, what you really need is a reference book, and this work completely fails at it. The index is embarassingly incomplete, and many aspects of GTK are explained just well enough to get you started, which can leave you hanging later.But the rest of the book is so well done that I can ignore those flaws. If you want or need to learn GTK, this is a fantastic introduction that will serve you well.
I have been programming console apps in pure, raw C for over ten years, but never could master GUI programming in Windows or X either. GTK has saved me from a GUI-less life, and Harlow's book was my introduction.Sure, it's not perfect, but I learned a lot years ago from Herb Schildt's books (remember him?) HIS code was fragile as cut glass... but debugging is good practice, and some of his methods were brilliant. (but sloppy)Eric Harlow is much better. Many of the errors in the code presented (gpointer *data at the end of a callback declaration, when it should be gpointer data, for instance) may well be typographical in nature. I downloaded the example code and built several of the programs with much less difficulty than many console apps I have ported.Give the man a break. He was the first into the breach, so to speak. If you need a more advanced book, get Havoc Pennington's "GTK+/Gnome Application Programming" and have at it. I have both, and am still learning a lot from them.
This book just isn't very complete. If someone totally new to gtk were to use this book from which to learn, they'd have problems right off the bat - some _very_ significant typos (like the compiler arguments on p.29) and total lack of documentation in several places (see others' comments). Luckily, I already knew a bit of GTK+ and could work around the errors, although the 'missing' documentation bugs me. Some of Mr. Harlow's code is really weird, too - strange pointer conversion creates a compiler warning (p.53), along with some other examples I don't feel like finding. It is a decent book for my purposes - it's like learning from the source, but with a little more documentation. If you know your way around GUIs and have money to spend, go for it.
When I first saw this book, I ordered it immediately. When I flipped through it to see the content, I was very excited. When I finally started reading it, I was extremely disappointed. The book doesn't cover so much of Gtk that I can't use it as a reference. The index is so poor that I can't find what it does cover. There is no explanation of anything, beyond a vague description and then a chunk of source code. I've taken to just reading the source code as a reference instead -- at least that way it's clear what everything does. Functions are mentioned and not all of their parameters are explained! That leaves me wondering what that last NULL meant, and finally digging through the source to find out. Or take the section on creating menus with item factories, where the author describes, in a bulleted list, the eight possible values for the flag parameter, and then proceeds to use a ninth one in the following source code, with no explanation of what it does! The examples in the book aren't exactly useful, because they illustrate one (sometimes non-typical) use. The book as a whole just blows. Add to that a very poor code quality even in the example source (which is about all there is left of the book) and this book is a lot closer to my trash can than my bookshelf.
LINUX: Linux Command Line, Cover all essential Linux commands. A complete introduction to Linux Operating System, Linux Kernel, For Beginners, Learn Linux in easy steps, Fast! A Beginner's Guide Linux: Linux Guide for Beginners: Command Line, System and Operation (Linux Guide, Linux System, Beginners Operation Guide, Learn Linux Step-by-Step) Linux: Linux Mastery. The Ultimate Linux Operating System and Command Line Mastery (Operating System, Linux) Developing Linux Applications Piano Sonatinas - Book Three: Developing Artist Original Keyboard Classics (The Developing Artist) Developing Gestalt Counselling (Developing Counselling series) Linux: Linux Bash Scripting - Learn Bash Scripting In 24 hours or less Linux for Beginners: An Introduction to the Linux Operating System and Command Line Linux: The Ultimate Step by Step Guide to Quickly and Easily Learning Linux Linux Clustering: Building and Maintaining Linux Clusters Ubuntu Linux: Your visual blueprint to using the Linux operating system SUSE Linux Enterprise Server Administration (Course 3112): CLA, LPIC - 1 & Linux+ Linux Apache Web Server Administration, Second Edition (Craig Hunt Linux Library) LINUX, UNIX, SAN, SYSTEM ADMINISTRATOR, LINUX SERVER ENGINEER, STORAGE ADMINISTRATOR LAST-MINUTE BOTTOM LINE JOB INTERVIEW PREPARATION QUESTIONS & ANSWERS Maximum Linux Security: A Hacker's Guide to Protecting Your Linux Server and Workstation The Linux Programming Interface: A Linux and UNIX System Programming Handbook Linux PCI Device Driver - A Template (Linux Driver Development) Linux Char Device Driver - A Template (Linux Driver Development) MSP430-based Robot Applications: A Guide to Developing Embedded Systems Swift: Developing iOS Applications