重温初见木兰的那个战场——二零二零年一月「木兰」编程语言风暴亲历记

印象里,那是一段阳光灿烂但漫长的时日。但细看日历,不过区区一周多而已。在记忆被冲淡扭曲太多之前,重温那场战斗。

1 月 16 日 不急

太平洋时间 1 月 15 号下午,刷头条瞄到中国青年报新闻《我国自主开发的编程语言“木兰”正式发布》一文,兴奋不已,想着”难道 2020 年会成为国产编程语言元年么?“,没搜到官网和文档,就在知乎发了问题《「木兰」编程语言有什么特色?》。那是北京时间 16 日早上,与木兰的邂逅是愉悦的。

当天就看到不少回复,有位还找到了官网的可执行文件 ulang-0.2.2.exe 下载,立刻也存了一份,但不知是否正式发布的版本。

等等吧,有什么好急的,坐等大佬前来剖析。

头几个回答中的一个,提到了“python2换壳”。

1 月 17 日 波澜不惊

早上起来,看了眼 qq 群,有人提到了汉芯。回答中开始出现对 exe 的二进制分析,更多的“线索”指向 python。

稍安勿躁,继续做手头其他事,真的假不了。

晚上忍不住试着跑了 exe。

某个回答下有位评论者认识刘雷团队,于是留言请他传话给官方尽快出面澄清。

1 月 18 日 急转直下

看到《刘雷关于“木兰”编程语言的情况说明》。

我的知乎问题上了热榜,回答暴增,画风也开始转变,越来越多人不再关心技术细节。“当事人道歉”和带有“python”字样就足够了,狂欢开始。

真相到底是怎样的?我必须有自己的判断。(太平洋时间 17 日早上 9 点半)继续对可执行文件做探索,试出了函数定义等。

睡前,在 qq 群里呼吁:

关于木兰,欢迎技术讨论。对于宣发的不妥之处,不妨以此为鉴,总结经验教训,而不是冷嘲热讽。

那时的我还不知道,事件早已从知乎溢出,一些媒体人士已在摩拳擦掌了。

1 月 19 日 快,快!

太平洋时间 18 日晚 8 点半,发现一位已将木兰可执行文件逆向为了 python 代码并做了分析。半夜刚过,成功运行了逆向工程,提交了 pr,可以定义函数了,感觉靠谱。

很好,官方即使不开源,我也不用被谣言牵着鼻子走了,继续看源码吧。

一个小时后,看到了中科院计算所发布《关于“木兰”语言问题处理情况的说明》。一句“该产品的开发包中包含了Python开源编译器”,让我如噎在喉。

在 qq 群的第一反应是:

止损。。。这次事件之后,要说“自主”要很谨慎了。而且,为节省开发成本,即使语言设计是原创,实现上往往要借助现成语言的运行时,是不是都会被说成 XX 换皮呢?

接着看到了各色自媒体的报道,睡前留言:

看到临时文件夹里有 python 字样就断定是 python 编译器本体,这样的居然还被各种公众号引用。。。平复下心情休息去先回头试着总结一下,以史为鉴

翌日早起,那位传话者一直没有回应。各种谣言仍在疯传,知乎问题下的回答也越来越 low。这一切似曾相识,那些毫无下限、煽风点火的抖机灵在中文编程相关话题下也常出现。极少数认真做技术分析的回答已被淹没了。

现在可不是总结的时候。必须,尽快发出不同的声音。

1 月 20 日 汉芯也着了道?!

qq 群里听到一些汉芯的内情,历史似乎在重演——抓住小辫子贴上简单标签煽动舆情将项目和主导者一棒打倒。汉芯的标签是“打磨 cpu”、“换 logo”,而木兰是“造假”、“python 换皮、套壳”。

汉芯的技术细节早已无从探究,公开的只有专家组的报告而已。但木兰在官方网站关闭之前,至少被抢救出一个可执行文件。

然而第三方的技术分析此时已经被狂躁的人群抛在了脑后,这个时候继续分析逆向工程已于事无补。

太平洋时间 19 日夜 11 点半,在知乎和头条发布了《写给木兰编程语言研发团队的公开信》。开源吧,现在就开源,至少你们能主动一些!

一小时后的 qq 留言:

作为风波开始就参与的旁观者,发点力所能及的声音。刚看到人民日报转新京报的社论,也许已经晚了。。无论如何,python ast 转换这条技术路线算是有人趟出来了。很多教训值得总结。

在调查水落石出之前,印象中的权威媒体就跟风用“造假”做标题,为什么会这样??现在还能做什么?

1 月 21 日 没消息是好消息

太平洋时间 20 日夜 11 点半,发文《为什么要急着为「木兰」编程语言贴上“造假”的标签?

即使声音微弱,我也要尽力敲打。在这疾风骤雨中,我相信,有些人正密切关注着舆情。无论是谁,他们都远比我更能左右事件的走向。我的声音如果能传到其中任何一位,就是值得的。

中科院的处理还没出,毫无疑问,事件相关人员正在煎熬中。为他们多争取一分钟来做自辩,也好。

1 月 22 日 必须冷静

从我的知乎问题上热榜开始,来自“谷溪”的回答吸引了大部流量,其中只言片语还被各路媒体广为引用。

回答中这句尤为刺眼:

确实是直接用 pyinstaller 把整套 Python 打包了一下就敢自称「自主研发」了。

完全经不起推敲的扯淡,只要迎合了“大众期望”,居然就可以大行其道。虽然针对中文编程的各种黑文已经让我领教过类似操作,但如此近距离地做台下观众还是让我震撼而无法忍受。

太平洋时间 21 日中午,为驳斥类似无稽之谈,头一次尝试了自拍视频。很快意识到,用生疏的渠道被动防御、被拉入抖机灵的狗斗中不仅效果有限,还徒增负担。

冷静果然能使思路清晰。这几天受到的震撼教育结合在此之前的零星感受、当下的芯片困局,让我重新审视编程语言这一隐形软肋。当日晚 7 点,发文《编程语言国产化的关键一战——对肆意污名化“木兰”编程语言说“不”》。

大问题想明白之后,也就放下了无谓的愤懑。下面,公事公办吧。

1 月 23 日 拼了

很早就看到不少知名老牌媒体在中科院出《处理情况的说明》后就迫不及待地上场批判,其中引用的“换皮”、“套壳”等标签,恐怕不少源头就在我知乎问题下的回答中。

这是我第一次亲身体验全国范围的以讹传讹,而这一切都发生在大众对编程语言建设尚处于懵懂状态时,这一时刻多么值得纪念。

于是有了《各大媒体对「木兰」编程语言的不当言论盘点》一文。

知乎十分钟不到就过了审核(太平洋时间
22 日下午两点左右),头条一个多小时。出乎意料的顺利呢。知乎文章发布后,到 qq
群征求了一下意见。反对声中,又是那位第一个提到汉芯的,头一次用私信联系,劝我撤下文章,为我批驳的每一篇新闻报道辩护,而且似乎对新闻行业有所了解(提到编辑人员和标题字数限制等细节)。在当时看来,活脱敌营派来的劝降使者。

没有时间和你纠缠了。

手上的自媒体号还不知能用多久,需要发出尽可能强的声音,争取尽可能多的时间来唤醒理智。

1 月 24 日 猝不及防的尾声

知乎和头条的《不当言论盘点》一文都还在线,阅读量似乎还正常,看起来,也许,有更多时间了么?

出结果前,抓紧每一分钟,以正视听。太平洋时间 23 日中午完成《戳破针对「木兰」编程语言的拙劣谣言》。

知乎倒是很快审过了,但头条审核耗时似乎比上篇更久,似乎感受到了审核者们的天人交战。很意外地收到了从未有过的“被成功弹窗”的优待(号称“已通过手机消息推送给用户,将获得更多阅读”),以为会是爆款文,更意外的,最后阅读量居然连一百都没到,这是后话。

看到了中科院《关于“木兰”语言问题的调查与处理意见》。

五味杂陈。

十分钟,做了决定。

没关系,既然已清楚要做什么,接下来,只是怎么做的问题。现在,不用急了。

当天,武汉封城,紧接着春节放假。全网对木兰的口诛笔伐似乎戛然而止。

太平洋时间 23 日夜,「MulanRevive」(木兰编程语言重生)项目启动

1 月 25 日 过年

该吃中饭了。

去往附近的面店,在二人桌边坐下,问限量特餐鸭腿面还有么,果然还有。用心吃面,结账,推门而出迎面的阳光灿烂。北京时间已是 25 日凌晨,正是春节。

木兰,替你向各位拜个年吧

既然有缘,且许在下与你行一程。


吴烜,投笔于太平洋时间 2020 年 10 月 11 日 半夜

全部专栏