第13章,复杂度:本章作者讨论了简单和复杂的辩证统一关系。复杂度的来源有三:
- 实现复杂度
- 界面(接口)复杂度
- 代码量
三者在大多数情况下是此消彼长的关系,故须着眼全局,权衡之。最后作者通过ed,vi和emacs等实际程序来阐述复杂和简单的辩证统一关系,最终得出了“中庸”之道,提倡适度规模。UNIX程序设计的KISS原则和科学研究中的“尽量分离复杂的环境要素,集中解决特定问题”的研究方法是类似的。
第14章,语言。从本章开始就来到了本书的第三部分:实现。本章作者分析了编译语言C和C++;脚本语言Shell,Perl,Tcl,Python和Lisp;虚拟机语言Java。指出了UNIX环境下的语言之富饶以及混合语言编程的可能性。最后展望了这些语言的发展趋势,更多的还是语言新秀的特定方面应用及遗留语言的保持。对在2003还是Baby语言的Ruby也有介绍,如今Ruby已然大红大紫,看来作者的眼光还是有其独到之处的。一个语言的成功与否,不仅和语言本身上的好坏有关系,更依赖于围绕这个语言的库,应用程序和社区的发展程度,UNIX之于C,CPAN之于Perl,Rail之于Ruby都是活生生的例子。
第15章,工具。肯定有免不了的“器事之论”,作者罗列了些开发者居家旅行必备的开发工具:操作系统、编辑器、代码生成器、自动化编译套件、版本控制系统、调试工具和性能剖析。对于集这些功能于一身的IDE(Integrate Development Environment:集成开发环境)作者也有提及,不过就是有些UNIX旧学派的作风:推荐用Emacs。目前,IDE的选择还是蛮多的,如IBM的Eclipse,KDE下的Kdevelop和Gnome下的Anjuta。
第16章,重用。本章开篇作者竟然引用了老子《道德经》中的“不言之教,无为之益,天下希及之”。别的先不说,首先表达一下对ESR的敬仰之情,也为中华文化喝彩一番,当然更少不了反思自己。作者分析了影响重用的几点因素:商业版权的制约和代码的透明度,指出“开源”之于“重用”有重大意义。当然使用开源软件也并不意味着完全自由,并且即使是自由软件也还是要遵守一些规则的,为此作者介绍了一些常见的开源许可证,阐述了采用以这些许可证发布的源码所需要注意的事项。作为一本实战性很强的书,ESR当然也有教我们如何、到哪里去寻找这些可重用的源码。
第17章,可移植性。本章也是本书第四部分:社区的开头。可移植性在某些情况下确实是个问题,软件的兼容性问题不仅存在于横向的各类操作系统上,也同时存在于同一操作系统的不同版本上。这个时候,标准的重要性就体现出来了,UNIX通常遵循POSIX标准,作为UNIX变种的Linux除了遵守UNIX外还需要兼容LSB。除此之外,语言的标准化、协议的标准化和软件的国际化同样重要。
第18章,文档。ESR推崇基于标记的文档格式,并介绍了些具体实例:troff、TEX、Texinfo、POD(Perl Old Documentation)、HTML和DocBook。DocBook是目前最流行的文档格式,并可轻易转化成以上的其他文档格式,所以它应该是未来的出路和趋势。
第19章,开放源码。UNIX的发展历史表明:当UNIX实践最接近开放源码时,就欣欣向荣,反之则停滞不前。ESR为我们总结出了开源开发的规则:
- 源码开放。
- 尽早发布,经常发布,但是这并不意味着不注重软件的质量。
- 给贡献以表扬。
和开源开发者协同作业的最佳实践:
- 良好的修补实践:这主要针对于补丁提交者而言,都是些琐碎的细节和惯例,再次我也就不再一一罗列出来。
- 良好的项目、档案文件命名习惯:这主要针对“维护者”而言。作者提倡用GNU的习惯,实际上这也是最常用的UNIX习惯。
- 良好的开发实践:主要依赖于软件维护人员的严谨态度和软件的可维护性。
- 良好的发行制作实践:还是遵循标准和国际惯例,谨防“标新立异”。
- 良好的交流实践:为开发人员和用户提供一个互相交流的平台,比如说新闻组(news group),邮件列表(mail list)和包含有FAQ等信息的网站,当然不要忘了在最适当的地方打个“广告”。
最后,不要忘了选择一个最适合于项目的开源许可证。
第20章,未来:机遇与挑战并存。本章的内容很符合论文通用格式“穿靴戴帽”中的“戴帽”部分,标题也比较老套。不过ESR的一些观点还是很独到的,并且这两年的发展也印证了或者是正在印证着他的一些预测,佩服至极。Plan9的一些思想在向UNIX渗透,如Linux内核中的/sys目录和与之相对应的设备模型,依赖于用户空间文件系统的ftp、ssh、甚至是数据库文件系统的出现;对文件属性的支持;selinux的发展和壮大;易用性在软件设计中地位的逐步加重等。
总之,Linux/UNIX之路还是会继续地走下去,并且越走越好,这一切都源于他的“开放”!
后记:这本书截止到今天已经正式读完,终于可以归还给同事了,发现书真的是“非借不能读”。
阅读(1285) | 评论(3) | 转发(0) |