on January 23, 2003
Programming KDE 2.0 is largely a re-hash of other publicly available material, interspersed with the author's amateurish pontification on user interface and application design.
In particular, the sections that purport to emphasize good user interface design are, unfortunately, academic and superficial -- almost as if the author once read a book on user interface design and regurgitates what he remembers. The history of the graphical interface presented in the first chapter is a wasted opportunity because it is simply a chronology. It completely fails to highlight the important lessons that were learned, extract the key points and teach the reader something. Anyone who spent an afternoon searching the web could have written the same thing -- not what I want to pay for in a book.
This book is strongest in providing details of the available GUI elements (i.e. describing the API). But then the KDE API is well documented anyway -- and the book simply re-hashes that (public) material. There is very little added value here.
The author clearly considers his personal development techniques to be that added value. Unfortunately, these are poorly conceived and not pragmatic for anything other than small amateur applications. A good example is the use of XML to define a user interface. While XML is all the rage right now, this approach means that building a GUI becomes a laborious trial-and-error process with much manual editing of XML before you get the right result. The XML then becomes a bear to maintain. Worse, it make it very hard for the application to dynamically adapt the GUI based on calculations or data entered by the user. This is critical for anything other than the simplest application. It also makes re-use of parts dialog boxes or forms within the application almost impossible, because there is no modularity.
The final straw is the author's prose -- rambling and irrelevant, with an overall tone of smug authority "talking down" to the reader. For example, in the first chapter, the author talks disapprovingly of end users who expect a graphical user interface to be easy to use (because this is hard to program)!
There are far better books on application development and user interface design. Buy one of those, and get your KDE API documentation from the KDE developer community sites.