华为的“仓颉”能否挑战谷歌的“Dart”?

发表时间: 2020-09-25 14:16


异步导读


华为技术有限公司申请注册“仓颉语言”的商标,国际分类涉及“科学仪器”、“网站服务”,传华为即将发布国产自主编程语言——仓颉。


苹果有Swift、谷歌有Dart、微软有 TypeScript......


华为有鸿蒙OS、 HMS服务、麒麟芯片和方舟编译器,如今更是被曝要自研编程语言。华为的这一系列举动,都代表着国人奋力发展国产计算机技术的拼搏和决心。


自主编程语言 仓颉


近期大家应该都或多或少接触到了这个消息,9月初,微博博主“IT工程师”爆料华为正在研发新的自主编程语言仓颉,且领头人是南京大学的计算机科学与技术系博士生导师——冯新宇,之后,此话题热度持续攀登,目前仅知乎相关浏览量就已经近10万。


图片来源:微博


在微博爆出消息后,大家迅速对这个消息进行了查证,从企查查上确实可以看到华为公司申请注册“仓颉语言”的商标,国际分类为第 42 类;此外,早在今年3月,华为还申请了数条“华为仓颉”的商标,国际分类为第 9 类。在商标申请中,国际分类第 9 类中包含计算机及手机相关的软件程序商品,而第 42 类则包含计算机编程服务等,目前商标状态均显示为“注册申请中”。


图片来源:企查查


虽然目前事情还没有确定,但知乎等多平台都有人表示,华为研发新的自主编程语言在圈里早已不是什么秘密。


图片来源:知乎


早前,在谷歌对华为封锁GMS的时候,华为就以一手HMS巧妙化解,如今HMS全球开发者已经达到180万,华为应用市场APP Galley全球活跃用户也达到了4.9亿,应用分发量达到2610亿,成为全球第三的应用商店。


加上去年华为在开源平台上放出了方舟编译器的源代码(这是华为首个完全自主研发的编译器平台)和鸿蒙OS的横空出世,人们就更加坚定地认为华为有能力去做技术研发和科技创新。


“仓颉”是中国汉字的创造者,被称为“造字圣人”,华为以此为自研编程语言命名,显然是对这个编程语言寄予了厚望。而且如果真是冯新宇教授领头,那确实让人觉得多了几分信服力。


冯新宇

图片来源:中国科学技术大学官网


冯新宇教授是谁?他主要从事程序验证、并发理论、程序设计语言理论方面的研究,先后在中科大和南京大学就任教授,是我国高校编程语言方向的专家。


2019年,冯新宇教授还带领团队获得了PLDI杰出论文奖。知乎有匿名用户表示,冯新宇教授可能是在大陆高校就职发POPL和PL顶会最多的人之一。


鸿蒙OS、 HMS服务、麒麟芯片、方舟编译器和鸿蒙OS,加上如今的仓颉、鲲鹏、巴龙、泰山、凌霄、昇腾……还有已注册但未使用的朱雀、腾蛇、青牛、青玄、朱雀、当康、玄机、白虎、灵豸、饕餮……很多人笑称华为这是要把一本《山海经》都拿下的节奏。


然而,在这之中,其实我们更应该看到华为对技术创新的重视。


其实中国开发编程语言也是有足够能力的,只不过在如今的商业环境里,很多大公司都是倾向于使用已经开源的编程语言,因为更加成熟,也能在海外市场更好地应用,没有人愿意去做自研这样“出力不讨好”的事情。


华为因为被不公平对待,体会到拥有核心技术的重要性,愿意出钱出力自主研发核心技术,其实也可以理解。


因为其实很多我们耳熟能详的大公司,比如微软、谷歌、苹果都是拥有自己自主研发的编程语言的。


那些大公司和他们自主研发的编程语言


首先拿大家最为熟悉的Swift来说吧,Swift是苹果公司在2014年全球开发者大会(WWDC)上推出的。



作为一种新的编程语言,Swift结合了C和Objective-C的优点,并且不受C兼容性的限制,可用于编写IOS和MacOS应用。



Swift采用安全的编程模式并添加了很多新特性,这使编程更简单、更灵活、也更有趣。且Swift是基于成熟又倍受喜爱的Cocoa和Cocoa Touch框架的,很多人都认为,Swift重新定义了软件开发。


还有Dart,Dart是一个被用于Web、服务器、移动应用和物联网等领域的开发的计算机编程语言,它的语法类似C语言,可以转译为JavaScript,支持接口(interfaces)、混入(mixins)、抽象类(abstract classes)、具体化泛型(reified generics)、可选类型(optional typing)和声音类型系统(sound type system)——而它是由谷歌研发的。



2011年10月,在丹麦奥尔胡斯举行的GOTO大会上,谷歌首次带着Dart正式亮相,之后直到2013年11月14日Dart 1.0才正式发布。


同年,谷歌Chromium团队开始在基于Chrome App的开源开发环境中工作,该开发环境具有可重用的GUI小部件库,代号为Spark,后来又被更名为Chrome Dev Editor。它就是建在Dart中,并包含由Polymer供电的Spark。


2015年,Dart团队还创建了Dart Pad,这是一个完全在线的编辑器,用户可以从中进行Dart 应用程序编程接口(API)的试验,并运行Dart代码。Dart Pad使Dart的使用变得更加简单了,而且它还提供语法高亮显示、代码分析、代码完成、文档以及HTML和CSS编辑等功能。



有了Dart,你可用的网页脚本将不只是Java专属。在使用Chromium的浏览器中,你可以直接运行Dart程序,而且有可靠的虚拟机帮助你提升程序性能和安全性。即使你的浏览器不支持Dart语言,Dart也可以被转换为Java代码,也不必再担心兼容上的问题。


最后来说说老大哥微软,2012年10月,微软发布了首个公开版本的TypeScript;2013年6月19日,在经历了一个预览版之后,微软发布了正式版TypeScript。



这是一种开源、跨平台的编程语言,专为大型应用程序的开发而设计,并可以转换为JavaScript。它的作者安德斯·海尔斯伯格,是C#的首席架构师。


由于TypeScript是JavaScript的超集,因此现有的JavaScript程序也是有效的TypeScript程序。



2016年9月22日,微软发布了TypeScript 2.0。它引入了几个功能,其中包括使程序员有选择地方止为变量分配null值的功能——被称为价值十亿美元的功能:


Tony Hoare于1965年发明了空引用(null reference)作为ALGOL W语言的一部分,在2009年,Hoare在论文中将自己的这个发明描述为“十亿美元的错误”:


我称之为我的十亿美元错误。就是我在1965年发明的空引用。那时,我正在设计第一个全面的类型系统,用于面向对象语言(ALGOL W)的引用。我的目标是确保对引用的所有使用都绝对安全,并由编译器自动执行检查。但是我无法抗拒引入空引用的诱惑,仅仅是因为它是如此容易实现。这导致了无数的错误,漏洞和系统崩溃,在最近四十年中可能造成十亿美元的痛苦和破坏。


毫无疑问,不管是以上哪个语言,都给他们的研发公司带来了巨额的利益,同时也推动了科技的进步。


所以,如果我们能国产编程语言或是操作系统,都是具有相当大的意义的,尤其是在如今日益严峻的科技环境下,我们更应该意识到自主创新的重要性。期望有一天,国人能在编程语言、系统、芯片设计制造等众多的科技上游领域都拥有一席之地。


资料来源:

https://en.wikipedia.org/wiki/Dart_(programming_language)

https://en.wikipedia.org/wiki/TypeScript

https://en.wikipedia.org/wiki/Swift_(programming_language)


图书推荐


自制编程语言

作者:郑钢

广告

自制编程语言 基于C语言(异步图书出品)

作者:郑钢

京东


自制编程语言 基于C语言(异步图书出品)
¥40.5
购买


内容简介:

本书全面从脚本语言和虚拟机介绍开始,讲解了词法分析的实现、一些底层数据结构的实现、符号表及类的结构符号表,常量存储,局部变量,模块变量,方法存储、虚拟机原理、运行时栈实现、编译的实现、语法分析和语法制导自顶向下算符优先构造规则、调试、查看指令流、查看运行时栈、给类添加更多的方法、垃圾回收实现、添加命令行支持命令行接口。


OCaml语言编程基础教程

作者:陈钢 张静

OCaml语言编程基础教程(异步图书出品)
¥35.55
购买


内容简介:

本书是OCaml语言程序设计基础性入门书。讲解了函数式程序设计的基础知识,包括函数式控制结构和函数式数据结构,类型推导的基本原理,OCaml语言对命令式编程的支持,基于模块和函子的模块化程序设计,OCaml中的面向对象程序设计概念和技术。