Programming KDE 2.0: Creating Linux Desktop Applications
Author: Lotzi Bölöni
Publisher: CMP Books
Price: $39.95 US
Reviewer: Stephanie Black
Good programming books are hard to find. By “good”, I mean that things like an author's bias does not overshadow the value of information in the work, the writing is clear, appendices are used as addenda to the written work (and are not half of the text) and assumptions about user knowledge/skill levels are consistent and addressed in some kind of chronological order. Lastly, it's most helpful if the book engages—not enrages—the reader.
Programming KDE 2.0: Creating Linux Desktop Applications (CMP, 2001) introduces the reader to development of KDE applications. The approach Bölöni takes assumes at least a basic knowledge of C++ and systematically takes the user through the basics of the Qt libraries, use of components and all the way to “expert touches” to make your new KDE application sparkle.
If you like KDE, this book is a fine piece of work and will undoubtedly speed you on your way to creating a “killer app” of the finest kind. You will have spent your money wisely.
If you do not like KDE, if you have found it wanting (especially its meager memory resources), you will probably not appreciate Bölöni's “boosterism”, his detailed expiation on the history of graphical desktops (unified graphical desktops in particular) or his utter refusal to broach the subject of memory management in KDE applications. The only part you might find a bit amusing is the opening statement of Chapter 1: “The K Desktop Environment (KDE) is the most popular desktop environment for UNIX-like systems and probably the largest open-source project ever undertaken.”
If you take things like this seriously, the author has completed his unofficial (though not unofficious) task of alienating his readers. If you take these things with a grain of salt, it is almost possible to enjoy—and certainly benefit from—the information within the book. Almost.
(For the record, the largest open-source project ever undertaken would be the GNU project, without which neither Linux nor KDE would have usable and free development tools to aid their development.)
From a technical standpoint, there's not much to critique about Bölöni's work except its premise. The extensive overhead of C++, even without the KDE libraries, components, additional objects, etc. can be daunting for many Linux systems that are not running a minimum of 128MB of RAM. Such information is ignored, which I find a bit questionable.
Assuming the developer/user has a hefty amount of RAM and is comfortable with C++, Bölöni's technical expertise is evident. The explanatory text and illustrative code samples complement each other well. For the most part, no obvious glaring errors appear in either, until we get to the end of the book.
In Chapter 8: “Expert Touches”, Bölöni provides a wonderful discussion of communications in KDE, what protocols are involved, what classes actually do—things like addressing, “marshaling” data and registering an application. This is one section where the author provides some useful information. For example, his listing of code for “LocalChat” illustrates his points well. Although the code is lengthy, it is well-commented and is a real education in the grunt work of modern communications tools.
Another feat is from the “smart coders dupe stupid users” school of programming, by way of a flagrant attempt to explain away the continental-drift speed for which KDE applications are known. The phenomenon in question is termed “perceived performance”, as in the benchmarks say one thing, but the user perceives it differently. Whose benchmarks is he talking about? Which user(s)? Linux users? Or the subset we can only call “GNU-bies”? (Thanks to Jon Pennington for that wonderful term!) The ensuing discussion, on “tricking” the user by employing splash screens (to “hide” the length of time the application takes to load) is, one would have thought, beneath someone of Bölöni's caliber.
The author deigns to give us some “parting thoughts” in Chapter 9 that are either (or both) vague (“How to Make Money with KDE” says nothing about how, only that you can) or hypocritical (Java's advantages are paid for with a massive performance loss? Pots, kettles, lend us your callings!) and include the following boast:
All the reasons I mentioned for using KDE for custom applications hold for off-the-shelf software, too. But you must consider one more thing: the size of the market. Given that KDE is bundled with all the commercial Linux distributions and with all the major Unices, when writing a KDE application, you are targeting practically 100% of the Linux/UNIX world.
Please. There are a fairly large number of GNOME users that would choose Glade in a heartbeat over KDE, to say nothing of some very competent and critical coders using Enlightenment, WindowMaker and even Blackbox. Bölöni, by not taking these users/developers into account, misses a large portion of his potential audience.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Google's Abacus Project: It's All about Trust
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Seeing Red and Getting Sleep
- Secure Desktops with Qubes: Introduction
- Fancy Tricks for Changing Numeric Base
- Working with Command Arguments
- Secure Desktops with Qubes: Installation
- Back to Backups
- CentOS 6.8 Released
- Linux Mint 18
Until recently, IBM’s Power Platform was looked upon as being the system that hosted IBM’s flavor of UNIX and proprietary operating system called IBM i. These servers often are found in medium-size businesses running ERP, CRM and financials for on-premise customers. By enabling the Power platform to run the Linux OS, IBM now has positioned Power to be the platform of choice for those already running Linux that are facing scalability issues, especially customers looking at analytics, big data or cloud computing.
￼Running Linux on IBM’s Power hardware offers some obvious benefits, including improved processing speed and memory bandwidth, inherent security, and simpler deployment and management. But if you look beyond the impressive architecture, you’ll also find an open ecosystem that has given rise to a strong, innovative community, as well as an inventory of system and network management applications that really help leverage the benefits offered by running Linux on Power.Get the Guide