V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
594duck
V2EX  ›  分享发现

2020 年再看“大教堂与集市”再思考"开源与商业软件"

  •  
  •   594duck · 2020-07-07 14:33:19 +08:00 · 2581 次点击
    这是一个创建于 1635 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大教堂的建筑故事

    • 《大教堂的建筑故事》

    可以进入下面的链接了解一下教堂的建造 https://k.sina.com.cn/article_5044281310_12ca99fde02000t6ru.html

    • 在写这篇文章前,我要先引用一个孔子的故事”子贡赎人”

    鲁国之法,鲁人为人臣妾于诸侯,有能赎之者,取其金于府。子贡赎鲁人于诸侯,来而让,不取其金。孔子曰:“赐失之矣。自今以往,鲁人不赎人矣。取其金则无损于行,不取其金则不复赎人矣。” 子路拯溺者,其人拜之以牛,子路受之。孔子曰:”鲁人必拯溺者矣。”孔子见之以细,观化远也

    有感于最近看了 Linus 说 Linux 后继困难,再看到国内轰轰烈烈的开始的国产可信替代化工程,和 MATLAB 的封锁事件,以及之前 2 月份,我尿坛分享的一本书《大教堂的建筑故事》( Cathedral: The Story of Its Construction,David Macaulay 著)和一部剧《圣殿春秋》。我想来谈一下今天我的看法,即“大教堂与市集”。我们到底怎么来看待开源软件与商业软件。

    • 《大教堂与集市》

    世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到有,从小到大;还有一种是大教堂,几代人呕心沥血,几十年才能建成,投入使用。 当你新建一座建筑时,你可以采用集市的模式,也可以采用大教堂的模式。一般来说,集市的特点是开放式建设、成本低、周期短、品质平庸;大教堂的特点是封闭式建设、成本高、周期长、品质优异。 Eric Raymond 就问了一个问题,有没有可能用修建集市的方式,造出一所大教堂?

    曾几何时,我们都觉得开源就是力量,世界必然会被开源改变,商业公司恶臭不堪,我们都是不食烟火的理想主义者。随着年龄的增长,我开始反省当年的这些言论,并且有了新的看法。

    开源的集市终是难做成大教堂

    Linus 最近说自己年纪大了,能够接班的人不多,对 Linux 的未来有担忧。其实这就是松散的集市带来的问题。因为松散的集市是自发组织的,他们在组织的过程中慢慢的来摸索搭建管理方法,并且通过类似街头斗殴的方式来达到最终的管理平衡。

    而大教堂则不同,那些伟大的教堂搭建动辄要几十年到一百多年,在这个过程开始前,他们必须要做好所有精确的计算,包括图纸的设计,材料的消耗,人员的更叠,各方的支持,以及资金的来源。他们必须要有严格的分工,和完善的管理能力,要聘用最好的工程师家族,因为这个工程将消耗至少二代人的心血才有可能完成。

    所以如何持续管理就是摆在大教堂建设者前非常严重的问题,他们会使用到今天看来都不落后的管理学来挑选和培养人才,并且不停的将一切步骤尽可能的标准化,将每一个岗位的选人和培养标准化,通过不断的标准化使得这个横跨几十年的工程能够用最佳状态完成。

    而松散的集市也会在伴随着教堂的搭建一直存在大教堂的周围,并且随着大教堂的慢慢耸立,集市也不停的扩张。但最终宏伟的大教堂竖立在那里的时候,集市也成片的形成。只不过集市里的人换了一茬又一茬,他们还是平平的铺在那里。

    • MATLAB 引申说开去

    最近新闻说到 MATLAB 的事件,很多国内软件开发者表示 ,MATLAB 就是屎,性能极差,人机不好,架构落后,并撰文众多的表示用 Python 或者 GO 或者其它 xxx 都可以做出一个比 MATLAB 好一万倍的软件,来支持打倒美帝。

    MATLAB 就像是大教堂,他从诞生至今已经几十年了,他确实有各种缺点,但是这几十年的商业过程里,他累积的则是大量的行业经验算法和数据包,这是他最为宝贵的材料。而国产软件固然可以轻松的用现代化的软件架构在程序层面上赶超 MATLAB,可是程序仅仅是最基础的一个层面,那些行业算法包和数据包从哪里来?这就成了一个难题。使用开源的力量让各行业来贡献算法包和数据包?不同于开源软件,行业算法和数据都是各行业赖以生存的经验,想要开源等同自杀。所以这个美好的想法就越来越留于纸面,最近看到前东家也出了 GO+,但是还是不解决行业数据包的问题。

    顺便普及一个概念,行业算法和数据有多重要。一般搞互联网软件开发的人是不知道传统行业一个经验数据的获得有多大的代价。

    以二战的时候战列舰用装甲钢(渗炭钢)为例子,渗炭钢的原理所有行业的人都知道,怎么制造的工艺,所有行业的人也知道,因为论文是公开发布的。但是怎么渗炭,渗多久的炭,渗炭温度是多少,渗炭后续操作是什么,最佳的硬度是什么样的关系。对不起这些就是行业算法和经验数据了,这些东西是不会公开的。以二战为例,当时日本就是把做好的各种比例装甲钢板用大和主炮一炮一炮的去轰,轰出来的最佳匹配数据。轰一次多少钱呢,反正是天价。这部份数据永远不会出现并被开源,因为直到今天这些数据都是无比宝贵的,因为你不可能有 460 主炮去研究这个了。(顺便在这里说一下,二战的战列舰护甲是今天所有反舰导弹都打不穿的)

    诚然在波澜壮阔的 20,21 世纪,我们的开源软件业发展蓬勃,同时受益于开源软件的影响我们很多人和很多企业都靠这个有了饭吃。但是伴随着软件行业越来越成熟 ,开源软件的局限性也越来越会被体现。毕竟松散的组织架构在大型商业软件面前是没有办法对抗的。

    以设计软件为例,AutoCAD,Adobe 这二家公司的软件至今都没有成熟好用的开源替代品出现 。很多人会问这是为什么,也有很多人会用各种例子来证明,但是在这里我说一个我的观点,信息代价。

    普通软件调试和发布一次只需要 1 分钱(按下 F8 或刷新一下 WEB 页面,用掉的电费) 电子硬件系统调试一次,1 元钱(插线插元件,烧录程序,启动) 工业软件调试一次 100 元钱(软件商业版本均滩价格) 工业软件上生产线调试一次 1000 元钱(随便开一下测试生产线的价格,比如模具) 对你会发现,越接近实体,就越昂贵,只有完全脱离实体的东西才便宜。但是正因为实体所以他的价值护城河就特别高。

    Adobe 和 AutoCAD 这二家公司的产品在研发阶段需要大量大量顶尖的软件人才和行业人才参与。而行业人才的价格天生就不便宜,他们也更尊重个人价值。试问开源软件如何获得这种能够建筑大教学的行业人才来参与项目,所以市集的开源软件就一直只能平铺的展开。在专业软件领域,开源软件就很难去和商业软件竞争了。

    曾经有人在社区里问“为什么找美工画个 LOGO 要收钱,现在不是都开源么,美工怎么这么拽”

    于是我也用我的信息代价来回复他。

    • 任何一个美工都有至少 10 年的画画经验,按照十年前一个小朋友学画画,请老师,买耗材,基本需要 1 万元 /年的开销来算,10 年至少要 10 万元。这些费用是额外的,在正常学习费用之外所要花掉的钱
    • 你学开发花过多少钱,买计算机,算 10 年 3 万了,学习就只有电费和书的成本了。 试问你小时候花了 10 万元学会的东西,今天有人叫你用你的经验免费做个 LOGO 你肯么。 你就是叫学 EE 的给你免费修个电子产品,人家都要皱眉头呢,EE 读书的时候比你要多买一堆电烙铁,示波器呢。 于是这又引出另一个话题,为什么互联网行业总是热爱 AI,热爱取代这取代那,因为他们总是获得不了自己想要的资源 。这里不引申来讲了。

    所以虽然今天我们的开源软件确实非常繁华,但是商业软件从末黯淡过,并且因为我们(指我们自己)长期缺失了商业软件,导致今天很多问题突然就被放大了,甚至部份公司借用这个问题开始发不义之财了。

    比如操作系统,比如文字处理,比如 CAD 和图像处理工具,比如行业软件系统。按照道理我们这个 13 亿人的国家,有着无比旺胜的经济和制造业活力的国家,以工业产值来养这些软件企业是没有任何问题的,可是为什么我们没有呢。

    答案是免费带来的恶果。

    曾几何时,90 年代到 200x 年左右的时间,国产软件还是有着自己的一片天地,虽然过的不好,但是还是在努力发展,也有企业买单。但是在此之后,在互联网大潮和开源影响的碾压下,国产软件就集体崩溃了,传统软件行业因为没有钱,也招不到好的人才,人才全涌向了互联网做外卖,做短视频,做电商去了。导致这一块快速空缺,我们的根也就没有了。而今天国家开始用集团采购扶持国产软件的时候,又看到了非常多的黑暗面。

    但是这又是正常的,试想一下在资本之下,一家公司从 0 开始动辄研发 5 年的软件,谁会去投?所以这一个怪圈之下我们的软件怎么发展,没有人知道。

    但是就像这个世界,即有光明也有黑暗,有教堂也有市集。我们的下一个 20 年应该是回到商业软件的市场中去了。

    我们现在回头来看,那些中大型的商业软件行业,从末被开源软件征服过,他们都在自己的领域里顺风顺水,同时他们的开发人员也有着优渥的生活待遇。这些商业软件遵照着传统的运营规范,他们中的大多数可以成为一个屹立不倒的教堂。

    而开源的市集也在大教堂的边上,成片成片的一起。

    20 条回复    2020-07-09 18:01:21 +08:00
    swulling
        1
    swulling  
       2020-07-07 18:51:56 +08:00 via iPhone
    现在的所谓国产可控,不就是拿开源改改么。
    hakim
        2
    hakim  
       2020-07-07 20:15:50 +08:00 via iPhone
    等到商业软件一统天下,我们是不是要生活在资本的阴影之下了?我觉得程序员大都拥护开源,集市虽然没有教堂辉煌,但生命力足够顽强
    594duck
        3
    594duck  
    OP
       2020-07-07 21:12:43 +08:00
    @hakim 能量是守恒的,廉价的永远是最贵的。
    prenwang
        4
    prenwang  
       2020-07-07 21:18:53 +08:00
    没有开源, 就只能开荒
    blless
        5
    blless  
       2020-07-07 21:23:20 +08:00 via Android   ❤️ 3
    以前蛮喜欢看这种文章,现在就没啥兴趣了。大体都是观察某个现象,得出某个结论,映射现实,畅谈一下未来 /灌输一点焦虑。
    从现象到结论确实需要一定的思考,但是现在很多内容纯粹为了影射现实强行联想。
    从现象到结论到现实到未来的文章太多了,但是这种文章呢仔细看看,全是作者主观判断,推理也被作者自己阅历所限。也不像论文般详实数据建模与推测,也无相关论证和引用。读之有味,弃之不可惜。大概也是鸡肋的一种吧。
    blindie
        6
    blindie  
       2020-07-07 21:27:17 +08:00 via Android
    “设计软件没有好用开源替代” blender: ?
    zhizhongzhiwai
        7
    zhizhongzhiwai  
       2020-07-07 21:33:38 +08:00
    你这书也是白读了
    594duck
        8
    594duck  
    OP
       2020-07-07 21:43:00 +08:00 via iPhone
    @zhizhongzhiwai 恶意回复么?请说出你指责我的论据
    594duck
        9
    594duck  
    OP
       2020-07-07 21:59:02 +08:00 via iPhone
    @blindie 你有见过设计师不用 adobe,工程不用 autocad 的么?
    Jirajine
        10
    Jirajine  
       2020-07-07 22:04:21 +08:00 via Android   ❤️ 2
    不要拿开源和国产相提并论,开源是为了给你自由;国产是为了让你“可控”,会让你失去自由。
    还有现在被所谓“卡脖子”的都是不重要的东西,盗版、抄袭、甚至放弃不用都没什么大不了的,真正 vital 的东西,像 Google,国家早就确保“可控”了。因为如果没有百度所有人都能用 Google 的后果是相当严重的。
    反过来,当某个东西真正成熟“自主可控”了之后,你觉得你还会被允许使用“不可控”的国外产品么?看看 gfwlist,这样的事情已经发生不知多少次了。
    594duck
        11
    594duck  
    OP
       2020-07-08 06:40:31 +08:00   ❤️ 1
    @Jirajine 我的这篇感想主要是讨论商业软件的教堂,开源软件能不能企及。其实是不能的。真的一点都企及不了。

    拿开源软件的翘楚,数据库来说,MYSQL 好用么,好用,但是 MYSQL 和 Microsoft sqlserver 比好用以,Sqlserver 除了要钱不好外,其它都是全方面吊打 MYSQL 的。对到 2020 年的今天,MSSQL 都是吊打 MYSQL 的。

    那 MYSQL 能不能像 MSSQL 一样好,可以的,MYSQL 以前是有企业版本的,以今天中国互联网使用 MYSQL 的体量的 1/100 给 MYSQL 钱,MYSQL 都可以去做好自己。但是有人给么?没有,所以他就尴尬的被收购,被出走。
    因为他没有办法自循环好好成长了。
    no1xsyzy
        12
    no1xsyzy  
       2020-07-08 13:56:17 +08:00
    @blless #5 食之有味,弃之也不可惜,我懂了,这是调料包。
    no1xsyzy
        13
    no1xsyzy  
       2020-07-08 13:57:16 +08:00
    子贡赎人出自左传,据说是拿来黑孔子的捏造故事……
    no1xsyzy
        14
    no1xsyzy  
       2020-07-08 14:09:29 +08:00
    @594duck #11 别吹 SQL Server 了吧,你吹吹 Oracle 我还挺你,SQL Server 真的不好用,界面是怎么恶心人怎么来,我碰过两次再也不想碰了。
    但反过来,开源软件的集市,商业软件能不能企及?也是不能的。
    我觉得你根本没读过《大教堂与集市》,看了点评论就跑来说。ESR 书里说得很清楚了,二者相互不太可能取代,也不应指望取代。
    azhi2007
        15
    azhi2007  
       2020-07-08 16:43:17 +08:00   ❤️ 1
    中国的互联网公司拿着免费开源的东西赚了好多钱,你说这些互联网大佬们不臊的慌吗,可从来没听他们给开源界贡献了多少架构和代码
    johnchshen
        16
    johnchshen  
       2020-07-08 20:19:15 +08:00 via Android
    就操作系统来说,开源早就胜利了,移动端已经没传统商业软件什么事了,数据中心、云也没传统商业软件什么事了。都是吸收整合开源代码为基础。

    另外 matlab 也不是传统商业软件模式,也不是大教堂模式开发产物。吸收了很多业内成果。
    594duck
        17
    594duck  
    OP
       2020-07-08 21:56:38 +08:00 via iPhone
    @johnchshen 你的胜利是指互联网,你把互联网三个字去掉看看。 再把中国互联网在去掉看看。

    有价值的系统是跑在有价值的系统上的。

    怎么理解看你自己了
    encro
        18
    encro  
       2020-07-09 17:51:40 +08:00
    #17

    1,几乎不可理喻,为什么要去掉互联网,当下计算机离开互联网还能干什么?

    2,大部分商业软件软件都跑在开源的 linux 上,大部分商业应用跑在开源的 Android 上。

    3,几乎所有流行的编程语言都是开放的,为什么?

    4,古代父传子模式和现代学校教育模式,那个更利于人类整体文明提高?

    5,开源和商业并不矛盾,RedHad 、Sun 、Android 、MongoDB,国内 TiDB 、微擎等等

    6,开源是一种工作和协同方式,一种商业运作方式,甚至可以是一个爱好。

    这种协同方式可以利用更多人的力量,让云计算,severless,github 变为可能,如果要迅速完善一个软件,除了开源和开放,有更好的合作方式?

    这种商业模式让 Android 迅速崛起、让 Orache 不得不化高价收购 Mysql 、让微软也要收购 Github 开发 vscode,

    这个爱好诞生了 ruby gem, go package , python pip, node npm 这样的工具,让开发者节省了多少开发时间?

    7,未来是合作型社会,需要多玩互惠游戏,零和游戏

    8,开源的集市终是难做成大教堂 -- 美国国会是现在的世界权利中心而不是某个封建王朝

    9,那些中大型的商业软件行业,从末被开源软件征服过,他们都在自己的领域里顺风顺水 --- 比比用友和淘宝的市值吧,现在做软件的有几个是靠卖软件赚钱的?靠卖软件赚钱的企业越来越少。Axure 发展多少年可能不如 figma 发展两年。因为 figma 比 Axure 更加开放。

    10,Mysql 被 MSSQL 吊打? 2019 调查显示,MySQL 以 38.9%的使用率占据主导地位。PostgreSQL 占 17.4%,Oracle 仅有 1.8%,而 CouchDB,Berkeley DB 、SQLServer 、Redshift 、Firebase 、Elasticsearch 和 InfluxDB 用户以及其他类别总和仅为 2.4%。不知道 38%的 Mysql 是如何被可能 1%不到的 SQLServer 吊打的?

    11,为什么找美工需要花钱?因为现在人工智能还做不到啊,而且人工智能也是需要钱的。而不是培训美工需要花多少钱,社会物质足够发达,通常拥有某样东西的人越多,人均拥有成本越低,比如汽车、手机。
    encro
        19
    encro  
       2020-07-09 17:55:48 +08:00
    7,未来是合作型社会,需要多玩互惠游戏,少玩零和游戏。

    推荐阅读:

    https://github.com/taosue/how-to-get-rich-without-getting-lucky/blob/master/README.md
    encro
        20
    encro  
       2020-07-09 18:01:21 +08:00
    通常闭源软件获得成功的原因包含:服务( MongoDB 、Redhat )+进入实际较早(金蝶、用友、Oracle )+切换成本较高( iOS )+ 没有有实力的开源竞争者(时间没到或者不赚钱或者行业相关性太高)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2745 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:34 · PVG 22:34 · LAX 06:34 · JFK 09:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.