致《编程高手箴言》作者的一封信

梁肇新先生:

    您好!

    今天有幸拜读您的大作——《编程高手箴言》,果然名不虚传,恭维 的话实在不敢多说。我对 书中的技术问题不敢妄下评论,因为我本人的兴趣不在Windows这方面,我现在也不使用Windows了。 我本人是一个Linux程序员,是一个不折不扣的开源爱好者,但不是狂热者。 读完了书中第一章,我觉得有必要给您写这么一封信了,来谈谈本人的拙见,来为Linux说句话。

    您在您的书中第1.2.2节中写到: “就像Intel时刻把握着CPU的最新技术,才能保证自己是行业老大。”

诚然,Intel成功占领了PC机市场,它在商业上获得了巨大的成功。但是,这并不 意味着Intel在CPU技术上是最棒的。我本人对CPU没有多少研究,不敢从技术角度去分析。 据我所知,Sun的SPARC,Motorola的M68000和原DEC开发的Alpha都不比 Intel的x86差。说Intel是技术上的老大是不确切的。 而且,03年图灵奖获主Alan Kay告诉我们:“Intel、Motorola以及其他厂商 不懂得架构的重要性,现在的计算机与1979年的Xerox PARC相比之只快了50倍, 而Intel CPU 运行速度已经提高了40,000到60,000倍。 也就是说糟糕的CPU架构,使运行效率降低1000倍, 从这方面讲摩尔定律是完全错误的。而计算机在最初设计时就 是两个 CPU,在这种架构下,计算机不容易崩溃。”我想他没错,现在网络上病毒满天飞, 与软件有着莫大的关系,但与硬件构架也不无关系。

    您在您的书中第1.2.3节中写到: “整个64位系统的平台和思维方式、思路都比现在更开阔,打个比方说, 现在的Windows里面能开n个DOS窗口,每个DOS窗都能运行一个程序。 到达64位的时候,操作系统事实上能做到开n个X86,开n个Windows 98, 然后再开n个Windows 95都没有问题,系统能做到这一步,甚至你的系统 内开n个Windows NT都没有关系。这就是64位和32位的差别。 所以,微软的那些“老头”,四、五十岁的那几个做核心的人,现在正在 玩这些东西。你说微软的技术它能不先进吗?是Linux那几个玩家能搞定的吗?”

64位的确能带来技术上的变化,一些陈旧的操作系统理论也要因之而改变。 虽然现在还没有进入64位时代,但是,这并不是说我们还没有64位处理器,Intel的 安腾早已经出64位的了,而且Linux已经被移植到上面了,并且那两个人还出了本书,叫 《IA-64 Linux Kernel: Design and Implementation》(这本书是2002年出的)。 就支持平台而言,Linux支持的平台比WinNT多得多, Linux已经被移植到各种平台上:Alpha,M68000,SPARC,i386,IA64,IBM s390等等,嵌入式 系统使用Linux已经不是什么稀罕事了,而当我听说Linux运行 在一个200MHZ手持设备里的两个AAA元件上时,我感到很兴奋。 多年以来,Windows只能运行在Intel x86上面,WindowsNT的出现才勉强打破这种局面。 所以,暗示Linux不如微软是不对的。Linux内核是由来自世界各地的内核黑客维护的,他们的技术 绝对不亚于微软的“那些老头”,虽然他们没有Unix开发者特有的络腮胡。

    您在您的书中第1.2.3节中写到:“微软的 技术非常雄厚,世界计算机的最新技术绝对集中在这几个人手里。而且这几个人 的思维模式非常开阔,谁都没有意识到的东西他早就开始做了。现在64位的CPU都 出来一二年了,你说有什么人去做这些应用吗?没有,有的就是那几个UNIX厂商做 好后给自己用的。”

我不否认,微软确实也有一批相当厉害的人,但是,你要说那几个人的“思维模式非常开阔” “世界计算机的最新技术绝对集中在这几个人手里”就值得讨论了。首先,那么几个人 的思维能超过维护Linux内核世界各地数千名黑客?能赶上维护BSD内核的 优秀科学家们吗?显然不会。其次,微软是闭源的,Linux和BSD都是开源的。开源有个 很大的好处就是:“如果有足够多的眼睛,所有的错误都是浅显的”, 我们把它称为Linus定律。毫不夸张地说,正是开源让Linux变得这么优秀,而且Linux天天在改进, 但是微软那几个人总会有都休假的时候。 说“世界计算机的最新技术”集中在微软或者微软的那几个人手里都是有失公允的! 我想,如果我说贝尔实验室有世界计算机的最新技术, 没有多少人会反对,因为C,C++,UNIX,Plan9等都出自那里,但是,那里的科学家都是使用UNIX 啊,而不是Windows。 最后,上面提到过,Linux已经被移植到64位平台上了,64位的Linux发行版是很容易得到的, 不是“几个UNIX厂商做好后给自己用的”。

    我想,您作为一个Windows开发高手,热爱微软是非常 可以理解的。因为我以前使用Windows时也是这么想的。但是,我们Linux/Unix阵营有着 我们引以为豪的黑客文化和开放的氛围,我们甚至比你们更热爱自己的文化, 忽视我们感受是不对的。

    以上乃本人的一孔之见,有不妥之处还望海涵。

    此致

敬礼!




王聪     
2006.3.31