作者 | Demi Xia
来源 | https://urlify.cn/FzeIne
近日有媒体称,一款面向智能物联网和编程教育的国产编程语言出世,名为木兰。消息一出,引起了开发者社区的讨论。但有人发现,下载的程序包解包后——是个 Python?
随着人机交互频次的日益增长,编程正成为这个时代“第三重要的基础学科”,从 C、C++到 Python、Julia,不同的编程语言因其本身的特性和功能而有着庞大的开发社区。
此外,一旦某个编程语言在一个领域建立了自己的生态系统,那么它的地位几乎很难撼动,如谷歌公司在云计算领域推出的Go语言、苹果公司自行设计的Swift语言、Oracle控制的Java语言标准等等。
日前,有媒体报道称中国科学院计算技术研究所(以下简称中科院计算所)计算机体系结构国家重点实验室表示,由该实验室编译组主导研发的国产编程语言“木兰”(Mulan:Module Unit Language)正式发布,“木兰”定位于面向智能物联应用、采用最新编程语言设计理念和编译技术的程序设计语言,开发团队致力于将其打造为“智能物联时代的C语言”。
报道还称,“木兰”是由编译实验室完全自主设计、开发和实现的编程语言,与之配套的编译器与集成开发工具也完全由团队自主实现,是真正掌握核心技术的编程语言。
目前,木兰语言已可以下载。下载地址:dongshouke.com
报道一出,便引起了开发者们注意,开发者们纷纷前往下载使用和研究,然而解包结果发现,其实这是个 Python 3.7?
对于完全自主设计的“国产编程语言”,大家的期待都非常大,网友@沉迷单车的追风少年 就在第一时间前往官网下载。
下载完成后却发现图标有点不太对劲。
这不明显是pyinstall打包的吗?该网友吐槽到:我发布pyqt的软件都知道换个图标,这么大的项目连图标都不换?
打开之后就是类似python一样的对话框
提供了这么多函数,和python几乎一毛一样啊
试一下反向破译一下,以为会加密,毕竟是一个商用软件,我们自己写pyqt有时候都加密
但是,结果一点加密都没有,直接破解了:
就是python写的啊。
同样在在知乎上也有很多开发者对此进行讨论。
很多开发者发现解包后的木兰语言其实就是建立在 Python 之上,将 Python 构建的环境、包和项目都编译成一个可执行文件。所以似乎木兰只是在顶层做了一个接口,将底层编译、优化等众多工作都交给了原版 Python?
如下所示为 EXE 文件的解包结果(采用 PyInstaller Extractor):
从解包结果可知,「木兰」语言是通过 Pyinstaller 将 Python 文件打包成 EXE 可执行文件。
其实之前我们比较熟悉的文言编程语言,它就非常明确只关注语法和前端,把所有底层操作都留给了 JavaScript 或 Python。
一位开发者从以下三个角度评价了木兰语言:
1. 能否满足实际需求:一门编程需要需要很多特性,使其能够胜任一些场景中的工作。但是目前似乎没有看到木兰语言体现的特性。
2. 是否融入开源社区:不开源的语言很难进步。
3. 是否适合青少年编程:作为教育语言,不像图形符号语言那样直观。而学生学成后在工作中依然需要重新学习编程语言。
针对网友的质疑,“木兰”语言研发团队负责人刘雷针对网友们的质疑做出了正面回应,表示为自己夸大宣传的行为致歉。
刘雷表示,“木兰”编程语言是围绕青少年编程教育,设计开发编程语言、编译器和集成开发环境等产品,而在采访中,自己犯了以下错误:
1. 木兰编程语言主要是用于中小学教育,在介绍中将它扩大到智能物联领域。
2. 木兰语言在8位单片机上的编译器是本团队开发的,在32位单片机上的编译器是基于Python开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。
刘雷表示,为此次“木兰”编程语言在网络上造成的不良影响,表示郑重道歉,对给中科院、中科院计算所带来的不良后果表示诚挚的歉意。