换皮都换不利索?扒一扒中科院“自主研发”的编程语言

新浪科技

发布时间:01-1908:52

来源:创事记

欢迎关注“创事记”微信订阅号:sinachuangshiji

文/谷溪

来源:古老湿(ID:gulaoshi_ops)

1

2020年1月15日,中科院计算所发布了一款“完全自主设计、开发和实现的编程语言”,还配套了彻底自主实现的编译器和集成开发工具,是“真正掌握核心技术的编程语言”——木兰编程语言

不过当木兰发布以后,大家发现,之前新闻稿中所说的“编程语言+编译器+集成开发工具+跨平台”软件体系,缩水成了一个仅能在 Windows 平台上运行交互 shell 的 exe 可执行文件。

这是什么概念?

差不多可以理解为,中科院向开发者们承诺了满汉全席,最后在万众瞩目之下,上了一盘炒鸡蛋。

你以为现在该喷中科院计算所的这盘炒鸡蛋“货不对版”了?

呵呵,故事才刚刚开始。

2

我通过中科智芯(中科院计算所企业)网站(http://www.dongshouke.com/)下载的这个可执行文件,图标长成这样:

作为一个使用过 PyQt+PyInstaller 的 Python 工程师,我在看到这个图标的一瞬间就被中科院计算所的“工匠精神”雷住了。

这个图标,是用PyInstaller打包时候自带的默认图标啊!

也就是说,这个exe可执行文件,是用PyInstaller打包出来,而且工程师懒到连图标都没换。当然,可以顺便确定,这个文件的生产流程,基本上就是先用Python写、然后用PyInstaller打包成exe的。

说好的彻底自主研发的编程语言呢?说好的彻底自主实现的编译器?咋回事,转了一圈发现,怎么还在用早在1991年就问世的Python?

同行十二年,不知“木兰”是Python?

(目前木兰在中科智芯官网下载地址已经被404,但迅雷还有缓存,将下载地址http://www.dongshouke.com/download/ulang-0.2.2.exe 复制到迅雷中,即可成功下载,有兴趣的小伙伴可以自己尝试一下)

3

事情逐渐变得有趣起来了。

我们既然已经知道“木兰”是用PyInstaller打包的,当然也就有解包的方法——PyInstallerExtractor。

去SourceForge网站下载一个名为pyinstallerextractor.py的脚本,之后在命令行中执行pythonpyinstallerextractor.pyulang-0.2.2.exe(如果脚本与木兰不在同一文件夹中,记得补全exe文件路径),就可以将木兰的源文件ulang-0.2.2.exe解包成为一个文件夹,便于我们一探究竟。

通过PyInstallerExtractor,其实已经可以看出,木兰用的是Python3.7版本了,没有加密,没有换图标……我们不着急,继续向下扒。

解包后,可以很直观的看到木兰内部长这样:

现在已经可以基本可以确定,这就是Python了。

我们再深入进去,看看目录下面这个奇怪的PYZ-00.pyz_extracted文件夹里面是些什么东西。

这些后缀为.pyc的文件,是Python程序的字节码文件。文件夹中的这些Python程序,都是Python的标准库(就是Python语言自带的一些实用功能)。把它们存放在这里,显然是因为木兰会在这里统一调用Python3.7的内部函数和接口。

这基本就是石锤了:

中科院计算所的“纯自主研发”的木兰编程语言,其实就是把Python3.7这门全球最流行的开源编程语言打了个包、包装成一个exe可执行文件,还忘了换图标……

如果你要问技术含量有多少,大概等于我买了个iPhone11然后包上了一张废报纸就号称这是彻底自主研发的古老湿100S智能手机、最后还毫无工匠精神的忘了画上我自己的Logo。

换皮能有多少技术含量?况且还换成这个样子?这是欺负码农眼瞎吗?

其他夸下的海口,例如跨平台之类,瞬间就可以理解了:Python本身就是一门跨平台语言,既然“木兰”只是换皮版Python,那么当然具备Python的一切特性。

我还帮中科院想好了一句广告词——“彻底兼容Python生态环境”,一下子就有走出国门冲向世界的潜力了,岂不美哉?

4

扒到这里,“木兰”的真身已经曝光在阳光下了。

但是,还有多少个虚假的“自主研发”项目仍然隐藏在黑暗中?

2002年,上海交通大学微电子学院院长陈进从美国买来10片MOTO-freesca56800芯片,找来几个民工将芯片表面的MOTO等字样全部用砂纸磨掉,然后加上汉芯的LOGO,骗取了高达上亿元的科研基金,成为2000年后中国最著名的学术造假案件。

2004年,号称“自主研发”和“自主知识产权”的国产服务器操作系统“麒麟”正式对外公布,随后遭到质疑,相关报告显示“麒麟”操作系统中至少有60%的代码来自于FreeBSD5.3,并且二者在函数命名上的相似度高达99.45%。

2018年,号称“世界第五颗也是唯一一颗属于中国人自己的浏览器内核”的红芯浏览器被曝光使用Blink内核,整个浏览器与Chrome浏览器严重雷同,就是一个“Chrome套壳浏览器”,与其宣称的“自主研发”南辕北辙。

……

像这样的IT闹剧,在中国还有无数,打着“自主研发”的幌子,戴着“爱国无罪”的帽子,肥的是谁的肚皮?伤的又是谁的钱财

软件工程行业的游戏规则极其简单:好的代码,全世界都会用,但大家必须遵守原作者的要求(例如不同的软件License对使用者有不同的限制),绝不能用了人家代码还说这是你“自主研发”的“自主知识产权”。这就不叫“共享精神”了,这叫“偷”。

Linux操作系统作者Linus有一句名言:Talk is Cheap,show me the code.

那些至今只敢嘴上厉害、却一再延迟公开源代码的“自主研发”产品,能不能把代码放到聚光灯下,证明你们并不是另一出“爱国”的“换皮”闹剧呢?

返回顶部