第三章 用户的重要性

简介: 我接手了popclient。同样重要的是,我也承继了popclient的用户基础。拥有用户是件美好的事情,他们的存在不仅仅印证了你正在供其所需,而且说明你做的还不赖。加以适当的培养,他们还能成为你的开发伙伴。

我接手了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 EmacsLisp库和Lisp代码文档。与EmacsC核心和其他GNU工具的大教堂模式相比,Lisp代码集则是有诸多活跃用户驱动的。创意和原型都通常要经过三四次重写才能最终成型。如同Linux,基于网络的松散协作也很频繁。

实际上,在Fetchmail之前我最成功的编程作品要数Emacs  VC(版本控制)模式了,它是我与另外三个人以互通邮件这种Linux 式合作来完成的,至今我也只见过其中一人——理查德·斯多曼Richard StallmanEmacs的作者,自由软件基金会的创始人)。其实它是由别人编写的一个微小粗糙的sccs.el模式演进而来的,后来成为SCCSRCSCVS的前台,并为Emacs提供“单击式”版本控制操作。与Emacs本身不同,VC模式的成功源于Emacs Lisp代码可以快捷的完成“释放/测试/改进”的循环。

Emacs的故事并不是惟一的。这种双级架构双层用户群(教堂形而上,市集形而下)的模式也被其他软件采用。比如MATLAB,一款用于数据分析和数据可视化的商业软件MATLAB和其他类似产品的用户一致认为,动力、热情和创造都源自其开放部分——一个可以让各色用户都来舞刀弄棒的大校场。

 

 

译者按:1.罗伯特·安森·海因莱茵(Robert Anson Heinlein),著名科幻作家。共获得了五次星云奖和七次雨果奖。文中提及人物出自其1973年出版的小说《Time Enough for Love》。

相关文章
|
存储 移动开发 C语言
# C程序设计内容与例题讲解 -- 第三章第一部分(第五版)谭浩强
# C程序设计内容与例题讲解 -- 第三章第一部分(第五版)谭浩强
197 0
|
4月前
|
人工智能 运维 监控
兄弟,你还在翻日志看故障?AI都快替你写日报了!
兄弟,你还在翻日志看故障?AI都快替你写日报了!
217 7
|
存储 人工智能 搜索推荐
详解MySQL字符集和Collation
MySQL支持了很多Charset与Collation,并且允许用户在连接、Server、库、表、列、字面量多个层次上进行精细化配置,这有时会让用户眼花缭乱。本文对相关概念、语法、系统变量、影响范围都进行了详细介绍,并且列举了有可能让字符串发生字符集转换的情况,以及来自不同字符集的字符串进行比较等操作时遵循的规则。对于最常用的基于Unicode的字符集,本文介绍了Unicode标准与MySQL中各个字符集的关系,尤其详细介绍了当前版本(8.0.34)默认字符集utf8mb4。
|
8月前
|
人工智能 自然语言处理 API
阿里云百炼xWaytoAGI共学课DAY1 - 必须了解的企业级AI应用开发知识点
本课程旨在介绍阿里云百炼大模型平台的核心功能和应用场景,帮助开发者和技术小白快速上手,体验AI的强大能力,并探索企业级AI应用开发的可能性。
2525 85
|
消息中间件
RabbitMq没开启rabbitmq_management插件控制台报错Node statistics not available
RabbitMq没开启rabbitmq_management插件控制台报错Node statistics not available
200 0
|
XML 开发框架 .NET
ASP.NET Web Api 如何使用 Swagger 管理 API
ASP.NET Web Api 如何使用 Swagger 管理 API
292 1
|
API Python
Python实现大麦网抢票的四大关键技术点解析
随着互联网的普及和发展,线上购票已经成为人们生活中不可或缺的一部分。然而,在抢购热门演出门票时,往往会遇到抢票难、抢票快的问题,有时候一秒钟的延迟就意味着与心仪的演出擦肩而过。为了解决这个问题,技术爱好者们开始探索利用Python多线程技术来提高抢票效率。本文将介绍Python实现大麦网抢票的四大关键技术点,帮助读者了解抢票脚本的核心原理,并通过示例代码详细说明实现过程。
|
数据安全/隐私保护
win10系统中如何快速查看wifi密码
win10系统中如何快速查看wifi密码
1020 0
win10系统中如何快速查看wifi密码
|
SQL 关系型数据库 MySQL
mysql批量插入性能优化:executeBatch如何通过rewriteBatchedStatements参数逆袭
mysql批量插入性能优化:executeBatch如何通过rewriteBatchedStatements参数逆袭
2937 0
mysql批量插入性能优化:executeBatch如何通过rewriteBatchedStatements参数逆袭
【NI Multisim 14.0原理图的设计——原理图分类】
一、原理图的设计 根据电路设计的具体要求,可以着手将各个元器件连接起来,以建立并实现电路的实际连通性。这里所说的连接,指的是具有电气意义的连接、即电气连接。 电气连接有两种实现方式,一种是“物理连接”,即直接使用导线将各个元器件连接起来;另一种是“逻辑连接”,即不需要实际的连线操作,而是通过设置网络标号使元器件之间具有电气连接关系。 🍊知识点: • 原理图分类 • 简单电路的设计 • 平坦式电路的设计 二、原理图分类 随着电子技术的发展,所要绘制的电路越来越复杂,在一张图纸上就很难完整地绘制出来,即使绘制出来也因为过于复杂,不利于用户的阅读分析与检测,也容易出错,于是衍生出两种电路设计方
410 0
【NI Multisim 14.0原理图的设计——原理图分类】