华为被曝自研编程语言“仓颉”,由南大教授冯新宇领衔近日,华为将自研编程语言的消息突然在网络上走红。据微博博主@IT工程爆料,华为正在研发全新的自主编程语言仓颉,由南京大学计算机科学与技术系博士生导师冯新宇领衔。△图源微博@IT工程,此事尚未得到官方授权证实,但据知乎@nonymous用户透露,华为有意自研编程语言,这在业界早已是公开的秘密。“华为自研编程语言不是秘密。”“编译器实验室早已存在。”事实上,华为在编译器和编程语言方面早就有所动作。方舟编译器是华为在编译器方向的研究成果之一。2019年8月31日,华为在开源平台上发布了方舟编译器的源代码。这是华为首个完全自主研发的编译平台。知乎@护猫的胡斯奇表示,华为2012实验室中央软件研究院下有一个编译器和编程语言实验室,已经存在多年。从拉勾网的招聘信息可以看出,华为2012实验室中央软件研究院下确实有一个编译器实验室&芯片软件协同设计部,“一直从事编译器与芯片软件协同设计领域的工作”超过10年。”△图源拉勾网那么,为什么要进行这方面的研究呢?知乎@护猫的胡斯奇表示,在去年的一次交流中,华为消费者BG软件部总裁王成录博士提到了华为为什么要建这个实验室,做编译器。简单来说,华为很早以前就发现在核心网设备上编译可以大大提升性能(通信设备也有性能需求),然后开始有小规模的团队来编译。也就是说,华为在做出方舟编译器之前,已经做了很多年编译相关的工作。在做手机的过程中,华为想把手机做的像iPhone一样流畅,但是遇到了很多困难,其中之一就是Android的虚拟机机制。于是他们做出了一个非常重要的决定——(研发)方舟编译器。其实这不仅仅是针对手机平台,通讯设备等,统一华为所有的编译工作,全面提升性能。但是,方舟编译器面临Java的反射机制等问题,需要解决。因此,对于华为将自研编程语言的消息,知乎@护猫的胡斯奇推测,自研编程语言是迟早要走的一步。“相关领域专家加盟”此外,有知乎网友爆料称,华为近期在招聘相关领域人才方面也非常大手笔。2014年,华为在美国的研究实验室聘请了吴鹏。她之前在IBM工作了十多年。她是并行计算语言和编译器领域的专家。曾获得2012年PACT最佳论文奖。根据吴鹏在LinkedIn上的个人资料,她于2014年12月加入华为编译器编程技术实验室担任高级总监,2019年5月加入华为美国子公司Futurewei担任技术总监,负责编程语言设计、编译器框架的设计。△图源LinkedIn而就在今年,华为在爱丁堡大学成立了ProgrammingLanguagesLab(编程语言实验室),并找来了DanR.Ghica担任主任。目前,该实验室已面向出生的编程语言工程师招聘博士生实习生。△来源:爱丁堡大学官网从GoogleScholar来看,DanR.Ghica的主要研究方向是程序设计语言,h-index为22,论文被引用千余次。△来源:GoogleScholar但是这次传闻中负责“仓颉”的教授冯新宇是谁呢?冯新宇是谁?据南京大学官网介绍,冯新宇教授毕业于南京大学,获得计算机科学学士和硕士学位,后攻读博士学位。耶鲁大学计算机科学专业。△图源南京大学官网冯新宇教授主要从事程序验证、并发理论、程序设计语言理论方面的研究。是我国高校程序语言方向的专家。2010年至2017年期间,冯新宇教授在中国科学技术大学任教授,18年后来到南京大学。现任南京大学教授,带领团队获得2019年PLDI优秀论文奖。知乎@nonymousUser表示,冯新宇??教授可能是(其中)高校中发表POPL和PL会议最多的人中国大陆。此外,冯新宇的导师、中科大少年班校友邵中教授毕业于美国普林斯顿大学,硕士、博士,对编程语言和编译有着深刻的理解系统。△来源:中国科学技术大学官网邵中教授曾为SML语言开发编译器SML/NJ,并在“有证可信软件”领域进行了深入研究。发表POPL论文5篇,也是中国第一位发表论文的学者。谷歌和苹果已经开发了自己的编程语言。事实上,谷歌和苹果都推出了自己的编程语言。谷歌在2009年推出了Go语言,这种语言设计的目的就是跑得快,编译好,也更容易写。这也让Go语言的语法更加受限,但它确实在“运行速度”、“编译速度”和“易学”之间找到了平衡点,成为了目前比较流行的编程语言之一.Apple也在2014年的WWDC上推出了自己的Swift语言,凭借类似Python的易用性和强大的运行效率,一度成为当年最流行的TOP15编程语言之一。对于尚未发布的“仓颉”,不少网友纷纷发表了对华为自研编程语言“仓颉”的看法。1.更稳定,开源几乎是必须的。其实,我国以前并不是没有“自主开发的编程语言”。今年1月,中科院计算所推出了基于Python的编程语言“木兰”(μlang)。然而,“花木兰”项目的负责人刘磊却用“完全独立的设计、开发和实现”来形容这门编程语言。中科院官员随后回应称,刘磊的“夸大宣传”是“虚假陈述”,这种语言已经逐渐从公众视野中消失。△《花木兰》猜号套路,图源知乎@吴烜《花木兰》有先例。对于这次华为的“仓颉”,知乎@吴烜认为国产编程语言应该更加稳定,开源几乎是必须的。吸取木兰的教训,尽快开源,尽量避免造谣。如果目标是通用的编程语言,那么在开放性上一定要和目前市面上的英文编程语言看齐。开源几乎是必须的。在这个特殊时期,一定要放到显微镜下看,还是早点准备好。2、应该不只是为了解决这次爆出的“自研”消息。知乎@DBinary认为,“自研”不应该成为重点,“仓颉”应该拿出更有说服力的价值表达。一个语言要发展,先不说生态,先说说这个语言诞生是为了解决什么问题。而这个叫仓颉的语言,难道只是为了解决“自研”?如果单单拿自研的编程语言来说,那还真不是一个很高级的东西。你看,我自己写了一个叫StoryScript的语言,从词法分析器、编译器、虚拟机、调试器开始,一应俱全。这种语言,除了我,应该没有其他人使用,不是因为语言高人一等,而是因为没有人喜欢它。3.不要使用“Char”作为英文名称。当然,如果只是说事实的话,知乎@苏远表示爆料的《仓颉》英文名Char其实并不是一个好的选择。希望正式发布的时候能选到更好的。姓名。Char在计算机中是字符的意思,几乎所有的编程语言都有Char的概念。如果一个新的语言名称与一个通用的计算机术语同名,那么它在内容搜索方面就先天处于劣势。想要查找仓颉信息的开发者,会被一大堆无关紧要的信息塞满。按照权重排名,很有可能前五页没有仓颉语的结果。
