全部博文(272)
分类: LINUX
2009-11-27 11:52:44
我接手了popclient。同样重要的是,我也承继了popclient的用户基础。拥有用户是件美好的事情,他们的存在不仅仅印证了你正在供其所需,而且说明你做的还不赖。加以适当的培养,他们还能成为你的开发伙伴。
许多用户也是黑客,这是Unix传统的另一个强项,而Linux把它推向极致。因为可以获得源代码,大家的工作会更加卓有成效,这可以有效的缩短调试时间。加上一些掌声,他们会帮忙解决问题,提出建议,这总比你单枪匹马要快得多。
6.把用户当作开发伙伴,是快速改进代码和有效调试的不二法门。
Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
这种效应的力量很容易被低估。事实上,开源世界中的人们一度完全忽视了随着用户数量的增加,该效应是如何得以大幅扩展,同时系统的复杂性并没有显著增加——直到李纳斯独具慧眼,另辟蹊径。
其实,李纳斯的睿智和最有影响的手笔并不在于他发明了Linux内核,而是创造了一种模式。有一次我当面向他表达这个见解的时候,他莞尔地说起那句口头禅:“基本上,我很懒,懒到用他人的工作换取口碑。”像狐狸一样懒惰,或许如同罗伯特·海因莱茵[1]笔下那个著名的人物一样——太懒了,才不会失败。
回顾过去,Linux方法的一个成功先例就是GNU Emacs的Lisp库和Lisp代码文档。与Emacs的C核心和其他GNU工具的大教堂模式相比,Lisp代码集则是有诸多活跃用户驱动的。创意和原型都通常要经过三四次重写才能最终成型。如同Linux,基于网络的松散协作也很频繁。
实际上,在Fetchmail之前我最成功的编程作品要数Emacs VC(版本控制)模式了,它是我与另外三个人以互通邮件这种Linux 式合作来完成的,至今我也只见过其中一人——理查德·斯多曼(Richard Stallman,Emacs的作者,软件基金会的创始人)。其实它是由别人编写的一个微小粗糙的sccs.el模式演进而来的,后来成为SCCS、RCS和CVS的前台,并为Emacs提供“单击式”版本控制操作。与Emacs本身不同,VC模式的成功源于Emacs Lisp代码可以快捷的完成“释放/测试/改进”的循环。
Emacs的故事并不是惟一的。这种双级架构双层用户群(教堂形而上,市集形而下)的模式也被其他软件采用。比如MATLAB,一款用于数据分析和数据可视化的商业软件。MATLAB和其他类似产品的用户一致认为,动力、热情和创造都源自其开放部分——一个可以让各色用户都来舞刀弄棒的大校场。
译者按:1.罗伯特·安森·海因莱茵(Robert Anson Heinlein),著名科幻作家。共获得了五次星云奖和七次雨果奖。文中提及人物出自其1973年出版的小说《Time Enough for Love》。