{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

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

anRuianRui 回答10 收藏1
收藏问题

10条回答

ashe

ashe

回答于2022-06-22 18:52

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

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

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

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

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

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

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

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

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

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

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

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

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

评论0 赞同0
  •  加载中...
Render

Render

回答于2022-06-22 18:52

中文不够精确,例如中国男足谁都打不过,中国乒乓谁都打不过,计算机理解不了

评论0 赞同0
  •  加载中...
UsherChen

UsherChen

回答于2022-06-22 18:52

大家好,我是王小编。

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

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

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

中文编程语言有哪些?

(1)易语言

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

(2)习语言

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


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


因为,王小编等着一天等的太久了……

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

评论0 赞同0
  •  加载中...
liaosilzu2007

liaosilzu2007

回答于2022-06-22 18:52

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


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

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

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

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

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

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

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

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

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

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

实函数 主 无参

言 你好 世界 你好 言叶

回禀 零

再直观一点:

马者

机密

整数 眼睛 鼻子 嘴 蹄子

阴阳 钉掌了没 健康与否

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

公开

实函数 吃草量

实函数 钉掌

子类 騩者 马者 字 毛色 浅黑

子类 骊者 马者 字 毛色 深黑

子类 雒者 骊者 字 鬃色 白

子类 驔者 骊者 字 脊色 黄

……

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

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

比如过去的减字谱


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

还有工尺谱:

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

长清短清,那管人离恨?

云心水心,有甚闲愁闷?

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

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

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

果然是冰清玉润……

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


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

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

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

评论0 赞同0
  •  加载中...
王军

王军

回答于2022-06-22 18:52

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


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


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


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

评论0 赞同0
  •  加载中...
edgardeng

edgardeng

回答于2022-06-22 18:52

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

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

如下图:


评论0 赞同0
  •  加载中...
psychola

psychola

回答于2022-06-22 18:52

还真有用汉化的编程语言。在2000年的时候,一名叫做吴涛的人,发明了一种基于已中文为代码的编程语言——易语言。后面还衍生出了移动客户端的中文编程语言——易安卓。虽然说,中文编程在一定程度上降低了国人学习编程的门槛,但是,中文编程语言还是只能在小众范围内使用。

首先,计算机诞生于美国,所以制定编程标准和编程语言的时候,肯定是以英语作为编程语言。你可以看一下我们常用的这些编程语言中,C、Java、C++、C#、phyton等的编程语言都是英文。

其次,人类如果想指挥好计算机,只能通过编程语言向其下达指令,但是中文的语法和表达方式博大精深,而且较为复杂。不如英文简单直接,所以,英文更适合作为编程语言。

如果要想用中文来编程,那么就需要有统一、高效、标准、共享的代码库。从技术层面来讲,也要抛弃二进制,采用三进制的计算机。因为一个汉字和一个英文字母所占用的空间是不一样的。同时,如果想要让汉字编程占有一席之地,必须要有更加合理有力的说服理由。这样才能让汉字编程成为主流的可能性大幅提高。

评论0 赞同0
  •  加载中...
Edison

Edison

回答于2022-06-22 18:52

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

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

评论0 赞同0
  •  加载中...
keithxiaoy

keithxiaoy

回答于2022-06-22 18:52

Python语言不是美国发明的;

Ruby语言也不是美国的

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

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


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

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

汉语编程要复杂很多

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

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

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

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

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


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

评论0 赞同0
  •  加载中...
xfee

xfee

回答于2022-06-22 18:52

很多人把问题搞偏了,中国人自己开发语言变成了没有中文编程语言。

中国人发明的编程语言还没有(自己基于语言加点特性或简单如模板引擎不算),中文编程语言也没有(那个什么易语言不算),或者说我们能看到用于工业生产的编程语言里没有中国人创造的。

确实有点奇怪,中国可能是世界上程序员最多的国家,程序员水平也很高。但,就是没有创造出一门编程语言。其实不只是语言,操作系统、数据库、大型中间件、浏览器、大型IDE,基本上也没有中国人创造的。

这是为什么?

1、中国人拿来主义,缺乏创造精神。虽然不断鼓励创新,但是因为创新机制和既得利益,存在着打压创新和遏制创造的现象。

2、中国人单打独斗,缺乏合作精神。中国人喜欢搞关系,喜欢礼尚往来。中国文化里讲和为贵,但非和而不同而是同而不和。

3、中国人不注重细节,不写文档,不注重工程质量。这一点中国人虽然勤奋努力,但却也不喜欢做细枝末节的小事。大谈治国平天下,却很少修身齐家。

4、中国人考虑问题含混不清、模棱两可、凑凑合合,缺乏系统思考和高级抽象,不够严谨缜密。中国的哲学就是这样,非常深邃,但是又缺乏系统结构和严密逻辑。

5、中国人鼓励盗版,缺乏版权意识。或者是法律意识淡薄,整体都如此。

6、中国人推崇外国人的,外国人尤其是西方世界的就是好。这是近百年来形成的心理问题。

7、中国处于发展中国家,软件与信息产业起步较晚,离国际领先还有差距。随着中国经济崛起,这个差距在逐步缩小。

8、中国人不重视基础学科,不喜欢理论研究,比较重视实际效益。现在国家意识到这个问题了。钱学森之问引人深思,国家在搞“核高基”专项计划以及《中国制造2025》。

9、中国人培养的是偏科人才,而不是综合人才。软件是科学与艺术的结合,越到深处才越发现很多知识是想通的。我们只注重数理化考试成绩,忽视了文史哲,很多计算机毕业生连基本文化素养都没有,诗词歌赋、历史哲学更是糊里糊涂。我们不缺一般的专业型人才,计算机毕业生多如牛毛,而真的栋梁之才凤毛麟角,顶尖人才比如图灵奖可以说没有。

10、中国人还不太懂得反思,把“吾日三省吾身”抛诸脑后。虽然一方面拿来主义和崇洋媚外,表现的懦弱卑怯,而另外一方面又骄傲自豪无比,自我沉醉在梦境中不能自拔。须知只有不断反思才能不断进步,只有不断提升自己、不断学习,才能赶上别人。

以上种种不好,都说明中国目前难以产出自己的编程语言。但是,我完全相信中国人随着1-2代人的努力,到我儿子成为程序员时,他们或者他的下一代人,一定可以发展出自己的编程语言和大型基础软件来。

因为:中国人勤奋、聪明、务实以及对明天有着美好的向往。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<