KDE 2.0 编程:创建 Linux 桌面应用程序
作者:Lotzi Bölöni
出版社:CMP Books
价格:39.95 美元
ISBN:1-929629-13-3
评论者:Stephanie Black

好的编程书籍很难找到。我所说的“好”,指的是作者的偏见不会掩盖作品中信息的价值,写作清晰,附录被用作书面作品的补充(而不是占据文本的一半),并且对用户知识/技能水平的假设是一致的,并在某种时间顺序中得到解决。最后,如果这本书能吸引读者,而不是激怒读者,那就最有帮助了。
KDE 2.0 编程:创建 Linux 桌面应用程序(CMP,2001)向读者介绍了 KDE 应用程序的开发。Bölöni 的方法假定读者至少具备 C++ 的基本知识,并系统地引导用户了解 Qt 库的基础知识、组件的使用,以及使您的新 KDE 应用程序闪耀的“专家技巧”。
如果您喜欢 KDE,这本书是一部优秀的作品,无疑将加速您创建一流的“杀手级应用”。您将明智地花掉您的钱。
如果您不喜欢 KDE,如果您发现它有所不足(尤其是其微薄的内存资源),您可能不会欣赏 Bölöni 的“吹捧”,他对图形桌面历史(尤其是统一图形桌面)的详细阐述,或者他完全拒绝探讨 KDE 应用程序中的内存管理问题。您可能会觉得有点可笑的唯一部分是第 1 章的开篇语:“K 桌面环境(KDE)是 UNIX 类系统中最流行的桌面环境,也可能是迄今为止规模最大的开源项目。”
如果您认真对待这些说法,那么作者已经完成了他非官方的(虽然并非不负责任的)疏远读者的任务。如果您对这些说法一笑置之,那么几乎有可能享受——当然也能受益于——书中的信息。几乎。
(为了记录,迄今为止规模最大的开源项目应该是 GNU 项目,没有 GNU 项目,Linux 和 KDE 都不会有可用的和免费的开发工具来帮助他们的开发。)
从技术角度来看,除了 Bölöni 作品的前提之外,没有什么可批评的。即使没有 KDE 库、组件、附加对象等,C++ 的大量开销对于许多没有运行至少 128MB 内存的 Linux 系统来说也可能是令人望而却步的。这些信息被忽略了,我发现这有点令人质疑。
假设开发人员/用户拥有大量的内存并且熟悉 C++,Bölöni 的技术专长是显而易见的。解释性文本和说明性代码示例相辅相成。在大多数情况下,两者中都没有明显的错误,直到我们看到书的结尾。
在第 8 章:“专家技巧”中,Bölöni 对 KDE 中的通信、涉及的协议、类实际执行的操作(例如寻址、“编组”数据和注册应用程序)进行了精彩的讨论。这是作者提供一些有用信息的一个章节。例如,他列出的“LocalChat”代码很好地说明了他的观点。虽然代码很长,但注释很充分,并且是对现代通信工具繁重工作的真实教育。
另一个壮举来自“聪明的程序员欺骗愚蠢的用户”的编程流派,通过公然试图解释 KDE 应用程序众所周知的如大陆漂移般的速度。所讨论的现象被称为“感知性能”,就像基准测试说的是一回事,但用户感知到的却不同。他谈论的是谁的基准测试?哪个用户?Linux 用户?还是我们只能称之为“GNU-bies”的子集?(感谢 Jon Pennington 创造了这个精彩的术语!)随后的关于通过使用启动画面(“隐藏”应用程序加载所需的时间)来“欺骗”用户的讨论,人们会认为,这有损 Bölöni 的声誉。
作者屈尊在第 9 章中给了我们一些“临别赠言”,这些“临别赠言”要么含糊不清(“如何通过 KDE 赚钱”没有说明如何赚钱,只说了你可以赚钱),要么是虚伪的(Java 的优势是以巨大的性能损失为代价换来的?五十步笑百步!),并且包括以下吹嘘
我提到的使用 KDE 进行自定义应用程序的所有理由也适用于现成的软件。但是您必须考虑另一件事:市场规模。鉴于 KDE 与所有商业 Linux 发行版和所有主要的 Unix 捆绑在一起,当编写 KDE 应用程序时,您的目标实际上是 100% 的 Linux/UNIX 世界。
拜托。有相当多的 GNOME 用户会在瞬间选择 Glade 而不是 KDE,更不用说一些非常有能力和挑剔的编码人员使用 Enlightenment、WindowMaker 甚至 Blackbox 了。Bölöni 没有考虑到这些用户/开发人员,错失了很大一部分潜在受众。
一本关于软件的书籍包含它所指的软件,这是一件美好的事情。作者试图做到这一点,并对可能加载 KDE 2.0 的各种发行版进行了一些预见。在运行过以前版本的 KDE 之后,我对测试它并不感到反感。毕竟,这是一个较新的版本,根据一些报道,它比以前的版本更好。(有些机构坚持认为“占用更多内存”是“更好”的同义词。)
我只想说 Debian 二进制文件中缺少某个 libmng,导致评论者心情不好,64MB 内存不高兴(速度慢到无法使用),硬盘驱动器也变得崩溃。寻找丢失的库需要几个小时的徒劳无功的追逐,并且毫无结果。libmng 需要 zlib。需要它但看不到它的副本。
唉。
如果您有很多内存,喜欢 C++ 并且喜欢创建桌面应用程序,那么KDE 2.0 编程是一本相当不错的指南。如果您正在运行 Debian,请不要使用本书附带的 CD;访问 KDE 网站 (http://www.kde.org/) 并下载它。这本书将作为参考书派上用场。如果您不喜欢 KDE,仅标题就应该阻止任何冲动购买。
