---
title: 程序员语言之争与禀赋效应
date: '2021-06-02 19:58:29'
draft: false
summary: 人一旦在某种语言上投入过时间和身份，就会天然高估它，并低估替代方案。
slug: language-wars-are-endowment-effect-for-programmers
syndication:
- platform: Weibo
  url: https://weibo.com/1648815335/4643730579784952
tags:
- programming-languages
- behavioral-economics
- culture
topics:
- programming
type: post
---

前面的微博差点挑起语言之争。语言之争是程序员社群里永久不衰的话题之一，有好多关于语言之争的段子，我也时常观察和思考这种现象。

学习一门语言，实际上是一种投资。而人拥有某种物品或者资产后都有一种心态，觉得自己拥有的就是好的，会高估它的价值。行为经济学把这个叫做“禀赋效应”。比如你朋友买了个包包，你说它丑，大概是要断绝关系的吧。朋友辛辛苦苦学了门编程语言，你非要说它有哪些缺陷，效果应该和这个类似。

再进一步，人拥有某种物品或者资产后会试图给别人推销它，从音乐，书籍，商品到股票。这种可以理解成“禀赋效应”的外溢，一个物品或者资产，认可它价值的人越多，越能体现自己的正确决策，同时也对自己越有利。而任何有网络效应的东西传播的过程都会形成一个生态系统，早期参与者会处于有利的生态位置，享受到网络效应的红利。这也是为什么新的编程语言会有比较多的 meetup，会有比较多的人来传播它，因为老语言的生态位都已经被占据了。

另外一方面，“禀赋效应”也会让人很难客观评估自己拥有物品或者资产的价值。这很可能让你倾向于安于现状，从而错过新的有价值的资产，或者坚持持有一种没有前途的资产。

所以对开发者来说，对编程语言有两种态度：

一种是发明或者发现一种新语言，并试图推广它，给它写教程，给它造“轮子”，让它用到更多地方。这种可以叫做语言创业者，成本高，风险高，但成了收益也高。

另外一种是同时掌握多种语言，并能在不同的场景选择不同的语言。时刻观察语言市场，发现新的语言就去尝试了解一下，判断是否值得持有。这种可以叫做语言投资人，会尽量克服“禀赋效应”，避免对同一种语言倾注过多感情。

上面两种态度并不冲突，可以动态转换的，投资人有时候脑袋潮了也会下场创业的。对应到语言之争的场景里，不同语言的创业者之间的争吵是必然的，毕竟语言之间也是有竞争关系的。语言投资人会点评不同的“资产”，虽然也很难客观，但会比创业者客观一些。这两种人争吵的目标很明确，吸引新开发者的注意力，他们吵的时候可以兼听，方便自己做决策。

但最应该避免的态度是只掌握了一种语言，但就认为它是最好的，但实际上这种语言也已经很成熟了，并没有有利的生态位可以去占据，又听不进去前面两种人的争论，被禀赋效应所困，错失新的机会。

还有人会说，当前语言已经有这么多了，好像没多少新语言和新机会了。我这里可以做个预测，#区块链#智能合约会掀起一波发明新语言的浪潮。因为当前的编程语言里使用的抽象，无论是文件，网络，还是调度，都是面向操作系统的，而这些概念在智能合约中都不存在，链接管了调度和状态存储，语言也就有了新的玩法了。

下面是硬广告：最近会搞一次 Move 语言的编程大赛，感兴趣的朋友可以提前准备学习一下。
