为什么我们不发展汉化的编程语言?

邓衍强


很多个以为编程要高深的英语,其实这是一种错觉。编程的实质是将解决问题的方法告诉计算机,而要构建这些方法就会产生一些基本的结构,如:顺序结构,这是基本的,只需将过程一步一步地写出来就行了;还有分枝结构,在什么条件下执行某些操作;还有循环结构,重复地执行某些操作等等。为了实现这些,每种编程语言都有一套自己的关键字并且关键字不多比起英语数以万记的单词来说少得可怜,这些关键字和一些语法规则构成了编程语言基本框架,然后是一常常见功能组成的内置函数丰富了语言的功能。如果一定要汉化,不是不行,将关键字改成中文,内置函数名改成中文,但是改了之后,你会发现使用起来更麻烦了。比如(ⅠF i>10 THEN a=a+1)这是一简单的BASⅠC语言写的一行代码,功能是当i的值大于10,让变量a增加1。如果汉化写成(如果i>10 那么a=a+1)虽然有汉字好理解一点,但输入方便吗?(题外话:也许有些人说汉语拼音化就好输入了,但有英语简单吗?要拼音化那你不如就直接说英语写英语算了。)

所以编程还是用英语表示关键字简单方便,没学过英语也能掌握,如果连这几个关键字都掌握不了,别说学编程,学语文、数学都成问题,还学什么编程!


新热机发明者曾祥云


你不知道,不意味着没人这么做。

早的有中蟒周蟒,十几年前Python还远未到现在的热度时,就汉化了它的关键字和部分标准接口,可惜有点生不逢时。

近一两年随着全面编程热潮,中文编程工具也开始兴起。屡见报端的少儿Scratch编程就有不止一家使用了中文关键字和API,比如下面的斐波那契算法演示:

碰到的同道更有对各种商业常用的英文编程语言进行汉化的努力,包括C++、Python、TypeScript等等不一而足。

而原创的中文编程语言,包括各种无空格的语法设计等等接近中文语法的特色,都有各方有志之士积极投身。

因此,也许你更想问的是,为何汉化的编程语言至今还没有发展壮大。

这里要先提到易语言,因为它作为中文编程的标杆,在普及度上,至今没有超越的。它即使在语言本身开发不温不火已经很多年的情况下,仍有活跃的社区和大量开发者用户。这就是中文编程语言开发工具存在硬需求的明证。

那么为何没有后来者复制这一模式呢?在我看来,一个大原因在于有志于创建中文编程语言的开发者往往忽视了API建设以及相关的生态圈发展。

相对于语言本身有限的语法,API往往是真正实现功能时更倚靠,也是开发者更需要熟悉的。简单例子,下面是JavaScript一个图形库的演示例程:

JavaScript本身的语法相关单词就只有 fuction 和 for 两个。其他函数体内的单词几乎全是API(也就是应用程序接口)。而这恰恰是英文编程的一大门槛。

相较以下将API中文化后的例程,能够完成完全一样的功能,但读起来是不是一目了然呢?

现今的英文API在大规模商业项目领域几乎处于垄断地位,无论是开源还是闭源,Java Spring,Python Django,MFC等等,几乎覆盖了所有应用领域。正是因为这样,在设计中文编程语言时就要更加重视中文API的积累方式,以及社区培育。

说来话长,就先写到这里。关注本号,敬请期待后续。


用中文编程


首先想说一句,你能想到的问题其实程序员早就已经想到了。国内程序员那么多,为什么不开发一个属于自己的编程语言,其实中文的编程语言也有,只不过不普及,现在国内的大部分的编程语言已经被JAVA、Python、HTML、PHP等编程语言占领了99.9%以上,只不过很少人去用而已。

首先来说一说编程不用中文的原因?

众所周知,开始计算机技术的国家是美国,美国不仅仅占有大量的计算机资源,就连编程语言也被美国统治,我们现在使用的操作系统都是国外的,比如Windows、iOS、Linux等等,编程软件大多数是基于他们的操作系统,而且字节编码采用的都是国外的标准,要想做到使用中文编程,必须要做到自己开发出一个操作系统,这才是关键,才能做到计算机软硬件结合,有一个属于自己的知识产权。

中文编程语言有哪些?

(1)易语言

易语言是一门以中文编程的计算机编程语言,以“易”著称,其创始人问吴涛,起初,易语言名字称为E语言,最早的版本是在2000年9月11日发布,创造易语言的初衷也是未来让国内程序员不再跟随国外的思想走,有一套属于中国人自己的编程语言。十八年的时间告诉我们,这并没有成功。

(2)习语言

习语言被称为国内的“C语言”,它拥有一套完备的编程语言和与其相配套的工具组成,主要初衷是将编程大众化、普及化、中文化,至少可以减少初学者因为语言障碍而被阻碍,习语言完全支持汇编和c语言,并且向Windows图形化界面发展,但是也并没有成为世界上最好的语言。


总之,作为一名JAVA程序员,也很想希望有一天国内人拥有一套属于自己的全套中文编程语言,而且被国外程序员争论为世界上最好的语言,能够推广到全世界,希望这一天快点到来。




(默默问一下,现在有人用习语言或者易语言吗做开发编程语言吗?)我准备去看看。



作为一枚资深程序员,有必要来回答一下这个问题,其实对于熟悉编译原理的工程师,如果想要开发一门语言,并不是什么难事,而且目前国内是有自己的编程语言的,易语言和习语言(C语言中文版),但为什么没有大规模普及呢,其实就是一个实用性强不强,普通用户能不能接受的问题了。


举个浅显的例子,比如我们的文字,我们的文化,都是几千年流传下来的,都是我们的老祖宗积累下来的,而没有积累的东西在国内是很难流行起来的,就跟编程语言一样,当C++,Java,PHP这些语言在国内已经扎根几十年的情况下,主流网站和各种应用都在使用这些语言的情况下,如果现在有中文编程语言的话,还会有人用麽。


在国内开发一门语言并不难,难的是由语言建立起来的各种基础设施和应用,个人认为最主要的还是计算机的生态圈,现在计算机的生态圈已经构建的差不多了,我们使用的编程语言只是这个生态圈中的一环而已,因此,编程最大的问题就是跟整个计算机生态圈相兼容,随着现在科技的发展,在国内开发出一个操作系统或者编程语言根本就不是什么问题,问题是开发出来了谁会用,在国内,除了骗取经费,基本没什么市场。


好了,仅仅浅显的聊这么多吧,希望能帮到作者。


奔跑小兔888


Python语言不是美国发明的;

Ruby语言也不是美国的

C#,Delphi的发明者同样也不是美国的。

但他们的关键字都是英文。


并不是我们不想发展中文编程,而是在当下,中文编程的市场实在是不怎么乐观。

客观来讲,汉语编程确实有一定的好处,更加适合国人的编程习惯。但不可否认的是,汉语编程存在的弊端,也不在少数。

汉语编程要复杂很多

相对于简洁的英文编程,汉字要复杂太多了。而且在输入方面上也没有英语快。并且汉字在意思的表述上容易有歧义,不太严谨。有的时候一字多义,一词多义就会导致机器难以识别。此外,有些相近的含义词如何去划分也是个令人头疼的问题。写长句子吧,又太浪费时间。大大加深了开发的成本。

大环境使然,汉语编程注定只适用于小范围

先说明一点:使用汉语的开发语言是有的,比方说易语言,已经有将近20年的历史了。

但问题是,易语言这些年一直没有流行起来,大多数情况下都是圈友们自娱自乐,甚至有一些人用易语言来写外挂,主流依旧是Java,python,C++等。

究其根本,就在于计算机本事就是由国外开发,底层的东西都是拿英语做的,一个汉语的编译器实在没有多大意义,汉字编程只是一个表皮。众所周知,开发的过程中是很容易出BUG的,假设我是用汉语编程的,由于体量太小我根本就找不到参考的文案。这就直接导致了汉语言编程无法大范围的推广开来。语言最终是要落实到产品上,然后面向市场面向客户的,这些产品有电脑,手机,穿戴设备,智能家居……难道全部都要搞成中文的?


所以综上所述,汉语编程完全可以实现,但是根本做不大,更别提做到Java,C++那种级别。因为汉语确实不适用于编程本身,归根到底还在于国人在计算机发展时的落后。当然了我们也完全不用自卑,可以把功夫花在别的技术上不是更好吗?


爱思考的奥特曼


直接给出结论:因为没必要。


1.我们有人做过一套所谓的“我们自己的编程语言”,出名的有易语言,不出名的还有其他一些语言。简单来说,也就是汉语编程。不过讲真,易语言说白了就是给C++套个汉语的壳子,把关键字翻译成了汉语,而即使你学C++这样的大杂烩级别的编程语言,所需要记忆的关键词也不过几百个而已。

2.假定我们需要一个汉语编程的语言(就假设我们认定用汉语做的编程语言会更加好理解吧),或者说的更夸张一点,编程直接是我们中国人发明的,那么会是怎样的呢?

众所周知,编程最根本的是机器码,也就是二进制,用开关来输出/输出指令。外国人用“0”和“1”来表示,那么中国人呢?

有可能是阴阳,或者是借用八卦的“—”和“--”来表示。

那么写成机器语言可能就会变成:

阴阴阴阴阳阳阳阳阳阴阳阴阳阴阳阴阳阴阳阳阳阳阳阳

或者——----—--————------————--之类的吧……

然后假设它会像现在这样,出现各种高级语言,那么写出来代码:

高级一点:甲 加一平五后出之 乙三 又丁六之于丙五入栈三 反丁六加甲 末阳杀之 末阴入栈四 乙三与甲或丙一补之入栈三 栈三出之 栈三出之 栈四出之……

再直观一点: 先圣标准库云 出入通畅

实函数 主 无参

言 你好 世界 你好 言叶

回禀 零

再直观一点:

马者

机密

整数 眼睛 鼻子 嘴 蹄子

阴阳 钉掌了没 健康与否

实数 日食青草 日食干草 日食黑豆

公开

实函数 吃草量

实函数 钉掌

子类 騩者 马者 字 毛色 浅黑

子类 骊者 马者 字 毛色 深黑

子类 雒者 骊者 字 鬃色 白

子类 驔者 骊者 字 脊色 黄

……

你可能大概其能看懂它是在讨论那个方面的东西了,但显然你仍然不知道这个函数是什么意思。

甚至,我们的老祖先为了工作方便,在行业内部,就好像《易经》一样,往往会发明自己的一套表意符号。

比如过去的减字谱


你可能会以为这是喃文,但这确实是我国古代的古琴减字谱,如果你看过《笑傲江湖》,或许还会记得里面有江湖人士因不认得减字谱而认定令狐冲手里的笑傲江湖谱是辟邪剑法的桥段。

还有工尺谱:

这是《玉簪记》的谱子,可能对古典文学或者戏曲有所了解的朋友,还能把正常的大字读出来,

长清短清,那管人离恨?

云心水心,有甚闲愁闷?

一度春来,一番花褪,怎生上我眉痕?

云掩柴门,钟儿磬儿在枕上听。

柏子座中焚,梅花帐绝尘,

果然是冰清玉润……

但是旁边标注的唱腔调门儿,只怕完全抓瞎,一点儿看不懂了。


我说这些,重点是想说什么呢?

你以为编程语言是英语吗?不是。编程语言就是一门语言,语法完全不同于英文,只是标识用了英文单词,这个可以理解为自然语言中的借词现象。而事实上,这种标识完全能用中文代替,火星文也可以。

你以为编程语言的标记是英文,所以英语母语的人,学编程很有优势?是,但没你想象的大。他们的优势在于,介绍语言特性的资料,一手的都是英文。中文的都是二手,时间上会晚于国外,还有要是翻译功力不强,曲解原作意思,或未表达好(比如“句柄”、“鲁棒性”这种词),我们读者,就只能掉入深渊了。


小贝的STEAM教室


当发展到超高级脚本语言时,汉字的高熵值就开始有优势了!因此,超高级脚本语言以上时,可以采用汉语编程,更有优势!

汉语编程不等于全汉字,必然会英汉混用,因为低熵值精准的低层语句必须用英语。汉语程序更适合超高级型脚本语言或半自然语或自然语言尤其适合语音指令,这是英语程序难于企及的,但向下兼容英语程序也是必须的!

如下图:



皮皮143536687


首先编程语言也并不是基于英文,也就不存在所谓的汉语编程,程序命令不过是跟方程式里的x,y,z一样,起一个指代作用,跟英文本身并没有什么关系。把这x,y,z换成~,+,》也不影响什么。所以从这个角度来讲汉字编程其实很容易的。



看吧,容易吧?所以回到最开始的问题,问什么汉字编程不普及?就是因为英文字母好输入啊。一个汉字需要按几下能输入?一个字母呢?


一个稀奇古怪的世界呀


因为没必要,没必要,没必要。

我来说一说,为什么没必要。



一、费力不讨好

你以为仅仅是汉化编程语言这么简单吗?你以为仅仅是将英文单词或者英文字母转变成汉语么?

将一个编程语言中的关键字,语法,语句翻译一下是很简单,但是翻译了又能怎么样?编译器,解释器又不能识别汉语,那么你就势必得重新写一套编译器和解释器等等,写这个可不简单,等你搞完这一系列的问题,跟相当于重写一套编程语言一样了。

而且有很多编程语言,比如 print 和 echo 都翻译成输出么?不同的编程语言代表输出的英文可能不一样,你汉字如何区分?

一门编程语言的关键字,语句,语法加起来也就几百个单词,用多了自然就记住了,翻译汉化不是简单的一件事,费力不讨好。



二、编程语言本质上不是自然语言

什么意思呢?你看到大家编程都是使用的密密麻麻的英文编程的对吧?但是它并不是我们普通意义上的自然语言。本质上就是字母编程,英文字母,只不过是我们给他们重新赋予了一个意思。比如 String 吧,在英文中代表什么一起,string 自然语言就是“线”的意思,而在编程中是定义字符串。

其实,外国人使用时在很多关键字在编程中跟自然语言中代表的意思不一样。

我们给编程语言中的语法,关键字重新定义了,代表了编译器所理解的东西。

所以,说白了就是字母编程,字母组成的词代表了编程中不同的指令和意义。



最后

所以啊,汉化编程语言是没有意义的,费力不讨好的,没必要,非常没必要。弄成汉字,说不定还影响效率和性能呢。


非著名程序员


从事嵌入式的软件开发十几年,个人的一种感觉是稍微有点英语水平的人就能从事软件开发,但是要达到高手的水准英语还是不可或缺的,其实在编程过程中英语更多是表现在翻阅国外原汁原味的文档,英文不过关的情况下很难看明白,至于在编程的过程中的英文关键字影响其实很小,无论是英文还是中文关键字用的次数多了也就记住了,从理论上讲不懂英文的人也是可以从事编程代码的学习,但是要成为真正意义上的高手还是显得吃力一些,要比通常意义上的程序员要费劲而且在概率上也会小一些,毕竟如果英文不达标可能就是学历层面的问题,影响的不仅仅是英文可能还会有数学基础。

为什么中国的汉化编程语言进展的如此缓慢?

汉化编程语言本身的意义不是很大。如果单纯从替换关键字的概念入手来解决问题,只是在外观上显得好理解一些,在真正写代码的时候思维逻辑方式还是一样的,而且目前计算机的架构就是基于冯诺依曼在机器码里面就是一堆的0和1的组合方式,而且设计者本身是基于英文体系,所以转化成中文在效率也会打折扣,同样是能够编程没有必要非要转化成中文去编程。

首先要搞清楚一点编程的关键是编程逻辑,就是设计上的逻辑层次,至于具体代码的编写可能在初级阶段觉得特别的难,磨练几年之后关注的重点就不在本身的代码实现了,更加关注如何去实现功能或者实现的功能是不是有最优的解决方案。层次再高一些就是如何在框架上进行深层次的改进或者如何设计实现一个新的框架之类的操作,到了这个层面就是编程比较高的境界了,至于是不是汉语编程本身的意义已经不是很大了。

汉化语言易语言在国内的推广并不顺利。最早的易语言在推广之初还是赢得很多的粉丝,但是大家发现易语言的使用者不是设计什么复杂产品,大部分是用来设计游戏外挂或者逆向的工作了,很多学历不是很高的人觉得从事游戏的辅助编写或者外挂能够赚到很多的钱,于是在投入精力到易语言的学习中去了,只能讲现在的易语言的发展历史还是非常的尴尬,本来在设计之初有着良好的民族感染力,但时间长了之后大家并不觉得这种汉化的语言有多大的优势,现在的发展态势只能叫不温不火。

编程语言的生态建设不顺利。一个编程语言能够发展的关键在于生态的建设是否跟得上时代的潮流,在全球范围内编程语言已经超过500种真正能够站上主流舞台也不过几十种,从概率上讲还是非常低,中国软件发展到今天更多是在吸取外在营养,对于创新方面还是欠缺的比较多,从未来的发展趋势看拥有中文的编程语言只是时间问题,但至少不是在现在因为从技术层面的积累看还是远远不够,当前阶段是发展创新方面以及生态建设方面还是欠缺的相对比较多,在基础积累到一定层次自然就开始创新发展了,但需要一个长期的过程,但也有给自己保持足够多的信心,时机到了自然就会有了,希望能帮到你。


分享到:


相關文章: