2002年秋,在北京德胜门外小西天的一个格子间里, 第一次有朋友向我推荐“维特根斯坦”, 说是OOP(面向对象程序设计)的哲学基础,他给我的那本小册子我没看进去。

2026年春,在好几个AI相关的技术讨论群里, 又陆陆续续看到 “维特根斯坦” 出现。 “维特根斯坦”的哲学思想为信息技术的发展做了什么贡献?

1. 维特根斯坦哲学简介

Wittgenstein 一辈子主要写了两本书, 这两本书的观点几乎完全相反。

第一本是 1921 年出版的《逻辑哲学论》。Wittgenstein 一战前到剑桥跟罗素读书, 战时在奥匈军队服役, 战后到奥地利乡村当小学教师 (1920–1926), 《逻辑哲学论》就是在这段教书期间出版的。书的结尾扔下一句"对不可说者必须保持沉默"后, 他自己也离开了哲学界不再发表任何作品了。1929 年他回到剑桥, 之后慢慢放弃《逻辑哲学论》的框架, 多年后写出《哲学研究》, 把上一本几乎全部推翻。他的两本书都成了 20 世纪哲学的核心著作。

第一本书的核心是图像论。命题之所以有意义, 是因为它和它描述的事实之间共享某种逻辑结构。“猫在垫子上"这句话能描述猫在垫子上, 是因为这五个汉字之间的关系映射了猫、垫子、空间关系。《逻辑哲学论》4.01:

命题是实在的图像。命题是我们所设想的实在的模型。

这种观点暗示: 只要把世界划清楚成对象 + 关系, 再用形式语言精确编码, 就能得到一种和现实映射的语言。

第二本书则完全不同。语言不再是世界的图像, 而是嵌在人类活动中的工具。意义不在指“名相”, 而在使用。《哲学研究》§43:

一个词的意义就是它在语言中的使用。

学一门语言, 是学会怎么参与这门语言里的各种活动: 下棋、问路、点菜、安慰朋友。这些活动他叫语言游戏。游戏没有统一的本质——棋牌、奥运、儿童单人玩耍, 没有一个共同特征贯穿所有"游戏”, 它们靠重叠的相似性串成一族, 这叫家族相似性。所有语言游戏又嵌在生活形式(Lebensform)里, 砌墙工对徒弟喊"板砖"的游戏之所以有意义, 是因为它出现在砌墙、徒弟、报酬、想睡觉的傍晚里。

放在一起, 维特根斯坦自己的转向是从"语言是世界的镜子"走到"语言是生活的一部分"。这条转向在二十世纪后半段的两个完全不同的工程领域里又被重演了一次, 一次在 OOP(面向对象程序设计),一次在 NLP(自然语言处理)。

2. OOP, LLM

对象关系图转向消息传递与语境网络

OOP 的发展和维特根斯坦思想类似。

OOP 内部一直有两个方向。一个想用代码先把领域说清楚——类即本质, 继承层级映射领域结构, AbstractAnimalFactory、深继承、抽象基类构成的金字塔; 用图像论的口吻说, 这一路相信类型系统能预先描出现实的形状, 程序在此之上跑。另一条不信类型能预先说清楚, 重点放在对象之间怎么用: Alan Kay 2003 年的邮件里说, “OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. The big idea is messaging.” 鸭子类型(“叫得像鸭子就是鸭子”)、Go 的结构性 interface (没有 implements Reader, 你有 Read(p []byte) 这个方法你就是 Reader)、Smalltalk 一脉强调的消息传递, 它们的共性是用"在调用方眼里能干什么"代替"在类层级里属于谁"。

这两条方向不是干净的二分, 也不能简单贴在某种语言上——Java 和 C++ 完全可以写得 messaging-flavored, Python 也能写出深继承的领域模型。但过去二十年, 工业界对深继承层级的态度变了: “组合优于继承"成了主流建议, 接口和 protocol 越来越受重视。

NLP 的发展也和维特根斯坦思想演进类似。

第一代 NLP (1960—1990s) 是图像论的工程版。CYC 想手工编出常识库, WordNet 想把英语词义组织成上下位的图, RDF / OWL / 知识图谱想用三元组表达世界。它们都预设了一件事: 现实可以被切成清楚的对象和关系, 语言只是给这套结构上符号。维特根斯坦 1929 年回到哲学也正是从这件事开始放弃图像论的——他发现哪怕"指着颜色样本说红"这种最原始的语言行为, 都已经预设了一整套关于"怎么指、怎么算指对了"的使用习惯。世界并不那样分。

当代 NLP 走的是反方向。Firth 1957 年说 “You shall know a word by the company it keeps”, 很容易让人想到后期 Wittgenstein——两人对"语境决定意义"的直觉高度相通, 不管 Firth 自己是不是直接承接了 Wittgenstein。从 word2vec 的 skip-gram 到 BERT 的 masked language model 再到 GPT 的下一词预测, 整套现代 NLP 都是这一句话的工业化。一个词的意义被它出现的上下文统计分布定义, 没有别的形而上学。家族相似性在 embedding 空间里几乎是字面成立的: 没有"狗"的本质特征, 只有一团互相靠近的向量, 它们和"狼"那团重叠一部分, 和"猫"那团重叠另一部分。

LLM 是这套思路的极限版本, 也是它的极限挑战。LLM 没有任何关于"猫"或"红"的内置定义, 只见过这些词跟什么一起出现, 就靠这个生成看起来合理的文本。这是"意义即使用"在工程上的一个诱人对应物, 但要说它直接印证后期 Wittgenstein, 还差一截: 他说的"使用"嵌在生活形式 (Lebensform) 里, 而 LLM 没有生活形式, 它有 token 序列、attention head、梯度更新。

Bender 和 Koller 2020 年在 Climbing towards NLU 里用一个"章鱼"思想实验给同一件事做了反方论证: 一只听水下电缆里两个人对话的章鱼, 能学到统计意义上的回复模式, 但它从没见过被指称的对象, 因此原则上章鱼不知道对话的意义。这跟"语言必须嵌在生活形式里才有意义"是同一个直觉的两种说法。

当 LLM 在 roleplay 对话里"扮演"医生, 它做的是预测"医生跟病人讨论病情"那种语料里下一个 token 最可能是什么, 不是参与那个语言游戏本身。它在使用语言, 只是不在生活里使用。

把 NLP 和 OOP 这两条放在一起看, 至少说明一件事: 想用对象和关系把现实一次性画清楚, 工程上经常会很快碰到边界。维特根斯坦从图像论转向意义即使用, 不只是哲学史里一个极客的内心戏——它和两个完全不同的工程领域的实际困境同形, 因此可以用同一组哲学词汇来解读。这不证明哪条路一定胜出 (OOP 至今没从本质派彻底走出来, 知识图谱和本体工程也还活着), 只是说这套词汇刚好提供了一个能横跨两种工程的视角。

3. 精确描述和不立文字

到这里, 维特根斯坦哲学看起来全是关于语言——语言能做什么, 语言不能做什么, 语言怎么用对、用错。如果把他对语言的思考放到中国文化的语境, 会看到一些碰撞。

老子开篇:

道可道, 非常道。名可名, 非常名。

禅宗有一句口号:

不立文字, 教外别传, 直指人心, 见性成佛。

表面上, Wittgenstein 跟道家、禅宗都承认语言有边界——Tractatus 7 那句"对不可说者必须保持沉默"看起来像给这套东方传统配了一个西方版本。但骨子里走向完全相反。

从《逻辑哲学论》的方法看, Wittgenstein 的沉默更像是防御性的——“必须沉默"重点不在沉默, 而在"必须”, 即一旦说了就是胡说。整本书前面的工作都在做一件事: 把可清楚说的东西精确的圈起来, 圈完之后, 圈外的东西不去碰。伦理、美、生命的意义, 他承认它们重要, 但语言对它们无能为力, 所以唯一负责任的态度是闭嘴。这套方法论对冥想、顿悟、以心传心一类操作不友好——它们在分析哲学家眼里很容易被划为"试图说不可说的”。

道家和禅宗 (求同存异,这里取它们一个共有的取向) 走的方向相反。不是把语言用干净, 而是想绕过语言去触到语言够不着的那一边, 因为那一边才是它们的关切。“道可道非常道"用语言自身的悖论提示语言的不够用; 禅宗的拈花一笑、棒喝、公案, 不是描述觉悟, 是想把人推到一个不依赖语言概念的状态。如果按《逻辑哲学论》的标准看, 这些动作多半会被归为"试图说不可说的”。

当 Wittgenstein 说"我的语言的界限就是我的世界的界限", 他是带着遗憾的,出了这个圈我没办法。老子说"无名天地之始, 有名万物之母", 意思反过来: 有名的世界恰恰是次等的, 真正的天地始于无名。一个把语言之外看作禁区, 一个把语言之外看作老家。

但这两条路在一些具体的场景也会意外相遇, 例如情绪

心理学里有一个概念叫 emotional granularity(情绪粒度), Lisa Feldman Barrett 和合作者过去二十年陆续在做。Kashdan、Barrett、McKnight 2015 年那篇综述整理过这一系列研究: 能把"焦虑 / 紧张 / 不安 / 烦躁 / 忐忑"细分开的人, 比起只能说"我心情不好"的人, 在情绪管理、酗酒/暴食等高代价应对行为、以及和边缘人格相关的临床指标上, 总体表现更好。Barrett 自己在更哲学的层面提出"构造主义情绪论": 情绪不是脑里先有一团东西然后被语言贴标签, 而是脑用概念构造了情绪本身, 词汇精度也因此参与塑造你能感受到的差别。

神经层面的实验有 UCLA 的 Matt Lieberman 等人 2007 年 Putting Feelings Into Words: 给被试看引发情绪的面孔图片, 同时让他们从词表里选一个准确的情绪词来命名感受, fMRI 测到杏仁核活动可测量地降下来, 前额叶腹外侧 (RVLPFC) 活动相应上升。这件事被科普化的时候常被简化成"说出情绪就能让情绪缓和", 原始研究比这要保守一点: 它说的是主动选词命名比纯被动观看, 在那个时刻确实改变了脑活动的模式。

从 Wittgenstein 的角度, 这是"精确化使用"的胜利。一个真正的语言游戏, 玩得越细, 受益越大。

但同样这件事, 禅宗一脉会立刻补一句反向警告: 一直贴标签会把你在概念框里。冥想传统几千年都在指出, 真正的状态变化常常发生在停止命名、只是注意的那个时刻——一旦给某种焦虑起了名字, 它就成为"焦虑这个东西", 而不再是当下流动的体感。近几年也有不少临床心理学家公开提到 “therapy-speak” 的反作用: 把日常人际不适习惯性标记成"trauma"或"trigger", 容易让本可能自然消化的体验被概念固化, 反而不容易过去。两种声音说的不是矛盾的事, 是同一件事的两个边界。

情绪也许正好卡在两者中间。有些时候需要更精细的词——把"我不舒服"细分成"委屈 / 不甘 / 怅然 / 失落 / 空落 / 闷"; 有些时候需要暂时放下词, 只是看着, 不命名。哪种动作什么时候用, 没有外部规则, 只能靠自己练。

情绪是这套张力里证据最足、最贴近日常的一例, 但同一组动力其实更普遍。一个领域只要同时具备三件事 (经验者对现象有直接的、非语言的接触, 默认词汇是粗的, 又存在可以习得的精细词汇), 精确命名和放下命名就会同时变得重要。侍酒师和咖啡 cupper 经过训练之后对同一杯东西的味觉体验, 跟外行确实不一样; 慢性疼痛研究里, 能把钝痛 / 锐痛 / 牵涉痛 / 灼痛区分开的患者, 描述能力和治疗依从性都更好; 佛教传统对"注意"本身的细分 (念、觉、定、慧、舍), 也是同一件事的另一种实操版本。这些场景都同时受益于精细化, 也都会在某个点上撞上"概念固化"的反作用。情绪之所以被反复拿出来讲, 是因为它人人都有、研究最透、临床后果最直接, 不是因为它是唯一的交叉点。

有意思的是维特根斯坦自己后期开始就有一点点向这一边转移。《哲学研究》里"哲学的工作是治疗"、对系统化理论的怀疑、对回到生活形式的强调——气质上和禅宗"日用即道"远远地遥相呼应。他没跨过去, 也几乎不可能跨过去, 毕竟他是分析哲学家, 不会让你坐禅。但他用了一辈子时间把语言用到极致之后, 似乎也隐约看到了语言之外的那一片世界。

在《逻辑哲学论》5.6 中,维特根斯坦的名句:

我的语言的界限就是我的世界的界限。

放在人身上, 这是带着重量的形而上学隐喻。放在 LLM 身上, 至少在训练阶段, 它的世界边界第一次变成了可以估算的工程量——多少 token、什么分布、哪些时期、哪些语言, 都是数据库里的一句 SELECT COUNT(*)

Wittgenstein 这句话写于 1921 年。他大概没想到一百年后会有一种机器, 把他的隐喻变成一个精确的工程量。也不会想到, 他这套关于"清晰说话"的哲学, 最实用的一个场景, 居然是教人怎么更准确地说出自己的情绪。

很多年以前,在小学中学的语文课上, 老师不厌其烦的讲解着一个个词的微妙差别、一句古诗为什么不能换字、“怅然"和"惘然"分别用在什么处境, 当时只觉得繁琐, 以为那只是为了考试。多年以后才慢慢发觉, 那些课在做的, 是给一个人将来能感受到的世界预先准备词汇。

我…当时没好好上, 后来很多年里, 不少情绪、不少景色、不少人和人之间微妙的张力, 都被自己粗暴归在"有点不舒服”、“挺好的”、“说不上来"这种粗格子里, 跟着也就模糊地过去了。

参考资料

Wittgenstein 哲学与生平

LLM 与意义

OOP

情绪粒度