首先大概的看一下中文编码:
你以为会写中文就会编程吗?这就像你以为会写汉字就会写出好文章一样。编程是和机器沟通,因此要用机器的语言而不是人类的语言。最早的程序就是0和1的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示0和1。后来发现0和1的二进制太麻烦了,就把0和1压缩一下,用16进制表示,比如数字10,用二进制表示是1010,用16进制表示就是0A,这样表达起来就更简洁,但是输入电脑后,仍然要转换为二进制电脑才能明白。
后来,科学家们用简单的英文单词表示某些功能,比如加法,就用add表示,减法就用dec表示。程序员输入add或dec后,系统会转换为对应的算法。就这样不断的给不同的代码段起名字。编程语言就是从数字编码不断压缩提高层次,最后形成了当今的各种风格的编程语言。为什么码农会讨厌中文编程?我用最流行的易语言说明。
所谓全中文的易语言,其实就是把Visual Basic语言中每个英文单词换成了对应的中文词,其他都不变。比如Visual Basic的代码是这样:
if True thenPrint "OK"
endif
换成了易语言,就是这样了:
如果 真 那么打印 "OK"
结束如果
任何人都能看出来,英文写的程序更简单清晰。
其实从语言学的角度来说,英文是线性的一维语言,而中文是平面的二维语言。而程序恰恰是线性的一维的。也就是说,线性的英文正好能契合线性的程序。所以,中文并不适合现有的编程方式。然而,未来的发展可能超出你的想象。未来可能会有多维度的量子计算,也许二维的中文反而会比一维的英文更适合。
程序员对比过中文编程和英文编程就会明白,中文编程反而会提高门槛。因为编程的核心根本就不是什么语言,而是程序化思维方式。最简单的并不是英文编程,而是数学符号编程,极度抽象,普通人很难理解,但代码量特别少。
补充一句,其实现代的语言比如Java,都支持Unicode,也就是说可以用中文甚至世界其他语言做变量名和函数名,你可以试试看,这样看起来就基本上就相当于是中文编程了,对比一下英文编程,你就会知道哪个更好了。
电脑能识别的只是0和1的二进制而已,那么,如果按中文的角度来考虑,那么应该从核心开始就把二进制转换为8进制,然后用八卦来表示,这样从底层构造纯中文的计算机。八卦两两组合,演化为64卦,就能表达宇宙万物。这比老外的英文编程语言不知道高级多少倍。而且,满眼全是中文,老外就算认识中文字也看不懂意思,呵呵。
原文发布时间为:2018-06-28
本文作者:代码湾
本文来自云栖社区合作伙伴“数据与算法之美”,了解相关信息可以关注“数据与算法之美”。