REPORT
CEPATO Technical Note2026.11.02

程序员为什么为编程语言发起圣战?技术族群主义的结构分析

每一场编程语言圣战、发行版之争、框架对立的背后,争的从来不是技术本身。本文提出"技术族群主义"这一概念,从器我融合、动机性推理、族群防御机制三个层面,解析开发者社区身份认同的完整结构

Chongxi
Author:Chongxi
steam: —·spotify: —
ANALYSIS

每隔一段时间,某个开发者论坛就会燃起一场战争

Python 和 JavaScript 谁更烂,Rust 是否会取代 C++,Arch Linux 用户是否比 Ubuntu 用户更懂 Linux,Vim 和 Emacs 哪个才是编辑器的终点。争论者烈,参与者众,持续时间往往远超任何有意义的技术讨论。帖子动辄数百楼,措辞越来越激烈,最终总是以互相拉黑或版主锁帖收场,然后在下一个帖子里重新开始

旁观者很容易得出结论:这些人在浪费时间

但这个结论本身就是错的,他们不在讨论技术,技术只是载体。他们在做一件更古老的事:捍卫身份

我把这种现象叫做技术族群主义 (Techno-Tribalism)

它不是技术讨论的失控状态,而是一种稳定运行的社会结构:以技术选择为图腾,以工具认同为边界,形成具有强烈内外群体意识的族群,并在族群受到威胁时启动系统性的防御机制。理解它,需要从头说起


先做一个思想实验。

假设有人问你:Python 和 Go,哪个更好?

一个有意义的回答,起码需要知道以下信息:这是什么规模的系统?团队有多少人,平均水平如何?性能要求是什么量级?这个系统需要维护多少年,由谁来维护?

没有这些信息,“Python 和 Go 哪个更好”是一个无法回答的问题,因为问题本身是残缺的。脱离场景约束谈语言优劣,就像脱离路况和驾驶目的比较两辆车,比的是说话人心里的图腾

但技术社区里绝大多数的语言争论,从一开始就抹掉了所有约束条件,直接进入”哪个更好”的擂台

这个动作是技术族群主义运作的前提条件

因为一旦引入具体场景,讨论就会变得有条件,结论就会变得相对,而相对的结论无法支撑身份认同。身份认同需要的是无条件的正确:我的选择是好的,在一切情况下都是好的。所以争论必须在真空中进行。在真空中,胜负才能是纯粹的,图腾才能是神圣的

抹掉场景,是技术族群主义的第一个动作


二、结论在前,论据在后#

正常的推理路径是:观察现象,分析证据,得出结论。

技术族群主义的实际推理路径是:我用 Python,我认同 Python 社区,Python 是好的,找证据证明它好。

认知科学把这个叫做 motivated reasoning——动机性推理。结论在先,论据是事后补充的装饰品,功能不是发现真相,而是支撑已有立场。

这个过程几乎完全是无意识的。没有人在心里对自己说”我先决定 Python 好,然后去找证据”。他们真诚地相信自己在做客观分析。但如果你仔细观察他们处理反例的方式,就会发现一个规律:凡是支持自己立场的证据,都被接受;凡是不支持的,都能找到理由排除。

你拿出 benchmark,对方说测试场景不对;你拿出工程案例,对方说规模不一样;你拿出论文,对方说学术脱离实践;你指出某个已知缺陷,对方说这个缺陷在实际使用中根本遇不到。

每一个反驳单独看都有一定道理。benchmark 确实可以被设计,工程案例确实有上下文,学术确实和工程有距离。但当这些反驳被同一个人对任何不利证据系统性地使用时,它们就不是在做认知修正,而是在做认知防御。

更准确地说:他们不在寻找真相,他们在排除威胁。而且他们自己不知道这件事。


人一旦在某件事上投入了时间、学习成本、职业选择、社交圈子,这件事就不再只是工具了。它变成了自我叙事的一部分。这个过程是渐进的,分几个阶段完成

第一阶段是选择。你选择了 Python。在这个阶段,它还只是工具,你知道它有优点也有缺点

第二阶段是投入。你花了几百小时学习,读了很多文档,写了很多代码,遇到了问题,解决了问题,积累了经验。你开始有了”用 Python 做事”的能力感

第三阶段是社群。你加入了 Python 社区,认识了一些人,参与了讨论,可能贡献过代码,在社区里有了一定位置。你开始有了”Python 人”的身份感

第四阶段是融合。某个时刻,你已经不是”一个使用 Python 的人”,而是”一个 Python 开发者”。这个标签成了你对自己的描述方式之一。工具和自我之间的边界,已经模糊到难以分辨

到了第四阶段,批评 Python 就是在批评你这个人做出了错误的选择、投入了错误的方向、在一个错误的社群里浪费了时间。这不再是技术讨论,是对自我价值的直接威胁

这个过程我给他起了一个正式的名字:器我融合 (Tool-Self Fusion):工具(器)与自我(我)的认知边界消失,工具变成了自我的延伸,对工具的评价等同于对自我的评价

路径依赖加上沉没成本,是器我融合的物质基础。投入越深,绑定越紧,松动它的代价越大。用了十年 Vim 的人,比用了一年的人更难接受”其实 IDE 也挺好”,因为前者在这个选择上投入了更多的自我。质疑工具,就是质疑他过去十年的判断,以及那十年里那个做出判断的人


当个体的器我融合聚合,就形成了部落

技术族群的结构,和人类历史上任何形式的族群结构高度同构。它有共同图腾——语言、框架、工具;有起源神话——“Linus 在业余时间创造了 Linux”;有内外群体的划分——“真正的程序员用 Vim”;有精英层级——核心贡献者、布道师、资深用户;有入会仪式——Arch Linux 的手动安装,从零配置 Neovim;有异端审判——“你还在用 Python 2?”,“你用 ORM?说明你不理解数据库”

这套结构的功能是维持群体凝聚力。内外群体的区分越清晰,群体内部的认同感越强。所以技术族群需要异端,需要敌人,需要持续的外部威胁。语言圣战是族群的正常运作状态。没有对立,就没有边界;没有边界,就没有归属

Linux 发行版社区是观察这个结构的绝佳样本,因为它的技术差异小到几乎可以忽略。Arch 和 Ubuntu 对于绝大多数使用场景来说,功能上的实际差距微乎其微。但围绕它们形成的身份认同有着截然不同的文化气质:Ubuntu 是”给新手的”,Arch 是”给真正懂 Linux 的人的”

Arch 用户身份的核心是苦行僧叙事:我手动配置了一切,我理解每一个组件,我没有依赖任何预设,我选择了困难的路。这套叙事的功能是地位性的:通过主动承担痛苦,换取族群内部的精英身份

这解释了为什么 Arch 社区对”我用 archinstall 脚本安装的”会有那么强烈的反应。从技术角度看,用安装脚本还是手动安装,结果完全一样。但从族群角度看,用脚本跳过了入会仪式,相当于没有完成成人礼就声称自己是成年人。这是对族群边界的僭越,必须被纠正


技术族群主义有一个属性,让它比其他形式的身份政治更难被识破:它披着理性的外衣

球迷知道自己在情感上支持一支球队。被质疑时,球迷会说”我就是喜欢这个队,怎么了”。这是一种诚实,他们承认自己在做的是情感投入,而不是理性分析

技术族群主义者被质疑时,说的是”你不懂技术”

这个差别至关重要。球迷的回应划定了讨论的性质:这是情感偏好,不需要理性辩护。技术族群主义者的回应则宣称:这是理性判断,而且是对方能力不足才无法理解

这种宣称之所以能成立,是因为技术圈有一套根深蒂固的自我认知:我们是理性的人,我们用数据说话,我们不像普通人那样感情用事。程序员处理的是严谨的逻辑和可验证的系统,职业本身强化了一种”我不会犯非理性错误”的自我叙事

但这套认知,反而成了最大的盲点

认知科学里有一个概念叫 identity-protective cognition:当信息威胁到自我认知时,大脑启动的不是分析,而是免疫反应,其速度和自动性与身体排异相似。关键在于,这个过程发生在意识层面之下。当事人感受到的不是”我在防御”,而是”我在分析,然后发现对方的论据有漏洞”

越相信自己理性的人,对这个过程的防御越弱。因为他不会质疑自己的结论是否来自动机性推理——他确信自己没有这个问题。而这种确信,恰恰让动机性推理在他身上运作得更顺畅,更彻底,更难被外部打断

结果是:技术圈里一些最聪明的人,同时也是一些最难被理性说服的人。智识能力越强,为既有结论构建辩护的能力越强,motivated reasoning 的质量越高,越像真正的理性分析。在外人看来,他们确实像是在讲道理。在他们自己看来,他们也确实在讲道理

但他们不是在讲道理。他们在保卫自己


“我吃过的盐比你吃过的米都多。”

这句话在技术圈有无数变体。“我做了二十年开发,这种事我见过太多""你用 Python 才两年,等你写到十万行再来和我说""这个方案听起来很美好,实际上根本跑不起来,我被坑过”

表面上,这些话在提供经验参考。实际上,它们在做一件完全不同的事:用时间投入置换认知权威,然后用认知权威终止对话

它的逻辑结构是:我在这件事上花的时间比你多,所以我的判断比你更可信,所以你应该接受我的结论,所以讨论结束

这个结构有两个致命的漏洞

第一个漏洞是把时间量等同于认知质。吃了很多盐,不代表你理解盐。用了二十年 C++,可能只是在同一套思维框架里重复了二十年。经验的积累需要一个前提:你在经历中进行了真实的反思和修正。没有反思的经验,会导致路径依赖的加深,而不是认知的增长

第二个漏洞是默认经验的方向是正确的。二十年的经验建立在某些前提假设上,如果那些假设本来就有偏差,那么建立在它上面的经验越多,偏差越固化,越难修正。一个在局部最优解里打了二十年转的人,在某些具体问题上,判断能力可能真的不如一个想清楚了底层逻辑的新人

但这两个漏洞都不是重点

重点是”我吃过的盐比你吃过的米都多”根本不是认知陈述,而是权力陈述。它的功能不是论证,是终止。它在说的是:这个讨论到此为止,我的地位不允许被质疑

这种话出现的时机,几乎总是当事人无法在内容层面继续辩护的时候。当论据耗尽,就切换到资历。这是讨论失败的信号,但它被包装成了权威发言的形态。识别这个切换,是判断一场对话是否还有继续价值的最可靠指标之一


Rust 是近年来技术族群主义最清晰的样本之一,值得单独解剖

Rust 本身是一门有真实优点的语言。内存安全、零开销抽象、强大的类型系统、优秀的工具链,这些是可以验证的技术属性。这一点必须先说清楚,因为技术族群主义的分析不依赖于图腾本身是否有价值。一个真正有价值的工具,同样可以成为族群的图腾,而且往往因为真实优点的存在,让神话更难被识破

Rust 社区在过去几年里完成了一个跳跃:从”Rust 是一门有价值的系统编程语言”,跳到了”未来的一切系统软件都应该用 Rust 重写”,再跳到”不用 Rust 是在犯错误”

这个跳跃是纯粹的信仰的跳跃

Rust 的学习曲线陡峭,所有权系统需要相当长时间才能真正掌握。这本来是一个需要权衡的属性,但在 Rust 社区的叙事里,它变成了资产:正因为难,才证明了使用者的能力。这和 Arch Linux 的苦行僧叙事结构完全一致:困难被转化成了地位的来源

于是”学 Rust 很痛苦”变成了”学 Rust 是一种修炼”,“学会了 Rust”变成了”我是更好的程序员”,“在项目里用 Rust”变成了”我在做正确的事”。工具成了品格的证明

与此同时,Rust 社区发展出了完整的异端审判体系:用 C++ 是在”玩火”,用 Python 是”不认真对待性能”,用 Go 是”选择了平庸”。批评 Rust 的人,绝对不是在提出技术观点,而是”还没理解 Rust 的价值”,或者”太害怕改变”

这套叙事的精妙之处在于它是自封闭的:任何批评都可以被解释为批评者能力不足或认知落后,而不是语言本身有问题。这种结构在哲学上叫做不可证伪命题——没有任何证据能够推翻它,因为所有反例都会被内化为对批评者的质疑。在宗教里,这种结构叫做信仰

Rust 是好语言。但围绕它形成的身份政治,和语言本身已经几乎没有关系


还有一种人,值得单独说

他们不是当下的技术族群主义者,但会在任何有建设性的讨论出现时冒出来,留下一句”然后呢,能改变什么”,然后离开

这种姿态看起来是清醒,实际上是另一种形态的技术族群主义,只是图腾从具体的语言变成了抽象的”看穿了”

他们大多经历过一个可辨认的轨迹:早期有强烈的改变欲望,后来碰了壁,幻灭了,得出结论”什么都没用”,然后在这个虚无的立场上稳定下来。虚无成了新的身份:我是看穿了一切的人,我不再被任何叙事欺骗

这套身份认同有一个内在需要:任何人提出有建设性的东西,都必须被否定。因为如果它有用,就意味着当年的放弃不是无可奈何,而是主动的选择。这是他们无法接受的

所以他们反驳的不是你的论点,而是你还在认真做事这件事本身。你的存在状态对他们构成威胁,因为它揭示了一种他们亲手关闭的可能性

和技术族群主义者一样,他们的防御机制不是论证,是消解:你说什么都没用,什么都改变不了,努力是幼稚的,认真是可笑的。这是认知免疫反应的另一种形态,只是方向反了过来:捍卫”没有图腾值得捍卫”这个元立场


这个结构不只存在于技术圈

选择技术圈作为切入点,是因为它方便观察,不是因为问题只存在于这里

同样的结构,存在于所有人类群体形成身份认同的地方。政治讨论里,左右之争的激烈程度和任何具体政策的复杂度早就脱钩了。饮食文化里,纯素食者和肉食者之间的对立,和营养科学的实际争议完全不成比例。教育理念里,应试和素质之争,大多数时候是阶层认同之争,不是教育学之争

内容不重要,结构是一样的:

人需要归属。归属需要图腾。图腾内化成身份。身份受到挑战时启动防御。防御用所在领域的理性语言包装。于是它看起来像是在讨论那个领域的具体问题,但实际上是在保卫领地

技术族群主义让这个结构特别清晰的原因,是它有一套显性的”理性人”自我叙事,与实际运作之间的张力格外突出。宗教团体从不宣称自己完全理性,政治团体的非理性是可以公开承认的。但技术圈真诚地相信自己在理性地讨论客观问题:这使得结构和自我叙事之间的矛盾,在这里是最无遮掩的,也是最值得解剖的


最后一个问题:知道这个结构,有什么用?

第一个用处是停止浪费时间。识别出对方处于身份防御状态,就可以知道继续提供论据没有意义。对方的大脑处理的不是你的论点,而是威胁信号。拿出更好的证据,只会触发更强的防御,不会产生认知更新

第二个用处是理解说服从何处发生。真正的认知更新,不发生在公开争论里,不发生在被逼到墙角时,不发生在对方拿出无可辩驳的证据时。它发生在私下,发生在没有观众的时候,发生在一个人自己坐着想事情的时候。公开争论最多能种下一颗种子,但种子发芽不需要观众不需要对手,需要的是安静和时间

第三个用处,也是最基本的:用它审视自己

这篇文章描述的结构,不是”他们”的问题。每个人在某些领域都有图腾,都有程度不同的器我融合,都有触发免疫反应的阈值。区别只在于自我觉察的程度,以及这个结构在多大范围内接管了判断

真正的技术判断是什么样的?它是后置的,是有条件的,是愿意在场景改变时修正结论的。它不需要一个语言永远是好的,不需要自己的选择永远是对的,不需要通过贬低其他工具来确认自我价值

识别不能消除这个结构,但它改变了结构运作的方式:从无意识的自动驾驶,变成一个可以被观察、被质疑、被选择性打断的过程

这已经是能做到的、最有意义的事了

Chongxi
CHONGXIAuthor
Steam—
Spotify—
发布于:2026.11.02
Classified
Distribution Notice

程序员为什么为编程语言发起圣战?技术族群主义的结构分析

Author CHONGXI/2026.11.02/CEPATO-2026-1102-TECHNO

本作品采用 CC BY-NC-SA 4.0 协议授权。允许分发、混剪、演绎,但不得用于商业用途,且必须基于相同协议分发并标注原作者。

SubscribeDonate
Discussion
Archive_Ref
Copyright © 2011–2026 Chongxi & CEPATO
Powered by Astro & CEPATO-NEXT
StatusNon-Collaborative_Entity // CEPATO_NEXT_v27.0

输入关键词搜索文章