亲密数编程语言是试验性质的完全基于汉语的计算机编程语言。我只是闲时用她来探索一下汉语编程,学习一下相关知识,巩固一下个人技能,没有想着用它做严肃的事。我觉得也不该用汉语编程语言做严肃的事情,那些严肃的事情还是留给工业上成熟的语言来做吧。因为能力所限,我也不可能设计一个完美完善的编程语言如Ruby、Python、Go、C、Rust、Julia、Kotlin、Haskell、Clojure、Elixir等。我只能尽量减化。简化的结果就是亲密数编程语言和Forth语言比较相似,是基于栈的编程语言。大部分语句操作都是围绕着栈,大部分表达式都采用容易使用栈来实现的逆波兰表达式。而且她只能解释执行,不能编译。另外一个简化就是亲密数编程语言的变量和关键字只能包含一个字。我希望她最终可以做到Logo语言能达到的事就满足了。
我听说过的汉语编程语言有易语言、习语言、丙正正、中莽等。除了用中文编程外,易语言好像和VB比较像,习语言则对应C语言,丙正正对应C++,中莽对应Python。说实话这些语言我都没怎么用过。因为真正的程序员都想用专业的通用的语言来编程,就像大家喜欢用电脑而不是机顶盒上网一样。我认为认识50个单词的人具有初中文化水平就最好学英文编程语言。
对于中文编程大家一定不要做的事就是把宣传口号定为“中国人自己的编程语言”。在科技和工程领域还是采用世界通用标准比较好,易于交流,而不要自己制造壁垒,自绝于全世界。在科技和工程领域还是少打民族自豪感之类的感情牌,踏实做好工作比较好。日本人松本行弘设计的Ruby语言也没有用平假名片假名,爱立信设计的Erlang也没有用瑞典语,他们都是采用英语。
那我搞个亲密数编程语言干什么呢?除了满足我自己外,我觉得把目标定为让小朋友或大朋友多个玩具比较可行些,这是我对亲密数编程语言的定位。
你可以用这个玩具做哪些有趣的事呢?你可以把她当计算器用,加减乘除余她都会。你可以很容易把”去你的“或者”我爱你“在屏幕上显示一千遍。你可以用看似混乱无意义的一段汉字的罗列生成也许比较好看的图画。怎么玩看你的想象力了。
我见过的汉语编程语言大多是对英文编程语言的汉化,人家有个IF咱家就有个如果,人家有个括号咱家也有个括号。这样可行,但会水土不服。毕竟英文是一维的字母语言,中文是二维的字母语言。(把偏旁部首看作字母。吴军博士的《数学之美》中有此观点。)汉语和英语不同,汉语编程应该和英语编程有些不同才对。
英文句子的单词都用空格分开,英文中的符号很丰富,圆括号、方括号、花括号等应有尽有,所以英文编程语言用空格分开关键字和使用这些符号很自然。中文大家都不习惯把字词用空白分开。中文的标点符号都是后来加的,古文中甚至句逗都没有。所以我觉得自然的中文编程语言应该也最好不使用空白分词,并且越少使用标点符号越好。这当然给词法分析和语法分析等带来了非常大的难度,所以我只好简化,选择亲密数编程语言中关键字和操作都是单字。
即便中文编程语言要使用符号,可要知道中文中很多符号都是又有全角的又有半角的。大多数人都不太容易很快辨认出全角符号和半角符号的差别,比如”;”和“;”,”:”和”:“。即使能够辨认,在编程中不断切换全角半角状态也是恼火的事情。由此我认为中文编程最好不因全角半角符号给用户带来困惑。在亲密数编程语言中,我选择放宽对程序限制。比如全角的数字0123456789、半角的数字0123456789、甚至中文数字〇一二三四五六七八九和中文大写数字零壹贰叁肆伍陆柒捌玖她都能够辨认。
总结一下。亲密数编程语言只是对中文编程的一个探索,不适合做严肃的事情。她支持的数据结构和语法都简单,不适合做复杂的事情。她比较适合做小朋友或大朋友的玩具。