为啥不该有中文编程
为啥不该有中文编程
为啥不该有中文编程
  • 发表于 3年前
  • 阅读 37
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

大清早看到论坛有人评论国内技术说弄个中文编程看看,有感而发说几句。

国内早在十年前就有人搞过,现在也有,比如易语言。现实情况是很不成功,没有什么开放出来的项目说我用的是中文来编程。为什么呢?

麻烦

对于一个简单的标识符,用阿拉伯字母+数字+下划线比中文简单很多。比如定义一个临时变量:

int i = 0;

改成中文,可能成了

整数 哎 = 0;

要是区分下整数位数,有无符号,那就更麻烦了。类似地

uint_8 i = 0;

改成中文,可能成了

无符号八位整形 哎 = 0;

语言进化的方向就是抽象。抽象能够用简单的符号表示复杂的实际内容。u代表了无符号,8代表了8位长度。这就是一种抽象。

除了输入麻烦,还有一个麻烦事。你写的代码怎么存储?存储也麻烦。可能碰到过打开一个源文件,代码是正常的,但是中文注释变成了乱码。阿拉伯字符基本上所有的字符集都能够近乎一致地表示,但是中文这样的宽字符就不一定了,换一个编码就认不出来了。麻烦不说,占用空间也多了。用信息论来讲,这种编码效率就是低,人家8字符可以解决的你非得来16字符。

不是通用语言

这个是指代码本身应该是跟人使用的语言是无关的。因为代码是解决问题的,解决问题的方法是任何人都懂的,跟人使用的语言无关。一句话,只会阿拉伯语的人写的代码拿给只会中文的人看,刨除应用背景,阅读起来应该是完全没有问题的。因为编码是解决问题的思维固化,固化出来的表示形式应该越通用越好。为啥呢?如果中间再加入母语,转换过程就会有信息丢失。

这样看来,能够适合来描述代码的语言,肯定需要大家都理解认识。阿拉伯字母和数字无疑是唯一选择。

无意义

代码本身是一种上下文无关的文法。文法中的符号集(非终结符和终结符)不是最重要的,重要的是产生式。就是代码中的各种语法规则。中文编程无非就是替换了一下文法的符号集合。产生式没有任何变化。这种变化本身就没有多大的意义。

现在想来,这种语言初衷是帮助不懂英语的人也能写代码,但实际上编程对英语的要求低,你要是只会26个字母完全就够了。另一方面,现在小朋友都会讲几句英语了,原始的初衷也就不成立了。

共有 人打赏支持
粉丝 85
博文 286
码字总数 335913
×
开源中国驻成都办事处
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: