中国文化博大精深,我们常常把对现代问题的疑惑放置于某些古老知识的框架中,试图从中寻求解答。例如,我们试图用中医去解读西医,用三国演义来推演现代战争,用儒家道学来看待政治格局。

在这些尝试中,最有趣的,我认为莫过于许多人对于「中文编程」的执念。

你可能很难想象,那些充满着神秘符号和花花绿绿字母的程序代码,居然可以用中文来写,事实上,中文编程并不是一个新鲜事物,早在十多年前,中文编程的旋风就已刮起,并且比后来的任何时候都更加猛烈。

在当时,引领这股旋风的,就是易语言。

易语言的编程语言是中文,而且怎么说呢,中文的非常简单粗暴,例如其它编程语言中的if,在易语言中就成了「如果」,在易语言里面写代码,写出来是这样的:

对代码讳莫如深的外行人看见这个会露出会心的微笑,而不像看C++代码那样皱起眉头,但是几秒钟后,他们的笑容就会凝固:虽然每个字都认识,但是这一堆东西写了啥,脑子里一片空白。这样的情况也会发生在拥有多年经验的熟练开发者身上,由于中文笔画繁多,易语言使用中文书写的程序结构十分难以辨认,任何人一眼看去,都有一种被文字糊了一脸的感觉。

例如一个简单的冒泡算法,易语言写出来是这样的:

而用python写同样的一段代码,看上去就干爽了很多:

易语言几乎是名声最不好的编程语言。一方面的原因是,百分之八十以上的低端外挂和病毒都是由易语言写的,另一方面的原因则是,使用易语言的开发者很多都文化程度不高(无法阅读英文技术文档),缺乏计算机基本知识和算法功底,在程序员鄙视链里,属于最底端的存在。

我可以肯定的说,没有任何的大中型项目在使用易语言,也不会有商业公司使用易语言,不过,这也并不是易语言的使命所在——它是很多人编程的开端:基于对编程的兴趣,从学习易语言开始,然后转到主流的开发语言上,这是很多人的成长路径。我小时候也会喝那种五毛钱的袋装可乐,它味道奇怪,糖精的味道甜的发涩,但谁能说它是童年可以或缺的呢。

值得一提的是,易语言是唯一到今天仍然有大量的使用者的中文开发语言,他们大都是刚入编程这行的新人,或者靠这门手艺吃饭的病毒木马外挂开发者。

相对于简单粗暴的『翻译式』中文编程,另外一些中文编程语言就显得文雅一些,例如 Haifu,在Haifu语言中,阴和阳代表着计算机语言中的true和false,运算符也非常特殊,加减乘除变成了「生克怕爱」,例如计算5+3,在Haifu中就得写作「5 生 3」,相应的,5-3写作「5克3」,这两个其实还好理解,但用「5 怕 3」来替代5除以3,「5爱3」来替代5乘以3,就令人不得不惊叹于作者的脑洞了。

如果说,Haifu用阴阳五行来搞编程,那么,用古诗词来搞代码也不是不可能,事实上,确实有这种语言。

台湾程序员唐风在2002年发布了一个基于perl的中文模组,叫做PerlYuYan,用它来写代码,是这样的:

用籌兮用嚴 井涸兮無礙。
印曰最高矣 又道數然哉。
截起吾純風 賦小入大合。
習予吾陣地 並二至純風。
當起段賦取 加陣地合始。
陣地賦篩始 繫繫此雜段。
終陣地兮印 正道次標哉。
輸空接段點 列終註泰來。

这段程序的意思是,输入一个整数,输出所有不大于这个整数的所有质数。虽然其他语言2,3行就能解决,但用这种语言写出来,却多了一种屈原的感觉,让人实在仍不住多吃一个粽子。

中文编程语言有许多奇怪的名字,但我觉得最让人有立正敬礼冲动的是这个语言了:习语言。在某个政治事件后,习语言改名成了曦语言。如果说易语言是中文的VB的话,那么习语言就是中文的C语言了。习语言的特点是,家族庞大,而且还大都姓习,例如:

  • 习语言:中文C语言编程系统
  • 习佳佳:中文C++开发伴侣
  • 习佳娃:中文Java编程的利器
  • 习丽妞:linux系统下的中文编程系统
  • 习姐:习语言解释版本
  • 习51:51单片机中文开发伴侣
  • 中汇:X86中文汇编
  • 中文构建工具(中文版的make工具)

中国文化实在有太多东西可以发掘了,除了阴阳五行和古诗词外,周易也被人盯上了,出生于1937年,被誉为中文电脑之父的朱邦复就设计了一款名为「中文培基」的语言,它的写法是这样:

  • 10 卜=0
  • 20 入 水, 火
  • 30 從 日 = 水 到 火
  • 40 卜 = 卜+對數(日)
  • 50 下一 日
  • 60 印 卜

翻译一下就是:

  • 10 Y=0
  • 20 INPUT E, F
  • 30 FOR A = E TO F
  • 40 Y = Y + LOG (A)
  • 50 NEXT A
  • 60 PRINT Y

另外,还有一些搞怪的中文编程语言,例如「草泥马语言」,「CHTML」等等,由于它们实在太怪了,而且政治也不正确,所以就不赘述了。

追求中文编程的推行,很大程度是在追求一种民族和文化的信心,它不至于有错,但意义却不是很大,因为其实很多主流编程语言的作者,都不是英美,甚至英语语言国家的,例如C++ 和 C# 的发明人都是丹麦人,母语是丹麦语。Python 的发明人是荷兰人,母语是荷兰语。Ruby 的发明人是日本人,母语是日语。总的来说,开发语言是为了解决问题,而非展现民族自豪感的。如果英语都能成为瓶颈和门槛,那这个人恐怕真的不具备写代码的能力。这就好比一个人连电路知识都没有,却叫他造卫星一样。

程序员们应该庆幸,中文编程没有在这个国家成为主流,不然,看一个大点的项目的源代码就会耗掉一个人的一生。不过,中文编程必定在编程史上有自己的位置,它荒诞而真实,像是编程圈里的堂吉柯德,让人唏嘘。

 


我的微信公众号~