提倡中文编程为什么总遭到程序员嘲讽?

阳光空灵


这就涉及一个语言的问题,首先要问:什么才是语言。

按照作者的理解,似乎26个字母就是英文,方块文字就是中文。但是这是严重不足的,因为这些都仅仅是一些符号,没有涉及语言本身的内涵。换句话说,仅仅这些是没有灵魂的语言。

记得当年就有废除中文的讨论,为什么啊,因为方块字在很多方面确实不如字母方便,比如在计算机输入时,当然这是后来的事情。这个时候是一副对联终止这场行动,“袁世凯千古,中国人民万岁。”虽然故事有演义的成分,但在解释这个问题足够了,因为语言不仅仅是一个个助记符,更是只能通过这些符号才能发挥出来的,蕴含了语言文字深厚历史的文化。

再来看看计算机编程,编程也是一种语言,其实质是与机器交流的语言,计算机通过编程语言来理解人类的命令。稍微有点学识的都应该知道,计算机语言本质上是一串二进制码,就是一堆开关。而为了能表达,才有了机器语言,也就是那堆1010的编码。这个没人能记住,要用还要查书,就将这些命令代码与两个字母的符号一一对应,这就是汇编语言。汇编还是太麻烦,也才有了后来各种更接近人类思维模式的高级语言。

但是不要忘记,任何计算机语言,本质都是开关开关的二进制代码,高级语言只是符号,没有原本符号的文化意义,所以用什么符号区别不大。既然这样,简单朴素的字母当然好过二维码一般的中文。还有个问题,从实用角度,文字符号涉及编码的问题,这个可能要一点知识储备。英文字母,用ASCLL码只要8个二进制码就能表示,而中文要用到GB码,至少需要32个二进制码表示,如果用其他稀有符号,比如日文韩文,就要用到unicode码,这样更占储存空间。

综上,所以提倡用中文编程会被程序员耻笑。


悠闲的西瓜刀


中文编程并不是不行,但实在是费力不讨好呀!

咱们来说说为什么中文编程不受欢迎。


从易语言来看,中文编程逊色在哪里

除了C/C++,java,python这些语言外,确实存在一种中文的编程语言,就是易语言,易语言的年代有些悠久了,最早可以追溯到2000年,虽然发展到今天有了一定的规模和用户基础,也有一批忠实的“易粉”,但始终没有流行起来。在2018年“最受欢迎的编程语言”中,压根就看不到它的影子。。。

也并不是只有2018易语言名落孙山,易语言的劣势也是中文编程的劣势,究其根本主要集中在两点:

  1. 中文编程极占资源;

  2. 市场需求小。

我们先来看第一点,主流的编程语言都是英语,再复杂的英语它也只有26个英语字母。但汉语不一样啊,常用的汉字足足有7000多个,还有字形结构。学过计算机的朋友都知道,汉字的内码很占内存,一个汉字2bit,一个中文标点3bit,做一个完成的项目要比纯英文的代码量大很多。这和软件开发代码精简的需求背道而驰,加大了CPU的工作量。

再说市场需求,在所有的招聘平台上,嵌入式方向的找C/C++的,AI领域的找会python和机器算法的,前端找会HTML5/CSS的,应用软件开发找会Java的。。。反正我是没有见到哪家公司明确表示会中文编程的。


没有市场,也没有需求,中文编程就是这么一个局面。并不是说中文编程不够好,我身边有学易语言的朋友,但初衷不怎么光明——他用来写外挂。

客观来讲,易语言确实很方便,也大大降低了学习编程对英语方面的要求。但真的不符合当下开发行业的环境,中文编程,小圈子里自娱自乐一下还行,放在大型项目开发商,实在是强人所难。


爱思考的奥特曼


这个“五加二等于七”的例子,完全没有说服力。如你所言,英文编程同样使用阿拉伯数字和通用数学运算符号,而不是用英文自然语言的“five plus two equals seven”。

喷中文编程的声音虽然很嘈杂,但仔细总结下来不过几种套路。之前写过一篇专门进行针对性回应的文章,有兴趣的话可以整理后再发表出来。

关注本号“用中文编程”,敬请期待。

这里要科普一下,多半开发者还不知道绝大多数常用英文编程语言早已支持中文命名标识符,比如 Python3 的开发团队在2008年开始就从用户社区反馈中意识到,非英语母语的开发者希望用母语命名,因为这样可以提高代码清晰度,更易于理解和编写。

所以那些否定母语命名意义的,请先去这些语言的开发者社区嚷一声“Unicode命名没有用啊,删去这个特性吧”,就等着其他非英语母语的开发者们出来打脸吧。

或者,试试把下面这些用中文命名标识符的代码改成英文命名。代码可读性不比不知道,用过中文命名的就知好处。

Java

SQL

TypeScript


用中文编程


提倡中文编程,和想要一门中文编程语言的人,9成都是菜,以为把英文换成中文就容易编程了。认为喜欢英文环境编程的人是怕用了中午之后大家都会编程了。 有这种思想的人,连为什么自己水平差都不知道,这根本就不是一个语言问题能解决的。。

计算机的经典教材,名著都是国外的,前沿的资料都是英文的,最火热的开源社区也全是英文环境的。

如果一个人从菜鸟变成一个计算机行业的大神,必然是看了无数英文资料慢慢成长来的,这种人早就悟透了想要变强,英语就是一个必经之路,而编程语言里面那几个单词都能成为绊脚石的话,这种人最多也就是个培训班水平。 看再多的国内教材国内资料也只能算是吃别人剩下的东西,质量不仅差而且旧。

编程讲究生态,就算有中文编程语言,一堆菜鸟在用,能产生什么生态,本来中国的优秀开源软件就没多少,更别说用了中文把整个外国开发者全都拒之门外的闭关锁国式开发了。别做梦了,就算中国的大神写的开源项目,参与的开源项目,也是在github上全英文的。

有了中文编程语言,有第三方库可用吗?

openssl boost dpdk 等等这些库是不可能再造一遍轮子的,因为菜鸟写不出来,大神不屑于再发明一遍这种轮子。

所以鼓吹中文编程语言的人,多提升一下自己吧,真正有实力做一款优秀编程语言的人,如果知道自己的潜在用户只是一些英文变量名都是障碍的人,那他一定不会费力做这么一个东西出来的。


冰封灬飞飞


作为程序从业者,说点个人见解。

1,用英文是历史原因;

2,编程环境生产使用的都是英文的,包括运行系统。

3,程序生态是英文的。

4,程序上语言只是符号,因此,不论你用什么自然语言来表达,只要编译器能转换,都是可以的。

5,为什么中文编译只有小部分应用(如已知易语言基本用在做外挂,不算行业内): 编程要的是无二义性,这方面这些年全世界花了很大代价才形成目前状态。如果是中文,同样一个‘花’,在不同语调,语境下有丰富的含义,这时就需要其它东西来辅助表述,从而带来更多复杂度。一般程序需要用的是不到100个关键字,越少就越易形成生产力,当然前提是无二义性。这符合中国传统哲学,阴阳可涵盖一切,电信号本身0和1是阴阳理论在电相关领域的实际应用,这个是发明人本身承认的,道理是相通的,原理是自然的。

6,从实用角度来看,不管白猫黑猫,能抓到老鼠就是好猫。从现阶段程序领域看,目前英文占据优势。因此,用何种自然语言,这是自然选择的结果。在合适的地方用合适的材料,并不是因为材料非得用最贵的,最贵的不见得合适。或许将来有一天,程序会用中文来写,但一定不是因为符号本身,而可能是因为社会发展,思维的需要了。英文背后是线性思维,中文背后是立体思维。其实,现在很多项目已经在用中文思维来解决更加复杂的问题了,只是表面用字母符号来表达而已,这也是当前甚至以后各领域中国影响力越来越大的原因。按照三体孙介绍的,是降维打击,我们不用妄自菲薄。

7,看尽千帆过,跳出此山中。不用太纠结于表面形式,寻找更深本质,或许会更好。

与各位讨论。


原语奋斗


我来解释下吧,其实很多人的程序,并不是英文的,而是拼音和简称的,不流行不代表不行,而是做基础工作的人很少,要用什么没什么,而且英文编程又不是很难,就那么几十个单词,还有补全,最重要的是中英文的标点符号不兼容,很多程序误输入中文标点是不行的!

但是,本人最近在做电控编程序,用的是程序块,面向对象的思维,就全部是中文的。

最终,你的变量会编译成存储空间,占用资源也只是源代码,运行没啥区别。

之所以不流行,是因为搞中文编程的人还没有领会中文的精髓,博大精深,例如勾股定理,沟三股四玄五,用表达式,用白话文,用数学要多大信息量才能表示?

其实,中英文在asc码里面,仅仅位置不同而已,要深入掌握中文精髓,中文比英文更有优势,尤其面向对象,更复杂运用,中文更能发挥潜能。


鞠躬车马前


呵呵,中文编程首先要解决中文编码问题,即如何用二进制数表示中文,一个中文字符要用多少个二进制位。现在的unicode 编码,一个中文字符用2字节,合16位二进制数表示,而包含26个英文字母大小写的整个键盘上的按键,用256个编码,即一个字节,和8位二进制数表示。在这个基础上,你再考虑编译器设计的复杂性和编译效率问题,林林总总,就不是线性的翻倍的问题了。


爱思考的雨滴


1、 语言机制摆在那,汉语我们的母语使用起来自然方便,但是作为编程语言,可能没那么方便,这里的编程指的是写代码,不不是拖控件那种GUI开发,比如"if()...else..."语句,用英文单词不会产生歧义,汉语博大精深,“意思”的意思不用说了吧,就比如说代替前面的"if()...else..."语句,可以用“如果……那么”,亦或是“假如……就”,反正怎么都能翻译,但是高级语言写的代码是给计算机理解的,不允许产生歧义。而且用英文写代码更简洁不是么;

2、写过代码的人亦或是了解计算机基础的人,大概了解操作系统,编译原理等知识,操作系统内核没有中文写的吧,当然可以封装接口调用库函数,你不损失性能么?

3、用中文编程不是不可以,而是没必要,你去利用利用计算机是解决问题,怎么方便怎么来,什么顺手什么来,包括编程语言的选择这些,工作中不可能一门语言你就能走向人生巅峰,做C++的项目中会遇到Java代码,做Java的做到高级工程师你不还得了解内存管理和指针传参么,Python也是一样,只不过有各自的适用场景和生态体系,没有好坏之分,做到后期,还是回到了操作系统,计算机网络等基础知识以及相应领域的技术体系。再说了,现在小孩幼儿园就已经开始学习英文了,有必要纠结单词么,毕竟英语还是国际语言,就算有理想封装一套汉语编程语言,怎么推广了?现在全球化,甚至就算用汉语写操作系统写出来了,大厂会用么。什么东西都有他自己各自的适用场景,主体是人,我们眼光不能太局限!


柚子树plus


因为中文编程本来就是个伪命题。会编程的人都懂,语言从来不是关键,思路,算法才是核心,如何用自己的思路将计算机调教好,才是王道。就跟老师教你二元一次方程,x+y=3,中文编程者只是想改成甲加乙等于三。难道换成甲乙丙丁解答起来就更顺滑?只是表象上换了个表达罢了。毫无价值。就跟讨论为什么没有中国的西餐一样,滑稽。


鹿见車


用什么编程有区别吗……每天吵着这个语言好,那个谁用的多。搞的程序员就跟过去的秀才一样酸,生怕别人说自己会的那门语言要不行了。计算机是一个系统学科,编程语言只是个工具,工具背后还有计算机的内在原理和设计灵魂,为了最浅显的争来争去也真是显示了我国的计算机软件水平……


分享到:


相關文章: