仓颉编程语言是中文吗 仓颉编程入门基础知识

华为又给我们带来了惊喜 。他给鸿蒙OS专属打造的自研编程语言,在深闺里躺了小半年,这千呼万唤始出来,开始了面向部分开发者的内测 。这门自打去年十月份就预告的编程语言取名“仓颉” 。”仓颉”之名源自于咱们方块字、象形字的创造者“仓颉” 。也正因为如此,许多人单单从这“仓颉”之名就推测这门编程语言,很有可能是纯汉字纯中文的编程,进而推测华为的方舟编译器也会基于中文字符编译 。会不会这样呢?

仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
中文编程的依据
其实呢,我自己从感情上就特别地赞同这个猜测 。因为如果是纯中文纯汉字编程的话,会大大地降低这个编程的入门门槛儿 。不知道大家是否写过代码?写过的朋友请扣1 。中文编程对这部分朋友绝对是个好消息 。不仅如此,纯中文编程的话,有可能吸引各行各业的精英都来给仓颉贡献代码 。比如许多人研究古代典籍,研究易经等等,这些高人都就来了 。大概想象一下,将会是怎样的一番盛况 。然而,这个猜测也只是基于这么一点,就是“仓颉”这个名字 。
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
理性上的初步判断
当从理性上来看,概率可能会特别低,甚至说可以可能低于10%(“仓颉”名字一项证据支撑打10分/100分) 。“仓颉编程“大概率会基于英文字符 。因为咱们现在看到的大部分关于“仓颉”这门语言的作品和报道,其后面的背景,后面的这些代码都源自于另外一门编程语言:易语言 。易语言虽然也是这个中文的编程,但是它不大适合于大生产环境,许多人在私底下拿它来做几个小的实验的项目 。这是第一点 。
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
第二点,现在鸿蒙刚刚处于发展阶段,但它的目标却是星辰大海,它的生态越往上发展,就必然要面向全球的开发者 。倘若是中文的话,这门槛就高了,把潜在的国外的开发者拒之门外 。因此从这个角度来看,我觉得应该大概率还是会选择英文字符 。
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
递归下的效率与速度
第三点至关重要,无论是对华为还是对鸿蒙来说最重要的是什么?是运行效率 。
华为计划明年要出的麒麟9010(双层芯片),如果在性能上比高通骁龙差一点的话,就会对鸿蒙系统的运行效率要求特别高 。然而,如果是中文,它的运行效率会降低 。咱们中文方块字占两个字符,而英文字母只占一个字符 。计算机处理单个汉字所耗费的时间是英文字符的两倍 。极端情况下,你递归一遍就是2倍,递归执行2次就是4倍,而递归执行3次就是8倍,将会以2的指数级骤增 。
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
我们直观理解一下,递归88轮的2的88次是什么概念呢?根据大爆炸理论估算的宇宙的半径是460亿光年,2^88米就是460亿光年的距离 。也就是说当遇到递归的时候,你往前才迈出去一米,人家就已经跑到了宇宙的边缘 。这才88次递归,在某些对递归有限制的语言比如python中,默认最大值是3000次,而函数式编程语言则对此没有限制 。
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
仓颉编程语言是中文吗 仓颉编程入门基础知识

文章插图
编程功夫在语言之外
当然以上是极端情况 。可以做许多”编译“上的优化,甚至不允许使用递归 。而当咱们聊到”编译“的时候,就涉及到一个问题,那就是只有”C语言家族“才有编译 。咱们完全不必去执着于中文或者汉字 。因为仓颉这门编程语言必然是以C语言或者C++写的,流行的语言比如Java,python,JavaScript都是如此 。再往下一层,C语言底层的汇编语言也是英文字符 。就连芯片的指令集也是英文字符 。比如麒麟芯片的Arm架构,它的指令集就是英文字符 。因此,咱们不必去纠结于是不是中文 。

推荐阅读