您有多少次读到“C++ 已死”或“C 语言还有人在用吗?”之类的文章,而现实中这两门语言依然非常流行?

我们又有多少次读到“哇,这门新编程语言是最棒的”,结果几年之后风平浪静,语言的人气逐渐衰落?不过也有一些例外——其中最有趣的当属 Python,它从一门使用并不广泛的脚本语言,崛起为一门非常流行的编程语言。

究竟是什么解释了 C 的长青、C++ 的复兴以及 Python 的崛起?
让我们来看看维基百科上的“跨越鸿沟”理论,它可以帮助我们回答上面的问题。
在《跨越鸿沟》一书中,Moore 首先介绍了 Everett创新扩散理论(由 EverettRogers 提出),并指出产品的早期采用者(技术狂热者与远见者)与早期大众(实用主义者)之间存在一条鸿沟。Moore 认为,远见者与实用主义者的期望截然不同,他试图探究这些差异,并提出成功跨越“鸿沟”的方法。《跨越鸿沟》与技术采用生命周期密切相关,后者将用户分为五个主要群体:创新者、早期采用者、早期大众、晚期大众以及落后者。Moore 认为,营销人员应该一次专注于一个客户群体,并以每个群体作为向下一个群体营销的基础。最困难的一步是从远见者(早期采用者)向实用主义者(早期大众)过渡,这就是他所说的鸿沟。如果一家成功的企业能够制造出“跟风效应”,积累起足够的势能,那么该产品就会成为事实上的标准。

Moore 指出,事实上在曲线的每个阶段之间都存在裂缝,代表着任意两个群体之间的脱节;也就是说,“如果一个新产品以与呈现给左侧相邻群体完全相同的方式呈现,那么任何群体都很难接受它”。最大的裂缝——大到可以称之为鸿沟——位于早期采用者与早期大众之间。许多(甚至大多数)高科技企业都在试图跨越这条鸿沟时失败了。
早期采用者是稀有的远见者,“他们拥有将新兴技术与战略机遇相匹配的洞察力……被一个‘梦想’所驱动。这个核心梦想是商业目标,而非技术目标,它涉及在其所在行业或其客户的业务方式上实现一次量子跃迁……远见者推动着高科技产业,因为他们看到了‘数量级’投资回报的潜力,并愿意为追求这一目标承担高风险。”
早期大众是实用主义者……“他们关心自己从哪家公司购买、所购产品的质量、配套产品的基础设施与系统接口,以及将要获得的服务的可靠性……实用主义者倾向于‘垂直’导向,也就是说,与技术狂热者和早期采用者相比,他们更多与本行业内与自己相似的人交流……向实用主义者销售,很难打入一个新行业。”
尽管跨越鸿沟更多地与销售产品联系在一起,但这一概念同样适用于编程语言的采用。对于每一门新语言,创新者和早期采用者是它的首批拥护者,但许多编程语言未能赢得早期大众,因此无法跨越鸿沟。
C 和 C++ 在几十年前就已跨越鸿沟,并且至今依然非常流行。同样,要说服早期大众和晚期大众从 C/C++ 迁移到另一门语言也非常困难。我常读到 D、Go 或 Rust 将杀死 C++ 的说法,但这并没有发生:这些较新的语言在跨越鸿沟方面仍面临重大挑战。
Python 是跨越鸿沟的语言的绝佳范例:它从一门相对小众的脚本语言,成长为一门高度流行且用途广泛的编程语言。为什么 Python 能做到这一点?
让我们回到 Moore 的这一论断:
Moore 认为,营销人员应该一次专注于一个客户群体,并以每个群体作为向下一个群体营销的基础。最困难的一步是从远见者(早期采用者)向实用主义者(早期大众)过渡。
创新者和早期采用者在倡导和支持这门语言方面做得非常出色。从一开始就有大量文档,以及指南、教程和其他资源。此外,开发者社区异常活跃,这意味着当有人需要帮助或支持时,通常都能很快得到回应。而且,Google 早在 2006 年就广泛采用了 Python,此后一直将它用于众多平台和应用。拥有强大的企业支持,也能在一门语言的普及过程中发挥重要作用。
特别感谢 Python 的早期采用者,他们为其成功做出了巨大贡献——也祝其他新兴编程语言的早期采用者好运。
