当前位置: 首页 > 科技观察

号称掌握核心技术,实则给Python换皮?国产编程语言木兰在社区引起热议

时间:2023-03-19 14:55:53 科技观察

近日,有媒体报道,一款面向智能物联网和编程教育的国产编程语言诞生,取名木兰。消息一出,在开发者社区引起了讨论。但是有人发现,下载的包解压后——是Python吗?编程语言是人们与计算机进行交互的重要工具。从C、C++到Python、Julia,不同的编程语言由于各自的特性和功能而拥有庞大的开发社区。近日,国内报道称,中国科学院计算技术研究所(中国科学院计算技术研究所)计算机体系结构国家重点实验室编译组牵头研发了一种新的编程语言:木兰(模块单元语言)。  根据相关报道,该编程语言完全由编译团队自主设计、开发和实现。配套的编译器和集成开发工具也完全由团队自主实现,是真正掌握核心技术的编程语言。但是机器之心在中科院计算技术研究所的官方网站上并没有找到相关信息。  报告一出,就引起了开发者社区的关注,很多开发者都在使用和研究。解包后发现,这居然是Python3.7?  目前,木兰语已经可以下载了。  下载地址:http://www.dongshouke.com/download/ulang-0.2.2.exe  《开启编程教育,面向物联网智能》  根据发布,该编??程语言用于智能物联网的未来。  在智能物联网应用领域,没有专门的编程语言。在现有的语言体系中进行智能化应用开发,需要多名工程师跨多种语言实现,开发效率低下。“木兰”致力于打造物联网智能执行平台,为书面应用提供执行环境。  在物联网领域,目前还没有专门的编程语言。在现有的物联网应用开发过程中,需要多个工程师以跨语言的方式协作实现应用,效率相对较低。以提升效率、构建物联网智能执行平台为目的,木兰应运而生。  不过,由于这门语言的生态还不成熟,木兰将更多地用于青少年编程教育,在生态培育初期就开始培育生态。据悉,基于《花木兰》自主研发的编程软件、人工智能教材、教学设备已在中小学和幼儿园投入使用。  官网显示,“木兰”是中科智信自主研发的具有中国自主知识产权的人工智能教育编程语言。由于其目的主要是教育,所以在设计上有意回避编程语言的一些复杂特性,比如编程环境调试等,让学生在学习编程时不至于纠结于细节。开发团队更希望把《花木兰》做到易懂、易学、易读、易维护。同时该语言目前支持跨平台,兼容Android、UNIX、Windows。  单从软件的角度来看,就目前的编程教育市场而言,类似的编程软件不在少数,图形化编程也被用来降低教育门槛。因此,要说本质上的不同,我们还是要将目光放在编程语言“木兰”身上。  木兰语是什么?打开木兰语言环境后,首先呈现的是一个类似命令行的编程环境,我们会发现它的很多功能与Python是一致的。在编程界面,输入help可以看到一些相关信息,但是我们没有找到更多的编程语言文档。  总的来说,木兰语除了基本的数据结构和函数之外,还增加了一些基本的数学运算,比如取对数、指数、三角函数等,也许它们更适合一些基础教育。欢迎使用toulang'sREPL..Type'help'fororeinformations.a=['hello','world']print(a)[hello,world]>print(typeof(a))list>print(cos(90))-0.4480736161291701>print(cos(45))0.5253219888177297>print(cos(0))1.0>  从解包到热议  在知乎上,很多开发者发现解包后的木兰语言其实是建立在Python之上的,Python构建的环境、包和项目都被编译成一个可执行文件。所以看起来木兰只是在顶层做了一个接口,把底层的编译优化等很多工作都交给了原来的Python?  以下是EXE文件的解包结果(使用PyInstallerExtractor):从解包结果我们可以知道,《花木兰》语言是使用Pyinstaller将Python文件打包成一个EXE可执行文件。  其实我们之前比较熟悉的文言文编程语言,很明显就是只关注语法和前端,把底层的操作全部交给JavaScript或者Python。如果只考虑给孩子编程,把Python环境打包成一个可运行的文件,那这样可能还好。如果我们要打造一门具有自主产权的编程语言,那么要考虑的事情就太多了。语言有什么特点,如何优化编译,如何保证运行速度等等都是难题。  对于文言编程开源项目,我们认为是一个很好的尝试,可以在业余时间写一些很酷的文言代码。但是这样的语言不能用于生产或者研究环境,只能作为一个小的娱乐项目。如果要针对特定??领域创建一门新语言,底层的优化和设计必须分开进行。只有这样的产品,才能称得上是独一无二的独立编程语言。  开发者社区:槽点多一点  一位开发者从以下三个角度对木兰语言进行了评价:工作。不过,木兰语的特点至今似乎还没有看到。是否融入开源社区:不开源的语言很难有进步。是否适合青少年编程:作为教育语言,不如图形符号语言直观。学生完成学业后,在工作中还需要重新学习编程语言。  更多相关讨论请查看链接:https://www.zhihu.com/question/366509495  其他很多开发者也发表了自己的看法,无论是语言本身的设计还是编程外设的语言。同时从大家的评论中可以看出,我们希望对编程语言、系统框架等底层架构和工具做出真正的贡献。这些贡献可能需要很长时间才能解决,需要大量的工程来优化,但这是我们应该努力突破的。