我们需要一次解决所有问题

2016 年 2 月 25 日 CTO俱乐部 卢鸫翔

访wiki创造者Ward Cunningham


在互联网上得到正确答案的最好方式,不是提问,而是写个错答案。

——Cunningham定律



xkcd 386: 使命召唤

Ward Cunningham因创造wiki而闻名,但wiki诞生后的第二年,有件事就令他忧心忡忡。


从1995年至今,C2(c2.com,第一个wiki)已创建了数万页面,都储存在Cunningham自己的服务器。“页面完全归我所有,这种感觉很糟。”wiki的核心理念本是“任何人都能新添或编辑页面”,但页面却不属于作者,而是由服务器的所有者掌控。Cunningham痛恨这种“中央控制”——服务器崩溃,数年的积累便可能付诸东流,还意味着贡献者需服从旁人的编辑规则。虽然人们能搭建自己的wiki站点,但访问者寥寥,因为大部分读者只汇集在几个知名站点。


Cunningham将自己的新创造称为Federated Wiki,在他的设想中,人人都该拥有自己的wiki,并结成联盟。若想编辑别人的页面,只需点击“Fork”——像GitHub那样,将页面复制到自己的wiki并开始编辑,而原始页面则留下了你的线索,所有人都能看到,而原始页面拥有者,能决定是否将合并修改——Wikipedia常迫使编辑者放弃自己的观点,而Federated Wiki则能让异见共存,这些观点又相互连接。


Smallest Federated Wiki


搭建自己的wiki可能会令许多人望而却步——人们已经习惯将内容发布在Facebook、Tumblr这些有人打理的平台,不过Cunningham认为“虽然简化是好事,但不该以令用户无助为代价”。他不是空想家,也理解如何简化,自己动手实现了Smallest Federated Wiki(SFW)——一个用于展示Federated Wiki理念的简化版,既可一个命令在本地电脑安装,也可以一键部署于AWS。他说,其实Facebook已经证明,其实每个人都想拥有属于自己的页面和信息流。


SFW站点相互连接(2015年12月状态)


Federated Wiki的另一创新之处是从程序设计中借用了“重构”的概念。与文字“编辑”不同,Cunningham说,“编辑”意味着作者心中有预想的读者,了解他们的期望,据此做出修改——重构则是对信息大跨度的重新组合,为内容赋予新的意义,现有编辑软件已不能胜任。在SFW中,段落能在不同服务器间轻松拖动、释放,重新组合,并通过联盟机制在网络分享。SFW也比从前的wiki更时尚、易用,例如图片和视频都能拖放置入,通过插件支持Markdown语法、MathJax公式甚至通过DSL实现任何你想拥有的功能。


Cunningham说:“wiki原型完成五年后,Wikipedia诞生了,也许到2020年你会看到Federated Wiki的硕果。”


当前研究领域


Ward:我将自己工作的领域称为“仪器度量学”。刚工作那会儿,我将计算机系统思维应用在理解电子仪表上。多年后,我以相同的思考方式解读软件系统。作为工程师和科学家,我总为通过“度量”来理解事物而着迷。哪些参数可被度量?哪些易于度量?如何解读,结果又如何改变我们的下一步决定?


近来,我参与开发和测试用于度量软件的“仪器”,加入的多个团队都以此为目标。从现实系统中收获的数据,总令我愉悦,我们通过这些数据,测试新“仪器”。通过编写程序创建数据集,我对软件系统,以及用于观察这些系统仪器,理解都更深入。


我专注理解软件系统,特别是用来“理解其他软件系统”的系统。我所供职的公司(New Relic)无论自身,还是其客户规模都在快速增长。许多工作,都从理解这种快速增长对软件有何种影响开始。


Cunningham也是“极限编程”和“设计模式”的先行者——wiki最初用于讨论模式语言的


程序生涯与感悟



Ward:我尽力记录自己编写过的每段程序(从1964年高中开始),职业生涯轨迹可以划分为以下几个阶段。


驾驭掌握:在学生时代,我编写的大多数程序与“抽象”和表现这些“抽象”有关。直到我将程序展示给朋友,它们才变得完整。


分享知识:我离开研究机构,转而在企业工作。在企业中有诸多束缚,也带来不同期待。不过在束缚之外仍有创造的空间。


位居要职:我持续使用不同语言编程,程序设计从未如此简便,但人们却总能找到办法,让编程变得困难。渐起的声名为我敞开了许多扇大门,而我选择的媒介——编程,却常常令邀请我步入大门的人深感困惑。


我注意到,当人们意识到一处大错,会奋起而战;但倘若是多处小错,却无动于衷——觉得生活似乎本就如此。而这些小错,往往并不能逐个排除,这样做不但无济于事,甚至会令事情更糟。人们对编程的理解也与此相似,小问题盘根错节,没有一个能得到修正。


书籍与启发


Ward:对我影响最大的著作,是那些定义了一个空间,并向我们展示作为工程师,或者只是普通人,如何在其中创造的书。这些著作“颠覆”,而非仅仅“提升”了我们对于实践的理解。


Dijkstra的《A Discipline of Programming》向我展示了如何像推导数学证明那样推导程序,由此可以透彻地理解程序,并确定它能正确运行。虽然我也能通过其他机制确保达到相同效果,但这本书讲的是最根本的思维处理过程。


Carver Mead与Lynn Conway合著的《Introduction to VLSI Systems》这本书将计算机设计归至晶体管实现层面,提供了一套易于掌握,又有无限创造可能的法则。虽然受成本制约,某些特定风格的设计眼下并不经济,但其物理本质不变,芯片依旧有效。


George Lakoff与Mark Johnson合著的《Metaphors We Live By》,这本书所介绍的认知科学,我发现可以直接应用在理解“对象”上,阅读这本书帮助我更地合理的使用它们。


还有一些著作,对我的影响虽不像上面几本那样深远,但在创造wiki时,它们讲述的概念一直萦绕在我脑海中。


Leonard Koren的《Wabi-Sabi for Artists, Designers, Poets & Philosophers》向我展示了无常中的恒久魅力。


Edwin Schlossberg的《Interactive Excellence》则让我对“社区”与“定义品质”有了清晰认识。


版权声明:本文为《程序员》原创文章,未经允许不得转载,订阅2016年程序员链接 http://dingyue.programmer.com.cn




SDCC 2016 数据库&架构技术峰会(上海站)将于3月18日-19日举行,讲师和议题已全部确认。目前6折限时报名,团购享有更多优惠!详情请戳「阅读原文」


登录查看更多
0

相关内容

Wiki ,中文名为“围纪”(注:不是“维基”,这是“维基媒体基金会”的注冊商标),是一种在网络上开放且可供多人协同创作的超文本系统,由沃德·坎宁安于 1995 年首先开发。沃德·坎宁安将 Wiki 定义为「一种允许一群用户利用简单的描述来创建和连接一组网页的社会计算系统」。
最新《深度多模态数据分析》综述论文,26页pdf
专知会员服务
298+阅读 · 2020年6月16日
华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
125+阅读 · 2020年5月22日
【论文扩展】欧洲语言网格:概述
专知会员服务
6+阅读 · 2020年3月31日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
145+阅读 · 2019年12月28日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
如果聊天机器人想要成功,还需要这个……
推荐系统这事,难不?难在哪里?
聊聊架构
7+阅读 · 2018年2月26日
为什么聊天机器人表现不尽如人意
AI前线
5+阅读 · 2018年1月28日
2018年,人工智能领域仍然有五大难题需要解决
DeepTech深科技
5+阅读 · 2017年12月27日
一个框架解决几乎所有机器学习问题
北京思腾合力科技有限公司
5+阅读 · 2017年10月13日
我们为什么需要一个时序数据库?
大数据杂谈
3+阅读 · 2017年7月6日
Conceptualize and Infer User Needs in E-commerce
Arxiv
3+阅读 · 2019年10月8日
Signed Graph Attention Networks
Arxiv
7+阅读 · 2019年9月5日
Arxiv
3+阅读 · 2018年12月19日
Arxiv
4+阅读 · 2018年11月7日
Arxiv
10+阅读 · 2018年2月4日
VIP会员
相关VIP内容
最新《深度多模态数据分析》综述论文,26页pdf
专知会员服务
298+阅读 · 2020年6月16日
华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
125+阅读 · 2020年5月22日
【论文扩展】欧洲语言网格:概述
专知会员服务
6+阅读 · 2020年3月31日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
145+阅读 · 2019年12月28日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
如果聊天机器人想要成功,还需要这个……
推荐系统这事,难不?难在哪里?
聊聊架构
7+阅读 · 2018年2月26日
为什么聊天机器人表现不尽如人意
AI前线
5+阅读 · 2018年1月28日
2018年,人工智能领域仍然有五大难题需要解决
DeepTech深科技
5+阅读 · 2017年12月27日
一个框架解决几乎所有机器学习问题
北京思腾合力科技有限公司
5+阅读 · 2017年10月13日
我们为什么需要一个时序数据库?
大数据杂谈
3+阅读 · 2017年7月6日
Top
微信扫码咨询专知VIP会员