为什么中文不能用来编程呢?

大街凤凰岛

不是中文不能用于编程,而是目前来说并没有一个成熟的中文开发者生态!

中文编程早就有,但不能当饭吃

其实不是没有中文编程,软件工程师吴涛先生,现在是大连大有易语言公司的总经理,就已经开发出了一套中文编程语言,并且有开发工具,但是因为应用场景有限,生态不够,而且语言本身也具有很大的局限性,所以没办法得到普及。

2001年1月:发明了中国自主知识产权的中文编程语言——易语言。总体设计、详细开发、所有的关键技术全部由本人完成,70多万行的源代码也均由吴涛本人具体编写实现。

这是关于易语言诞生的介绍,但是这款语言终究不可能像Java、C、C++、C#、JavaScript等等编程语言一样,成为主力开发群体的编程语言。并且语言在设计上有很多问题,而且很多设计参考了微软的VS等体系,再加上没办法获得开发者生态支持,自然没办法成为主流语言。

为什么没法普及,因为历史沿革

大家要明白一个问题是,那就是计算机科学技术,这门学科领域从一开始就是来自英语世界的,从操作系统,网络通信,TCP/IP协议,编译原理,算法,数据结构,编译原理等等包括你今天说的internet互联网,几乎全是那群用英语的人发明的。

你了解的unix/linux啊,macOS啊,Windows啊,vim啊,emacs啊,C啊,C++啊,Java啊,swift啊,Lisp啊,visual studio啊等等与计算机有关的工具都是基于英语环境以及英语使用者设计的,这就是根本原因。

举个例子,有几个人会用毛笔写英语?有几个人会用川菜的做法做沙拉?又有几个人会用古筝和枇杷给摇滚乐伴奏?

基础研究差很多,我们仍需努力

其实这是历史沿革,也是没有办法!

我们在基础研究领域,比如操作系统,半导体芯片,深度学习,开发生态等等基础研究领域还跟美国有很大差距,这是没办法回避的事实,要知道我们国家有计算机比美国落后了多少年,在核心专利核心技术领域的差距不是一天两天能缩短的。

好在今天因为移动互联网的发展,我们在应用开发领域的进步已经是行业领先了,未来这些大公司将会逐渐承担起底层生态建设的重任。

最后总结是我们不能夜郎自大,但也不要妄自菲薄!

我们目前已经有了很多进步,我们的鸟哥惠新宸就是PHP核心开发组的三个成员之一,我们也有白鹭时代这么棒的开发者工具生产商,我们还有Hbuilder这么棒的前端开发工具,饿了么基于Vue做出了这么棒的element,蚂蚁金服打造了ant design这么棒的设计语言,阿里巴巴做出了最棒的商业化Java代码规范......

作为一个一线技术行业从业者,我想说的是:我们有差距我们知道,但是我们从来没有放弃过努力!


EmacserVimer

作为科班出身的码农来帮你解惑吧,其实根本没有英文编程还谈什么中文编程,事实上我们都是用C语言、C++语言,JAVA语言,Python语言编程,它们都有自己的语法,用的也不是英文语法。编程中用到的英文实际就是一些关键字(类名,函数名,变量名等),都是很简单的字符,其实跟自然语言关系不大,对机器而言最后都是0和1,跟自然语言更没关系。编程对国人不友好的其实是好的教材、资料、说明都是英文的,阅读起来困难一些。

程序员编程、然后编译、处理器执行,这就是程序,这里面编译器还是老外写的呢,操作系统底层还是C语言。不考虑这些,先用C语言写个最简单的hello,world看看换成中文是什么样的

#include <stdio.h>
int main(void)/<stdio.h>{printf("\\nhello world!");return 0;
}

翻译成中文就是

#包含 整型 主函数(无返回){打印(”\\回车换行 hello world!");返回 0;}

明显更麻烦,而且没必要,你就是英文再烂这些简单的单词还是可以记住的吧,事实上编程语言也一直在改变,最开始都是0和1,然后因为太不友好有了汇编语言,后来又有了C语言,再后来可视化的IDE编程崛起了,对于大众来说有更简单的编程,比如按键精灵这样的,还有一些启发智力的编程机器人,都是最简单的编程,而评论里人们说的易语言启蒙编程还行,工作就别想了,胜任不了。训练的是一种编程思想,如果你纠结于中文还是英文,即便全改成中文你也学不好。


补充

中文和英文都是自然语言,不是编程语言,如果认为编程的门槛是几个英文单词的化那这人对编程的认知基本是零。

C++ 发明人都是丹麦人,母语是丹麦语。

Python 的发明人是荷兰人,母语是荷兰语。

Ruby 的发明人是日本人,母语是日本语。

Pascal 的发明人是瑞士人,母语估计是德语。


萌哈科技

首先,编程是可以用中文的。只不过大部分的编译器都是外国人写的,国人写的编译器寥寥无几。那怎么用中文编程呢,其实很简单。

比如用中文编程,打印hello world,那可以把所有的英文字母,英文字符替换成中文的。同样能够用文中编程,实现打印效果。替换代码如下:

QString tmp = str.replace("主函数\

火星一号

要回答这个问题,我们首先要从电脑程序运行基本说起。电脑本身只能识别0和1组成的机器码指令,为了方便对机器代码的记忆,人们就用英文字符代替机器码。例如x86的指令mov,对应的机器16位代码0x88, 二进制代码10001000。这些英文字符的集合就是汇编语言。汇编语言是最接近机器语言的编程语言。高级语言,例如c,java等等,都需要用编译软件把他们的代码编译成汇编语言,或者用汇编语言来对代码进行解释。前者叫做编译型高级语言,后者叫做解释型高级语言。无论那种高级语言,在机电脑上运行最终只能是机器码。在电脑编程语言的发展中,大部分都是英美研发和设计的主力,所以都是英文作为基础,所以编程语言都是英文的。

其次,电脑的发展都是英文系统先发展。中文系统相对比较落后。早期的电脑系统都没有中文,还要专门的硬件和软件来进行汉化。早期有什么汉字卡,南极星、中文之星等汉化软件。而且早期的电脑的内存小,按照k计算的,不像现在是按G计算的,英文就26个字符+符号就能解决输入,而汉字系统一二级字库就要200多k,极度不方便。所以一直未有汉字做为编程的语言出现。

其实中文是可以用来编程的。编程语言都是用关键字来做代码的。关键字可以汉字来代替。例如if,就用如果,while就用当,函数printf就用打印,等等。不知道有多少人玩过中文的logo语言,我小时候玩过,在apple ii电脑上,全部指令都用中文拼音代替了,例如repeat,变成了chongfu, 蛮有意思的。

我觉得用中文编程还是英文编程,就像用c还是java一样。关键不是编程工具本身,而是要实现的功能和算法。


Cosmo777

学过计算机的应该都知道计算机语言经历了机器语言,汇编(伪机器语言),高级语言三个阶段。

假设我们要计算1+2(数值先不管,我们只看+号,)。计算机可不认识什么加号,它只认识0和1。

计算机诞生之初,只有人来迁就计算机,我们就假定0000 0001这段代码表示加法,当计算机读到这段代码时计算机就知道它要将两个数值进行相加了(最开始就是这么干的,用打孔器打孔,打个冻表示1不打表示0,然后把纸带也即'程序'输入给计算机)。这就是机器语言。

这么做的效率显然效率非常低下(比如一个几十页的纸带,错打了一个孔,吼吼……),也不方便人去理解,怎么办呢,我们可不可以用一个短语(词)来方便我们记忆呢?当然可以,然后约定俗成就让“ADD(话说如果是中国人发明的,这个可能是[加]了)”替代0000 0001 来代表加法,这个时候程序大概就变成了ADD 1 2,我们将这个输入计算机,可惜了,计算机还是不认识,仍旧需要转换成 00000001 1 2的形式计算机才能理解,只要能开发出门转换的工具(核心技术),事实上就是这么做,这个时候人只需要关注ADD就可以了,剩下的可以不管,交给转换工具来处理。这是汇编语言(第二阶段),相对机器语言而言,更加接近自然语言,更加方便人去理解成语了。

但是汇编语言仍旧是是直接操作硬件,对人仍旧不友好,然后就出现了高级语言,高级语言仍旧需要将程序翻译成计算机可识别的代码,这个翻译的过程肯定不是漫无目的(比如add,不能说我第一次翻译成加,第二次翻译成减吧),它仍旧需要遵从一定的规则(这个规则就是各个编程语言的语法[关键字],比如c语言的print,就是打印,当碰到这个关键字时就会分解成多个指令调用计算机硬件完成向计算机屏幕打印信息)(听到有人说中文的多意性导致计算机不识别的,真想呵呵你们一脸!)

其实从这个角度来说,高级语言就是一套语法,然后和这套语法对应的翻译器。这套语法怎么实现无所谓(中文也OK),只要你能有对应的翻译器将这个翻译成计算机可执行的程序……

不难看出计算机语言的发展是越来越接近人类语言,越来越方便人的理解的,所以也有人提出计算机语言的发展到最终的结果就是自然语言。

总结一下吧,中文编程肯定是可以的,问题是值不值得?有没有必要的问题??

这是我个人的一点粗浅看法,碍于能力见识,可能有不对之处,欢迎指正!


_笨_鸟_慢_飞_

谁说中文不能去编程?中文也是有编程语言的。大家可能不知道有一款编程语言叫做易语言,他也是用中文来编写的,它诞生的时候是十分的,也很抓眼球,但是他没有走好,发展的也不壮大,以至于很多人都不知道还有这么一款编程语言。

中文是可以编程的,只不过目前对于我们来说,中文编程还是比较的麻烦,为什么这么说呢?首先,我们的键盘都是输入我写字符和字母,而电脑里要显示中文,必须通过这些字符和字母进行一次转换,也就是我们的这些输入法。对于程序员来说,你能用字母来完成的事情为什么还要再转换一次,来增加工作量呢?这也是中文编程,不温不火的原因。

所谓编程语言,就是进行人机对话的一种语言。提起他只认可101010这种二进制的代码,最早出现的就是机器语言,因为机器语言太难控制了,后来出现了一种过度的语言,叫做汇编语言,汇编语言比机器语言要来的简单,但它也属于一种低级语言,后来的高级语言的出现,就是把人们常用的语法和机器语言进行近似化了。编程语言的发展是越来越简单,也越来越接近人的正常的语法。这是一种大的趋势。

根据这种趋势来分析,以后,中文作为一种编程语言也是会在编程语言的世界里占有一席之地的。一般不会在现在这种键盘录入的时代。

中文作为一种编程语言,我估计会在下一个智能输入时代,那时候语音,手势可能会作为编程的一种模式。中文到时候会大行其道。


历史麻辣锅

只是发明人不是中国人,如果是中国人,世界一定都会学中文。在中文环境里,绝对产生不了数理化等科学,比方说化学上,高分子公式怎么用中文表述?没办法,这是中文的先天缼陷,我们要承认。

中文汉字编程,还不如中文拼音编程,其实很多程序员就是中文拼音和英文混合代码,比如变量、函数,对象名称的定义,有时候用中文拼音或者缩写也巧妙。

英语组成是一维的,主要是逻辑关系,而中文是属于三维的,一句话的意思除了本身意思外,还要看时间,空间。比如:夏天衣服能穿多少穿多少,冬天衣服能穿多少穿多少。按照这个中国人一看就明白,英语就不一样了。

中文完全可以用来编程,比如国内发展较好的易语言,很多都用易语言写过外挂,易语言有很多框架可以让你直接使用。虽然如此,但中文却不适合做主流的编程语言。因为英文影响力最广,几乎都会学英文,学起来也不太难,还有很多开源代码需要全世界各国的人来优化,所以说不适合做编程语言。


笑搞

编程为什么不用中文呢?原因如下: 因为编程是外国人出的,外国人肯定要用英文,而且英文是全世界通用的语言,而中文仅仅是在中国大陆和台湾使用,中文难学。 中文打字效率太低,任何一个字最少也要两次击键,效率上不如英文。 中文符号不规范,存在全角和半角的问题。 此外,中文编程也是存在的,像易语言,和vb很像,而且操作很简单,很容易学会,如果想学的话可以学一学。

其实是有中文的编程语言的,最出名的是易语言,此外还有cpython之类的。都是中文的编程语言。 但之所以大部分编程不用中文,其实是有他的道理的。 中文打字效率太低,任何一个字最少也要两次击键,效率上不如英文。 中文符号不规范,存在全角和半角的问题。 大部分编程语言在一开始就是以英语做为母语的(即使日本人开发的ruby,母语也是采用的英语)。这主要是为了交流的需要。 英语能够被所有的操作系统和编译器支持,而操作系统与编译器要想支持中文,则需要付出额外的努力。

很多亚洲语言都属于”暧昧“的语言,即语法中存在太多不确定因素,所以天生不适合做为编程语言使用。(不相信么?那么解释一下,为什么 ”中国人大胜日本人“和”中国人大败日本人“居然是一个意思) 最后,其实中文程序语言并不比英文的好学,而且可读性也比不上英文程序。


计算机最早从美国诞生,而美国运用的是英语进行编程,英语是如今世界上运用最广泛的言语。它用26个英文字符构成,浅显易记。本来,计算机的底层只知道二进制0001111之类的,也即是说计算机自身只能辨认0和1,并不知道别的数字、英文和字符,可是每个程序和核算都运用二进制并不简单记,这么对编程人员的技能请求很高,也很难操作,并且通常人很难了解二进制代表的是什么东西,也就不知道它究竟履行的是什么,为了便利回忆和了解,it界就诞生了用英语编写的更利于回忆的编程言语,包含汇编、C、C++,java,C#,php等。可是计算机并不知道0和1以外的字符。那么它是怎样辨认编程言语的呢?本来,它的底层是把编程言语翻译城二进制,也即是0和1构成的字符。就像我们跟英国人沟通相同,必须把汉语翻译成英文、把英文翻译成汉语或许把各自知道的言语翻译成我们都辨认的言语。那么从上面看汉语能否作为计算机言语呢?答案是肯定没问题,那么为何如今很少用中文编程呢?一方面我国计算机技能发展比较晚,在国际上没有话语权。也没有自个老练和让我们承受的中文操作系统,并且许多技能只要国外有,英语编程都有很大的沟通圈,技能老练,我国前十多年诞生了自个的全中文言语易言语,可是一直不瘟不火,社区不行老练,计算机支撑的也不大好,并且用易言语编写的软件许多都会被杀毒软件报毒,杀毒软件不辨认易言语。所以通常用户看到杀毒软件报毒都会认为是病毒,本来大多数易言语编写的软件并没有毒仅仅杀毒软件不辨认。


草丛里的野生熊猫

可以用中文编程,而且似乎也有必要,这对于普及电脑编程也许会有意义,只是现在还没有比较实用的中文编程系统,还没一套由中文构筑的实用的高级语言,在不久的将来,也许会有人做。目前的所有高级的编程语言,大多是英文的,这与计算机的起源以及计算机编程的起源有关,如果计算机最早是中国人发明的,如果最早的编程语言是中国人写的,那现在的编程语言也许都是中文的,这不奇怪。但,目前的现状是,不仅编程语言都是外国人写的,最令人不爽的是,计算机的操作系统都是外国人写的,你家的电脑,我家的电脑,用的都是Windows,目前还没有我们自己写的家用电脑的操作系统,这是非常不爽的,而且涉及到国家的安全,非同小可! 听说有机构在搞,这让我感到很欣慰,我们要有自己的操作系统,我们也要有自己的编程语言,但说实话,这比造原子弹难多了,因为,我们不能再从零做起,因为,外国人写的操作系统,外国人搞的编程语言,已经发展到一定的高度,是一种智慧与知识的积累,如果我们再从头搞,从最底层做起,需要巨大的人力,物力,财为,时间……,如果不从最底层做起,意义又不大,让我们想想,该怎么办!

如果不是创造一种编程语言, 如果仅仅是要使用汉字来写程序的话,那应该是好办的。例如,下面这段程序:

dim a,b,c

b=2

c=3

a=b+c

If a>4 Then

end

end If

如果换成中文输入该怎么办呢?请看下面:

定义变量 老王,老李,老赵

老李=2

老赵=3

老王=老李+老赵

如果 老王>4 那么

退出系统

假设结束了

哈哈,如果只是这样变化,意义就不大了,好像显得更繁琐。真不知如何是好! 其实,目前数学,物理,化学等的公式,也都是些字母,也没有影响我们学习使用,反倒是这些外文字母,给我们带来了许多方便,在对待是否有必要用中文编程这个问题上,我们不妨也从这一角度正视它!


冷眼无邪

作为程序员,我表达以下几个观点 :

1、完全能用中文编程 : 理论上只要能表示0和1的语言都能编程,所以中文是能用来编程的,易语言就是一个典型的例子。

2、编程的起源不在中国 : 计算机的起源在美国,自然而然的优先使用了英文。

3、流通性差 : 英语是全世界最流行的语言,几乎成了不同语种国度之间的共同语言。外国人学中文简直就是难于上青天,流通性差又怎么互相交流怎么共同进步?

4、没有成熟的体系 : 尽管机器只有0和1那么简单,但要用一种语言通过0和1表达人类的所有想法,设计这样一个庞大的体系谈何容易。现在汇聚的全人类智慧发展了几十年的高级语言,依然存在很多问题。

5、成本高 : 用中文编程,只能有两种方式,一是在原有硬件基础上,将中文编程转成英文编程再转成机器语言;二是重新定义硬件,重新设计制作符合中文编程的硬件。这两种方式的成本相当高,完全没必要。