编程与软件工程queue.acm.org编辑精选
迷失在集市中的一代
A Generation Lost in the Bazaar
2012 — 2021,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇 ACM Queue 文章借 Eric Raymond 的“大教堂与市集”隐喻,批评现代软件业被市集式的拼装、修补和开源组件文化主导:软件能快速传播,却常缺乏整体设计与工艺标准,作者担心一代程序员只会在混乱中打补丁。文末的讨论围绕“市集是否必然低效、大教堂是否只是怀旧”展开。
为什么经久不衰:它把开源协作的代价与收益写成可反复引用的寓言;十几年后依赖膨胀、供应链拼装和“能跑就行”文化仍在,因此每次回读都能引发争论。
HN 评论精选
作者回应:批评者多未经历大教堂式项目;市集可以存在,但人人拼装造车并不理性,且缺乏追求更好的抱负。
我先做几点总体观察。第一,如果大家能有个非正式约定:1990年前受雇于IT岗位的人在帖子里标注一下,会很有帮助;我想这会显示出态度上的明显分歧。第二,很明显,你们很多人从未接近过“大教堂”比喻所说的那种软件项目,只是把听到的、感受到的或特别讨厌的东西投射到这个词上。鉴于有一整本书定义了这个概念(我相信在ESR主页上有在线版,何不去读一读?),这不太有帮助。第三,我不是“非友即敌”的人。市集不会消失,但让每个需要交通的人都去买零件自己造车,是荒唐的。第四,与第二点相关:你们很多人似乎没有把东西做得更好的实际抱负;我猜这就是在市集里长大、从未体验过大教堂的结果。我同情你们。
phkamp查看英文原文
OK, I'll make a couple of general observations here. First: It would be a big help for this discussion, if we could have the informal convention that people who were employed in an IT job before 1990 marked their post. I think it would show a quite clear divergence of attitude. Second: It's very obivious, that a lot of you have never been anywhere near the kind of software project posited in the "cathedral" meme, instead you project into the word whatever you have heard or feel or particularly hate. That's not very helpful, given that there is an entire book defining the concept (I belive it's available online on ESR's homepage, how about you read it ?) Third: No, I'm not of the "either you are with us, or you are against us" persuation. The bazaar is here to stay, but having everybody in need of transportation buy the necessary spareparts to build a car is insane. Fourth: Related to point two really: A lot of you seem to have little actual ambition of making things better, I guess that is what happens if you grow up in a bazaar and never even experience a cathedral. I pity you.
反驳:现实资源与快速变化的需求使完美设计难以维持,开源市集创造的价值不应被贬低。
这篇文章读起来像一位被当前进步速度甩在后面的老手,认为问题在于其他人都做错了。他大概说得对:很多软件可以设计得更好;但我认为这并非最重要。如今我们需要大量软件,却没有资源按Kamp的标准去构建。而且我们已经知道需求变化太快,他漂亮的设计很快会被扭曲成他讨厌的补丁堆。他指出自己工作机器上运行软件编译要多久——Windows机器上的软件编译要多久?(或他心目中该事业的标准承担者)。他还攻击开源软件。事实是,我们有大量免费开源软件;有些设计和可用性有缺陷,但它们让我们解决许多问题(需要时还能查看/修改)。我不认为所有软件都必须“自由”,但自由软件确实让我们更富有。我很难把市集创造的这些价值看作低于缓慢、集中、大 upfront 设计开发。
chwahoo查看英文原文
This article reads like an old timer feeling left behind by the current rate of progress who thinks that the problem is really that the rest of the world is doing it all wrong. He's probably right that lots of software could be designed better, but I think he's wrong that that's of paramount importance. We need lots of software these days and we simply don't have the resources to built it to Kamp's standards. Also, we've learned that our requirements change so fast that his beautiful design would quickly be twisted into the pile of hacks that he hates. He notes how long it takes to compile the software that runs on his work machine---how long would it take to compile the software on a windows machine? (Or whatever he would claim is the standard-bearer of his cause). He also attacks open-source software. The truth is, we have an amazing amount of free and open source software available. Some of it may be flawed in design or usability, but it enables us to solve so many problems (and look at/modify the software when needed). I don't think that all software needs to be "free", but I do think free software has made us all much richer. I have a hard time seeing all this value that the Bazaar has created as inferior to slow-moving, centralized, big, up-front design development.
用城市类比:不完美、多样、灵活的市集式系统反而成功;过度设计会僵化。
建筑师也不再建造大教堂了,大多数软件架构师也一样。但看看他们建成了什么:极其多样的建筑,各种形状大小,共同组成一个不完美但高效的系统。其成功无疑部分归因于灵活性和不完美,以及它们不再是过度工程化、僵硬的石头巨兽。如果你太努力围绕任何东西设计 rigid structure,它可能反咬你。这个看似无序、随意的建筑集合之所以能构成运转良好的都市,部分原因在于多样性和对变化/进步的韧性。如果你试图过度工程化如此复杂的东西,可能得到平壤而不是纽约。相反,我们有一个竞争性的库和选项生态系统,好的理论上会胜出。更好的社区和价值观传播让这个过程更有效,就像更大经济中一样。尽管复杂,这个过程运行得惊人地好。Kamp解释了很多,但唯一没算到的是当前模式的巨大成功。不过他用了一个非常贴切的比喻。大教堂不再;它们作为社会中心的旧位置必须由一系列神话和谎言来解释,把理想置于现实之上。繁荣的市集……
calinet6查看英文原文
Architects don't build cathedrals anymore, either. Neither do most software architects. Yet, look what they have built: an incredibly diverse collection of structures of all shapes and sizes, all working together to form an imperfect yet efficient system. Surely its success is due in part to its flexibility and imperfection, and the fact that they are no longer over-engineered and inflexible behemoths made from stone. If you try too hard to design a rigid structure around anything, it can come back and bite you in the ass. Part of the reason why this seemingly disorganized and haphazard collection of buildings makes a working and thriving metropolis is because of its diversity and resilience to change and progress. If you attempt to over-engineer something of such complexity, you might just end up with Pyongyang instead of New York. Instead, we have a competing ecosystem of libraries and options with the good ones theoretically rising to the top. Better communities and communication of these values make this process work even better, just as in the greater economy. For all its complexity, this process works surprisingly well. For all the explaining Kamp did in this article, the one thing he failed to account for was the resounding success of the current model. He did use a surprisingly apt metaphor, however. Cathedrals are no more; their old place as the center of society had to be explained by a series of myths and lies that placed ideals above reality. The thriving Bazaar easily replaced them at the center of any thriving modern city, based on the simple truth that the dynamic edge of reality was ever-changing, and that quality based on that reality would indeed be more successful. Could it be better? Of course. But it is reality and truth that will move us forward—not mythology. Good riddance to cathedrals.
从今日生产力看,市集式生态带来的免费工具和规模创新远超大教堂,批评随时间减弱。
然而……我认为这种批评随时间推移越来越弱。今天Kamp能免费获得的生产力,保守估计是1999年的两到三倍。数据库、Web框架、规模化 know-how、IDE、托管平台,名单还很长。他伤感地回想一个时代:像Genuity Black Rocket这样的代码库要10万美元许可费,跑在每月3万美元的Sun服务器上。说真的。语言更快、开发时间更短、芯片快得多。代码可以免费推到GitHub上供折腾和创新。再加上他估计计算行业人数多了100倍,组合起来就是创造力、垃圾、迷人技术和一切中间物的狂欢。市集很乱,但我不知道有哪个可靠批评证明大教堂在效率倍数上更高——那种效率来自大批自利、自驱的程序员。
vessenes查看英文原文
And yet..I think this critique gets less strong as time goes on. The amount of productivity available to Mr. Kamp for free today is conservatively double or triple that available in 1999. Databases, web frameworks, scale know-how, IDEs, hosting platforms, the list goes on. He harkens back, sadly, to an era in which codebases like Genuity Black Rocket cost $100k in licensing, and ran on $30k/month Sun servers. Seriously. Languages are faster, development times are shorter, and chips are WAY faster. And, code can be pushed out for tinkering and innovation onto github for free. Combine that with his estimate that we have 100x more people in computing, and the combination is a riot of creativity, crap, fascinating tech and everything in between. The bazaar is messy, but I'm not aware of any solid critiques which show cathedrals are more efficient at the multiples-of-efficiency kind of gains we get from legions of self-interested, self-motivated coders.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选