为什么会是Qt?为什么像我这样的程序员会选择Qt?这个问题的答案显而易见:Qt单一源程序的兼容性、丰富的特性、C++方面的性能、源代码的可用性、它的文档、高质量的技术支持,以及在奇趣科技公司那些精美的营销材料中所涉及的其他优势等。这些答案看起来确实都不错,但是遗漏了最为重要的一点:Qt的成功缘于程序员们对它的喜欢。
那么,是什么让程序员喜欢某种技术而放弃另外一种呢?就我而言,我认为软件工程师们喜欢某种技术,是因为他们觉得这种技术是合适的,但是这也会让他们讨厌所有那些他们觉得不合适的其他技术。除此之外,我们还能解释下面的这些情况吗?例如,一些最出众的程序员需要在帮助之下才能编写出一个录像机程序,或者又比如,似乎大多数工程师在操作本公司的电话系统时总会遇到麻烦。我虽然善于记住随机数字和指令的序列,但是如果将其比作用于控制我的应答系统所需要的条件来说,则可能一条也不具备。在奇趣科技公司,我们的电话系统要求在拨打其他人的分机号码前,一定要按住“*”键2秒后才允许开始拨号。如果忘记了这样做而是直接拨打分机号码,那么就不得不再重新拨一遍全部的号码。为什么是“*”键而不是“#”键、“1”键或者“5”键?或者为什么不是20个电话键盘中的其他任何一个呢?又为什么是2秒,而不是1秒、3秒或者1.5秒呢?问题到底出在哪里?我发现电话很气人,所以我尽可能不去使用它。没有人喜欢总是去做一些不得不做的随机事情,特别是当这些随机事情显然只出现在同样随机的情况下的时候,真希望自己从来都没有听到过它。
编程很像我们正在使用的电话系统,并且要比它还糟糕。而这正是Qt所要解决的问题。Qt与众不同。一方面,Qt很有意义;另一方面,Qt颇具趣味性。Qt可以让您把精力集中在您的任务上。当Qt的首席体系结构设计师面对一个问题的时候,他们不是寻求一个好的、快速的或者最简便的解决方案,而是在寻求一个恰当的解决方案,然后将其记录在案。应当承认,他们犯下了一些错误,并且还要承认的是,他们的一些设计决策没有通过时间的检验,但是他们确实做出了很多正确的设计,并且那些错误的设计应当而且也是能够进行改正的。看一看最初设计用于构建Windows 95和UNIX Motif之间的桥梁系统,到后来演变为跨越Windows Vista、Mac OS X和GNU/Linux以及那些诸如移动电话等小型设备在内的统一的现代桌面系统,这些事实就足以证明这一点。
早在Qt大受欢迎并且被广泛使用很久以前,正是Qt的开发人员为寻求恰当的解决方案所做出的贡献才使Qt变得与众不同。其贡献之大,至今仍然影响着每一个对Qt进行开发和维护的人。对我们而言,研发Qt是一种使命和殊荣。能够使您的职业生涯和开源生活变得更为轻松和更加有趣,这让我们倍感自豪。
人们乐于使用Qt的诸多原因之一是它的在线帮助文档,但是该帮助文档的主要目的是集中介绍个别的类,而很少讲述应当如何构建现实世界中那些复杂的应用程序。这本好书填补了这一缺憾,它展示了Qt所提供的东西,如何使用“Qt的方式”进行Qt编程,以及如何充分地利用Qt。本书将指导C++、Java或者C#程序员进行Qt编程,并且提供了丰富详实的资料来使他们成长为老练的Qt程序员。这本书包含了很多很好的例子、建议和说明——并且,该书也是我们对那些新加入公司的程序员们进行培训的入门教材。
如今,已有大量的商业或者免费的Qt应用程序可以购买或者下载,其中的一些专门用于特殊的高端市场,其他一些则面向大众市场。看到如此多的应用程序都是基于Qt构建而成的,这使我们充满了自豪感,并且还激励我们要让Qt变得更好。相信在这本书的帮助下,将会前所未有地出现更多的、质量更高的Qt应用程序。
Matthias Ettrich
德国,柏林
2007年11月