仓库源文站点原文


layout: post comments: true title: 编程语言国产化的关键一战——对肆意污名化“木兰”编程语言说“不” description: date: 2020-01-21 00:00:00 -0700

categories: 小结

对「木兰」编程语言的口诛笔伐还在继续,公众对「木兰」的认识也逐渐被简化为对某个英文编程语言的”造假“、”套壳“。

围观者甚众,但有多少人看到了这场风波的潜在深远影响?

想象一下,国内有一个万亿元市场规模的制造产业,而且还在蓬勃发展。但这一产业使用的机床,一直以来都几乎被国外厂商垄断。这些机床购买和升级时都不用付钱,貌似免费地送到手边。天上掉馅饼!是不是美滋滋?

但是,最新的用户手册总是英文的,大多数厂方不负责翻译成中文。培训、售后出了问题需要修复、升级改造后的再学习等等,都需要倚靠国外,甚至付费。不仅如此,所有机床配套的辅助工具、功能附件也是类似。

怎么可能??在国产化大潮中竟然会有这样的领域??

我自己都很难相信,但这确实是事实。

这就是软件产业。上面所说的”机床“,就是编程语言。

为什么这从来没有见诸报端?甚至在最近的”卡脖子“中,也从来没听说过这个领域被波及?

因为,国外编程语言业界执牛耳的人物都是编程语言设计实现的老手,他们比谁都更加清楚地知道,自主研发一套“只需够用”的编程开发工具到底有多少工作量和技术难度。

这层没人捅破的窗户纸就是,假如就在此时真的禁运所有编程语言开发工具,以中国现今的实力,不出一年甚至更短的时间,就可以基于现有技术和生态,自主可控地开发出完全够用的通用编程语言、核心库、以及配套的辅助开发环境。

而且由于技术门槛并非高不可攀,几乎肯定会百花齐放,出现各种不同技术实现。与国际水平有多大差距另说,但绝不会像芯片业这样,如果真的被禁运甚至只是某一项关键技术,就会完全停摆相当长的时间。

而一旦中国走出了自己的路,像其他很多国之重器一样,就会完全根据自身需求开始改进、演化,取长补短,逐渐将整个生态也国产化,最终把编程工具做成“白菜价”,出口到其他市场。

因此,从这个角度说,这些事实垄断者当然不会傻到自断后路,迅速逼出一个对手。

那么,为什么现在一些声音急着不惜对「木兰」泼明显的污水也要误导公众、试图迅速将其永远钉上耻辱架呢?

为了把编程语言国产化带往一条最最艰难的路,而且设置软性门槛减少竞争者的数量。

这几天的网文中,时不时就会提到”应该掌握核心技术“。当然,要造大飞机,如果要做到完全自主,绝对要最终攻克引擎这个最大的难关。但,关键问题是,难道必须要首先攻克了引擎技术,才有资格造大飞机呢?更进一步,才有资格出来卖飞机呢?

在这次风波之前,就一直听到”如果要做国产编程语言,就必须从国产 CPU 开始做起“这种绝对化的论调。芯片、操作系统、编程语言,在现今的技术世界,是完全可以并行发展的科技树。如果作为一家企业只想开发编程语言,凭什么必须要从最难,资金要求最高的底层做起?

现今大力发展芯片产业,是逼不得已而为之。发展自主操作系统亦然。单单编程语言没被卡脖子,为什么?现在看就明晰多了。

即使发展出了自己的芯片,操作系统,只要编程语言的发展还是国外主导,中国的千万程序员就还是要仰人鼻息。

更重要的是,芯片和操作系统的先发优势和技术、标准、生态积累巨大,后发者需要通过极大的资金和人力投入,而且在很长的时间内还是会亦步亦趋,跟着别人的步调走。

而编程语言的发展几乎与这两者没有硬性依赖(已经有成熟的方案实现跨系统、平台的编程语言),技术、人力门槛相对最低,更关键的是,资金门槛相比前两者而言几乎可以忽略不计。

但是,一个最大前提是,可以完全自由地使用任何现有技术和生态定制自身需要的编程语言。

举个例子,去年开始谷歌推荐安卓开发使用的 Kotlin 语言,是基于 Java 虚拟机的编程语言。它由 2000 年才创立的 JetBrains 公司在 2011 年推出,之前开发耗时一年左右。且不论 Java 虚拟机的开发耗时多久,耗用多少人力,更重要的是,Java 的成千上万的核心库、第三方库、相关开发辅助工具是通过数十年积累才发展到今日的规模。而 Kotlin 在诞生时就可以享用这个生态资源,这是 Kotlin 能够在十年不到的时间内迅速成长的关键因素。

可以想象,如果 Kotlin 在诞生时被攻击为 Java ”换皮”、“套壳”,它能够发展至此吗?

这就是现在这场风暴事实上的凶险走向。

如果把编程语言的自主创新从舆论上限制为”不能依赖任何英文编程语言和生态“,这无疑是为编程语言的国产之路套上了巨大的枷锁,同时也是对公众认识的极大误导。

一旦形成了这种大众的定势思维,后果就是,编程语言领域的玩家门槛提高到了:只有具备开发全套编程语言生态的公司才有资格开发或宣传自己的编程语言。

因为对于人力财力不足,但有志于开拓国产编程语言领域的独立开发者或小公司(就像 JetBrains)来说,因为本身资源有限必须借助现有生态。如果“木兰”不幸成为了”前车之鉴“,宣传时就必须强调说明依赖的英文编程语言,以免被说成瞒骗,而已被误导的公众的第一反应就会是“哦又是另一个木兰“而弃之如敝履。这样一来,此类项目即使能够存活,也很难迅速发展壮大。

而不借用任何现有的编程语言生态环境,完全重塑自己的一套生态,即使强如微软也发展了十数年,何况要从后发追赶的即使是国内的巨头公司呢?这必然也会一路艰难,甚至半途而废。

这,非常非常非常不公平。

我,绝不甘于就这样被套上这个枷锁。

愤作此文,望醒世人。