摘要评注The Cathedral & The Bazaar
2013年暑期买到这本书,距离其第一版已经有14年之久,而最早发布在互联网上的文章更是早在1997年。在我阅读的时候,很多事迹已经沉积为历史,很多预言已经成为现实。而这本书的意义却丝毫没有因此淡化,反而更加支持了书里的立论。
《大教堂与集市》作者 Eric Raymond, 第一次知道此人还是在天津大学的操作系统原理课程上。大教堂与集市,分别代表两种软件开发模式,大教堂代表着封闭的决策权集中的方式,集市代表开放的,平等透明,共享互动的开源软件开发方式。
本篇博文,主要就一些点展开一些讨论,评价,抒怀。
Windows OS = shockingly inferior (compared to Unix) P15
视窗操作系统,比起Unix或起后继,是“令人震撼的虚弱”。这就是早起骇客么,都想做自己的高精尖自己的hobby,没有人着眼大众。比尔盖茨搞了如此亲民的系统,招惹了如此的评论。
It's no fun to be responsible for fixing bugs in a program you don't understand. P37。
被负责去调试你不理解的程序,真没劲。
Often, the most striking and innovative solution come from realizing that your concept of the problem was wrong.
经常人们发现,最醒目的创造性解决方案,源自于人们意识到了先前对问题的理解是错误的。
Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
所谓设计上的完美境界,不是说当你不能添加新模块的时候,而是当你没有模块可以删减的时候。
Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
一般的工具就是用在该用的地方,而伟大工具的用武之地是你意想不到的。
English, with about 50% redundancy....Nowadays it's more important for a language to be convenient for humans than to be cheap for the computer
英语啊,50%都是废话。。。今天,计算机语言要提供给人便利,而不是机器。
it is absolutely critical that the coordinator be able to recognize good design ideas from others. ( powerful knack of Linus)
项目负责人必须得能识得出啥是好设计,啥是一般的。
A bazaar project coordinator or leader must have good people and communication skills.
一个‘集市型’项目的负责人或者主力,必须有好的人缘和沟通能力。
To make the bazaar model work, it helps enormously if you have at least a little skill at charming people.
要想让集市模型发威,有点魅力能去感化别人能帮大忙~
The personality of your project matters
项目的人格可重要咧~
(The mythical Man-Month) Programer time is not fungible; adding developers to a late project makes it later.
The complexity and communication costs of a project rise with the square of the number of developers, while work done only rises linearly.
(人月神话)程序员的时间不能互换。一个已经延期的项目,加一个码工更会延期。
活是线性的完成,沟通的成本可是平方增长。
Altruism is itself a form of ego satisfaction for the altruist.
利他主义本身就是自我满足的一种形式。
Linux is mostly done by others (other than Linus himself)
Linux的大部分都不是Linus本人写的。Linus的协作领导力对于此计划的印象要大于他的编程水平,但是听说他编程也是顶呱呱没得说。
Linus--connect the selfishness of individual hackers as firmly as possible to difficult ends that can only be achieved by sustained cooperation.
Provided the development coordinator has a communications medium at least as good as the internet, and knows how to lead without COERCION, many heads are inevitably better than one.
项目负责人要能够不用强迫人而去领导人。
5 funtions of software project manager:(传统意义软件项目,不是开源项目经理人)
To define goals and keep everybody pointed in the same direction
To monitor and make sure crucial details don't get skipped
To motivate peopel to do boring but necessary drudgework
To organize the deployment of people for best productivity
To mashal resources needed to sustain the project
All of which seem strangely irrelevant when it comes to open source project.
One of the best-known folk theorems of software engineering is that 60 to 75% of conventional software projects either are never completed or are rejected by their intended users. P60
民间理论表明,60-75%的软件工程,不是失败了就是被打回去了。
Open Source: 开源项目的人多么开心啊
We have fun doing what we do
We're proving not only that we can do better software, but that joy is an ASSET
Enjoyment predicts efficiency. A happy programmer is on e who is neither underutilized nor weighed down with ill-formulated goals and stressful process friction.
Play is the most economically efficient mode of creative work.
Going open will not necessarily save an existing project that suffers from ill-defined goals or spaghetti code or any of the software engineering's other chronic ills.
代码开源,帮不了一个代码设计一团糟或者某参与的程序员长期瞎搞的项目
Cultures are adaptive machines.
In 1997 these common elements were distilled into the Debian Free Software Guidelines, which became the Open Source Definition.
As student of legal history and political philosophy may recognize, the theory of property they imply is virtually identical to the Anglo-American common-law theory of land tenure! ... This thoery, like hacker customs, evolved organically in a context where central authority was weak or nonexist.
John Locke, Lockean theory of property
no single authority is powerful enough to force central allocation of scarce goods.
Human beings have an innate drive to compete for social status; it's wired in by our evolutionary history. Most ways humans have of organizing are adaptations to scarcity and want. Each way carries with it different ways of gaining social status. In command hierarchies, socail status is primarily determined by access to coercive power.
人类对于社会地位的竞争意识,深入骨髓。在古代,社会资源多的,能有权利迫使别人做事的人地位高。
In gift culture, social status is determied not by what you control but by what you give.
在给予文化中,社会地位决定于你贡献的多寡(而不是你能控制力的多寡)。
The measure of competitive success is reputation among one's peers.
Peope for whom it is not a significant motivation never become hackers in the first place, just as people who don't love music never become composers.
没自我动力的人当不了黑客;你见过不爱音乐的人成为作曲家么?
If one is well known for generosity, intelligence, fair dealing, leadership ability, or other good qualities, it becomes much easier to persuade other people that they will gain by association with you.
如果一个人特别慷慨,智慧,公正,善于领导,兼具其他美德,自然别人愿意和你打交道。
The success of a giver's bid for status is delicately dependent on the critical judgement of peers.
同辈评判微妙的形象着个人社会地位的成功与否。
Incentive for all parties to cooperate and avoid forking, because it's hard to know in advance who will be on the losing side and see a lot of their work either disappear entirely or languish in obscurity.
Hackers' behavior: motivated by a desire for peer repute or, as I incautiously labeled it at the time, 'ego satisfaction'
There's a very strict meritocracy and there's a strong ethos that quality should be left to speak for itself.
The best brag is code that "just works".
最好的装逼方式就是说,“老子的代码-搞定”
One reason for humble behavior is that in the open source world, you seldom want to give the impression that a project is 'done'.
One gains more prestige from founding a successful project than from cooperating in an existing one.
Hackers often refer to Microsoft's strategy as "protocal pollution"; they are reacting exactly like farmers watching somone poison the river they water their crops with.
微软做了多少孽啊。
You do not become a hacker by calling yourself a hacker- you become a hacker when other hackers call you a hacker.
你不要以为你以为自己是黑客你就是了,别人叫你黑客的那一瞬间你才开始是。
The members of the Samba group are perceived as heroes because they neutralize a Microsoft effort to lock in whole user population and cordon off a big section of the noonsphere.
Samba项目的成员被认为是反微软英雄,因为他们挫折了微软的技术封锁。
By marking his bounds, adn respecting the bunds of others, a wolf diminishes his chances of being in a fight that could weaken or kill him and make him less reproductively successful.
Some very large projects discard the benevolent dictator model entirely. One way to do this is turn the co-developersinto a voting committee (as with Apache). Another is rotating dictatorship, in which control is occasionally passed from one member to another within a circle of senior co-developers; the Perl developers organize themselves this way.
独裁的运作模式被很多大项目放弃。阿帕奇有个投票小组。还有一种方法是轮回执政(Perl)。
Resolving conflicts is by seniority. Just like many relational database engines use to resolve deadlocks. When two threads are deadlocked over resource, the side with least invested in the current transaction is selected as the deadlock victim and is terminated.
还怎么解决问题?论资历。
In the absense of survial issues, reputation enhancement becomes the driving goal, which encourages sharing of new ideas and research through journals and other media.
Free-market capitalism is the globally optimal way to cooperate for economic efficiency; perhaps, in a similiar way, the reputation-game gift culture is the globally optimal way to cooperate for generating high-quality creative work.
市场经济资本主义,协同提高全局经济效率。在某些意义讲,‘给予文化’是高质高效工作的最优解。
Let people choose their own projects. "To the extent one's experience of being self-determined is limited, one's creativity will be reduced as well"
Zen paradox: if you want the most efficient production, you must give up trying to make programmers produce. handle their subsistence, give them their heads, and forget about deadlines.
禅悖论:想要高效率生产,就要放弃驱使程序员工作。让他们有独立人格,忘掉截止日期。
Use Value VS Sale Value 使用价值和贩卖价值
Go open source:
Apache: cost-sharing,
Cisco: risk-spreading, two programmers' printer program example
Microsoft intended to monopolize the browser market and then use defacto control of HTML and HTTP to drive Netscape out of the server market. 微软IE的事情已经臭名昭著了人尽皆知了。
In mid-march 1999, Apple open-srouced "Darwin", the core of their Mac OS X server operating system.
连苹果都开源内核了不是。
Free the future, sell the present: go open a year after release or if vendor folds.
Free the software, sell the brand: Sun
Free the software, sell the content: stock app
The dramatic growth of the Internet owes much to the fact taht nobody owns TCP/IP; nobody has a proprietary lock on the core Internet protocals.
所以这些技术都是没有一个作者的,而是共有的。奠定了英特网的核心。
The following discriminators push towards open source:
1. Reliability/stability/scalability are critical
2. Correctness of design and implementation canot readily be verified by means other than independent peer review
3. The software is critical to the user's control of his/her business
4. The software establishes or enables a common computing and communciation infrastructure
5. Key methods are part of common engineering knowledge
Example: DOOM. Those features the players wanted --demanding programer-hours that id would ahve preferred to spend on next game.
The full source for Doom is released in late 1997
Sometimes the smartest way to become a bigger frog is to make the pond grow faster.
要让自己长成鲲鹏,让你的周遭变大变好是个不错的办法。
Red Hat's case, the standardization on RPM accross most Linus distributions went a significiant way towards neutralizing advantages Microsoft had previously held in ease of system adminstration on its Windows machines.
红帽也是反微软英雄。
Business Ecology of Open Source:
Developers compete with each other, for the attention of distributors and users, on the quality of their software
Rapid response to market demonds
Lower overhead and increase efficiency through specialization
Internet interprets censorship as damage and routes around it.
The only thing they can sell is a brand/service/support relationship with people who are freely willing to pay for that.
卖的是商业合作关系,是服务,不是产品。
Community stars are increasingly finding they can get paid for what they want to do.
O'Reilly can afford to pay the leaders of Perl and Apache to do their thing because it expects their efforts will enable it to sell more Perl and Apacherelated books and draw more people to its conferences.
原来是书商赞助作者。
Former KGB chief Oleg Kalugin put: For instance, when we stole IBMs in our blueprints, or some other electronic areas which the West made great strides in and we were behind, it would take years to implement the results of our intelligene efforts. By that time, in five or seven years, the West would go forward, and we would have to steal again and again, and we'd fall behind more and more.
所以你说中国人需不需要从零开始创新呢?中国式创新也是无奈之举。
Plagiarism is a trap you want your competitors to fall into.
Linus is an international effort and there is always a jurisdiction in which reverse-engineering will be legal.
我的东西自己拆开看看不行么?
There would come a time when charisma became less effective than broad-based institutional repectability.
将来还是要人尊重人多于人屈从于魅力。
Halloween Documents: outlined Microsoft's analysis of how to combat it by corrupting the open protocals on which open source depends and choking off customer choice.
怪不得业内都骂微软。
Open source model could be usefully applied to other kinds of goods than software. One battle at a time.
开源模式的其他应用?3D打印机如果普及,估计硬件也可以开源做了。
摘要评注The Cathedral & The Bazaar的更多相关文章
- 【SE】Week7 : Silver Bullet & Cathedral and Bazaar & Big Ball of Mud & Waterfall ...
1. Silver Bullet No Silver Bullet: Essence and Accidents of Software Engineering —— 无银弹理论,出自于美国1999年 ...
- The Pragmatic Programmer 摘要评注
这本书与其说是一本编程书,倒不如说是一本教做人的书.很多时候项目的进行依赖于技术以外的因素,比如说沟通,人的品格,人际,处理问题的方法.在未来的一度日子会陆续添加个人认为值得学习的内容.
- The Best Coder and Why? (最牛气的程序员)——精彩!
原文出处我已经找不到了,总之不是原创了,不过,重新看过,挺受震撼的.程序员出身的我们,或许记不住某些算法细节,但记住他们的名字,也许是应该的. MIT BBS上说微软电话面试的一道题就是“Who do ...
- 20本最好的Linux免费书籍
前些天Neo推荐了一个网站有<超过100本的linux免费书籍>,这里,我也向大家推荐20本最好的Linux免费书籍,当然,也是英文版的. 1. Ubuntu Pocket Guide a ...
- Java开发者职业生涯要看的200+本书
作者:老刘链接:https://www.zhihu.com/question/29581524/answer/684872838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 大教堂与集市(The Cathedral and the Bazaar)读书笔记
大教堂与集市The Cathedral and the Bazaar,一本不像计算机方面的计算机书籍 命令式管理,适合和奴隶共事目标共识型管理,适合和自由人共事 心性气层 只要眼多,bug好找 黑客开 ...
- java根据html生成摘要
转自:http://java.freesion.com/article/48772295755/ 开发一个系统,需要用到这个,根据html生成你指定多少位的摘要 package com.chendao ...
- Atitit HTTP 认证机制基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)attilax总结
Atitit HTTP认证机制基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)attilax总结 1.1. 最广泛使用的是基本验证 ( ...
- 2、摘要函数——MD2/MD4/MD5数字签名
摘要是用来防止数据被私自改动的方法,其中用到的函数叫做摘要函数.这些函数的输入可以是任意大小的信息,但是输出是大小固定的摘要.摘要有个重要的特性:如果改变了输入信息的任何内容,即使改变一位,输出也将发 ...
随机推荐
- C++ string到底是什么
C++ string到底是什么? 要回答这个问题,先要了解什么是basic_string.看一下basic_string的声明: template < class charT, //定义字符串中 ...
- Linux休眠,挂起,待机,关机的区别及相关命令
休眠是一种更加省电的模式,它将内存中的数据保存于硬盘中,所有设备都停止工作.当再次使用时需按开关机键,机器将会恢复到您的执行休眠时的状态,而不用再次执行启动操作系统复杂的过程. 待机(挂起)是将当前处 ...
- CSS-浮动篇float
Float是一个强大的属性,但是它也会困扰我们如果我们不知道它的工作原理的话.这篇文章主要介绍float的原理和基本用法. 我们可以看到float在印刷世界的应用-杂志.很多杂志文章都是左边一个图片, ...
- hdu4511小明系列故事——女友的考验(ac自动机+最短路)
链接 预处理出来任意两点的距离,然后可以顺着trie树中的节点走,不能走到不合法的地方,另开一维表示走到了哪里,依次来更新. 注意判断一下起点是不是合法. #include <iostream& ...
- android sdk 更新那些文件
上篇经验,完成了android开发环境的搭建,相信大家也下载了那1.52G,已经下载好了的Adt_bundle. 那么,我们来点击SDK Manager.exe,看看有些什么吧 2 如图所示,为整个目 ...
- Mac 在命令行中获得Root权限
Mac 在命令行中获得Root权限 作者 firedragonpzy 13 九月, 2012 2条评论 本文为firedragonpzy原创,转载务必在明显处注明:转载自[Softeware MyZo ...
- 匿名函数和Lamda
不是本人所写!网络收集 C#中的匿名函数和Lamda是很有意思的东东,那么我们就来介绍一下,这到底是什么玩意,有什么用途了? 打开visual studio 新建一个控制台程序. 我们利用委托来写一个 ...
- yii2-basic后台管理功能开发之一:引入模板
前景:哎没想到用php的yii2框架写了官网……自己选择的框架,跪着也要码完,当年用yii2-basic搭建了官网,原是想偷懒的,没想到还要写后台.... 需求:实现一个可编辑页面图片及新闻内容的后台 ...
- Code Simplicity–The Science of Software Development 书摘
Chapter1 Introduction That is the art and talent involved in programming—reducing complexity to simp ...
- free函数
free函数 原型: void free(void *ptr) 功 能: 释放ptr指向的存储空间.被释放的空间通常被送入可用存储区池,以后可在调用malloc.realloc以及calloc函数来再 ...