中文编程优劣浅谈

一、关于中文编程的争论
关于计算机编程语言的中文化问题,经常在网上看到两种相互对立的观点,一种
观点是认为中国应该弄出个中文编程,让大家能够通过中文来编写程序;另一种
观点认为中文编程没有意义,编程所用的英文就是那么几个关键字,并不难。前
面的观点主要来自于非专业编程的普通大众,后面的观点主要出自专业程序员。
网上这两种观点之间的争论非常激烈,有时候甚至到了互相攻击的地步。
我认为,这两种观点都不错,之所以产生这种冲突,主要是因为两者看待问题的
角度不同。对于专业程序员来说,他们早已熟练掌握了已有的优秀编程语言, 并
且在语言方面也不再有多少障碍,他们需要的是更多的中文化技术资料而不是中
文编程语言。而对于有编程需求的普通大众来说,他们还没有接触计算机编程或
者才刚刚入门,在面对满屏的英文语句时感到使用起来很艰难,而中文编程里
面的关键词和函数、变量、方法、事件等等都是中文,能够即看即懂、即用即会,
节省大量时间精力。所以,对于这两种观点,我觉得不必放到对立面来,普通
大众不强求程序员从现有的编程语言中转换到中文编程上来,程序员也不应该要
求普通大众远离中文编程。实际上,有不少程序员在熟练掌握其他编程语言的
同时,也在使用着中文编程,并且在中文编程与其他编程语言之间架起了无数个
技术桥梁,既方便了自己,也方便了其他人。

二、软件产业与大众化编程
世界上软件产业发达的国家基本上是经济发达国家,此外还有一个发展中国家印
度。他们都有一个共同点,就是英语普及率非常高。欧美发达国家的母语虽然不
都是英语,但是在他们数百年的交往中,使用英语并不是什么难事,而且思维方
式几乎是一样的。此外日本很早就将自己西化,其所使用的自然语言也是西方语
言和东方语言的结合体。至于印度,它的母语就是英语,在长期的殖民统治下
早已融入了西方文化环境。这就存在一个我们平时看不到的优势,在使用编程工
具时,这些国家的人可以做到“顾名思义”,无需翻译,也不需要做过多的语言
培训就能顺畅地使用。这样就能够保证普通人只要愿意,通过付出较少的学习成
本(包括时间、精力、经济成本)就能够使用编程工具做一些自己需要的软件。
当编程能够大众化之后,软件产业所需的巨量优质人力资源也能够得到保证。
而在中国,编程还只是“精英化”而非“大众化”。中国的软件行业只能够集中突破,
而不能真正建立一个完善的软件产业。产业是基于大众的。中国既不是以英语
为母语的国家,也不是像日本那样很早就融入西方的国家,中国人的思维方式跟
西方还存在巨大差异。中国网民虽然是世界最多的,但是他们所使用的软件、游
戏和网页都是中文界面,他们只能“消费”本地化的软件,而不能用外来的工具“生
产”软件。一个消费者众多,生产者却凤毛麟角的市场,可能是一个很好赚钱的
市场,但却不是能够支撑一个产业的的市场。因为这个市场中能够为产业提供的
人力资源非常贫乏,只能走精英化路线。精英化编程不但会限制产业的发展,而
且会导致创新不足,在总体局面上只能跟随国外亦步亦趋。

三、操作系统与软件生态环境
这里不得不说到国产操作系统。操作系统的开发当然是必须“精英化”的,但是它
的发展却必须是“大众化”的。精英化的技术可以开发一个功能强大的操作系统,
然而操作系统的功能再强大,如果没有多少应用软件的支持也只能是空中楼阁。
Windows 的成功固然一部分是因为它的雄厚技术实力,但是更大的原因是它拥
有一个非常强大的软件生态环境,这个生态环境是由巨量的五花八门、大小不一、
良莠不齐的软件所支撑的。另一个成功的例子,就是智能移动设备上运行的
Android 操作系统,它的成功也源自于软件生态环境的搭建。现在我们所说的软
件编程,在桌面端基本上是基于Windows 系统,在移动端大部分集中在Android
系统。
Windows 和Android 早已通过各自难以动摇的软件生态环境分别在桌面端和移动
端占据垄断地位,国产操作系统要想争夺它们的市场,仅仅以精英化路线埋头
研究操作系统技术已经是太迟了。最根本要做的事情,就是以已有的自主操作系
统为中心,大力构建软件生态环境。而要想构建一个完善的生态环境, 单靠精
英化编程是难以实现的,它所需的以万计的应用软件要靠大众化编程才能完成。
从这方面来说,需要拥有一个或多个能够让普通大众快速上手的,具有跨平台特
性和优秀性能,并且被相关方面大力支持、向自主操作系统生态环境引导的中文
编程语言及其开发工具。

五、中文编程的质疑
网上有很多人对中文编程提出质疑,其质疑的角度五花八门,比如计算机底层
的实现、中文编程的效率、编程所需的少量关键字、对中文代码感到不适应等
等。

1、计算机最底层的语言是机器语言,它的关键字只有两个字符,一个是“0”一个
是“1”,分别代表物理层面的低脉冲和高脉冲。它既不是英语也不是中文,在原
理上不存在中文编程在编译执行后比英文效率低的问题。只要中文编程工具具有
完善的编译器,能够完全编译成机器码,就能够得到跟英文编程一样高的执行
效率。
2、计算机编程语言的发展是不断向自然语言靠拢的,高级语言和面向对象编程
的出现,目的是更接近于人类的自然语言和思考方式,让人们能够更顺畅地编
程。只不过由于高级语言是外国人先搞出来的,就用了英语作为计算机语言的表
述形式。而中文编程的出现,也是顺应这个发展方向,让使用中文的人群能够顺
畅地进行编程。这是从编程者的角度来看问题,而不是从计算机的角度看问题。
3、中文编程的输入效率并不像多数程序员想象的那样慢,只要结合一个完善的
IDE,有时候甚至不需要输入汉字而直接输入拼音的首字母即可。由于编程所
用的关键字不多,编程时添加的变量名称重复的也少,所以不会出现多少重码的
现象。比如要打出“如果”,只需在编程环境中输入“rg”加上空格即可,并不比英
文的“if”差多少。再比如要打出“编辑框”只需输入“bjk”加空格,这就比英文的
“textbox”要快一些了。另一方面,在英文编程中,常常需要定义一长串字符构
成的变量,以便能够明确表达该变量的意思和用途,而在中文编程中,由于中文
天生具有的丰富表意功能,通常只需输入两到四个汉字即可完整表达变量的意
义。这就使得在拥有大量代码的程序中,中文的输入效率比英文要高一点。
4、使用中文编程并不表明一点点英语都不会,而是在母语和英语之间,前者更
加熟悉和运用自如。编程语言中的关键字和保留字虽然只有十几个到几十个,但
是编程并不只是使用这一点点关键字而已,你要用到大量的函数、参数、属性、
事件、方法、变量、常量等等,这些不同用途的名称多数时候是一长串英文字母,
记忆起来并不那么容易。而且很多有用的编程资料和帮助文档是英文的,每次查
找文档的时候都会存在一个翻译的过程。而中文编程从关键字到函数、参数、属
性、事件、方法、变量、常量等等都是中文名称,并且在其对应的帮助文档和
学习资料中,都是以中文呈现,可以做到“顾名思义”、“举一反三”,快速上手使
用。

ps:以上所述所有文字均来自网络

时间: 2024-12-15 21:11:44

中文编程优劣浅谈的相关文章

Bash脚本编程变量浅谈

Bash(GNU Bourne-Again Shell)是一个为GNU计划编写的Unix shell,它是许多Linux平台默认使用的shell. Bash脚本编程的变量: 1.$BASH 表示的是Bash的二进制程序文件的路径 eg:编辑bash文件例如1.sh,在其中输入如下代码: 然后保存运行,就会出现bash脚本解释器的路径. 2.$FUNCNAME 表示的是当前函数的名字 eg:编辑bash文件2.sh,在其中输入如下代码: 运行该bash文件结果如下: $FUNCNAME作用于函数体

《浅谈JavaScript系列》系列技术文章整理收藏

<浅谈JavaScript系列>系列技术文章整理收藏 1浅谈JavaScript中面向对象技术的模拟 2浅谈javascript函数劫持[转自xfocus]第1/3页 3浅谈javascript 面向对象编程 4老鱼 浅谈javascript面向对象编程 5浅谈javascript的数据类型检测 6浅谈Javascript嵌套函数及闭包 7根据一段代码浅谈Javascript闭包 8浅谈JavaScript编程语言的编码规范 9浅谈Javascript面向对象编程 10浅谈JavaScript

浅谈中文编程

刚刚接触了中文编程,我感觉挺新鲜.可是美国一会,我就觉得,中文编程实在是不咋滴,比起什么C.C++差的不是一两个档次那么简单,说实在的就是一个天上,一个地上.至于哪个是天,哪个是地那就不用我多说了了. 中文编程起步说实在比较晚,比C/C++/Java晚的不是一点两点,而是几十年.中文编程不仅起步晚,而且中文编程语言还非常单一,单一到什么地步?我想很多人都都会觉得很不可思议,因为知道现在2015年,中文编制语言只有一种,那就是易语言.也许很多人会觉得中文编程会降低中国程序员的开发难度,提高开发效率

浅谈Windows API编程

WinSDK是编程中的传统难点,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制…… WinSDK是编程中的传统难点,曾经听有一个技术不是很好的朋友乱说什么给你API谁都会用,其实并非那么简单,个人写的WinAPI程序也不少了,其实之所以难就难在每个调用的API都包含着Windows这个操作系统的潜规则或者是windows内部的运行机制. 首先来谈谈句柄,初学习WinSDK的朋友刚看到这个词头大了吧?

浅谈结对编程

浅谈结对编程 结对编程 结对编程,是一种敏捷软件开发的方法,极限编程的组成部分.结对编程技术是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计.同一个算法.同一段代码或同一组测试.一人充当“执行”角色,只负责编程.另外则负责“观察者”(或“导航”),检测bug和把控整体设计.两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案.而这个解决方案恰恰是其它软件工程方法学中所没有的. 由于自己长时间都习惯了一个人编程,所以在这次结对编程的初期在做项目的

五 浅谈CPU 并行编程和 GPU 并行编程的区别

前言 CPU 的并行编程技术,也是高性能计算中的热点,也是今后要努力学习的方向.那么它和 GPU 并行编程有何区别呢? 本文将做出详细的对比,分析各自的特点,为将来深入学习 CPU 并行编程技术打下铺垫. 区别一:缓存管理方式的不同 GPU:缓存对程序员不透明,程序员可根据实际情况操纵大部分缓存 (也有一部分缓存是由硬件自行管理). CPU:缓存对程序员透明.应用程序员无法通过编程手段操纵缓存. 区别二:指令模型的不同 GPU:采用 SIMT - 单指令多线程模型,一条指令配备一组硬件,对应32

浅谈云巴实时通信的编程模型

浅谈云巴实时通信的编程模型 中国物联网 2016-09-28 09:38 概要 有人常问,云巴实时通信系统到底提供了一种怎样的服务,与其他提供推送或 IM 服务的厂商有何本质区别.其实,从技术角度分析,云巴与其它同类厂商都是面向开发者的通信服务,宏观的编程模型都是大同小异,真正差异则聚焦于产品定位,业务模式,基础技术水平等诸多细节上.本文暂不讨论具体产品形态上的差异,着重从技术角度浅谈实时通信的编程模型. 什么是实时通信 「实时」(realtime) 一词在语义层面上隐含着对时间的约束(real

C语言之通过冒泡排序浅谈编程思想

写这篇博文的目的是想起到抛砖引玉的作用,还请大牛们留下一些先进的思想,让小菜学习一下.下面入正题. 复习C语言怎么能少的了冒泡呢,记得刚学C语言那会,感觉冒泡排序真的太复杂了,理解不大了,嗯!还是当时的功底不够啊.当时一些冒泡都头疼,感觉这么多的循环(哈哈!!其实也就俩,当时就是感觉太复杂).现在再写冒泡排序,感觉自己当时学C语言的时候是不是太笨了呢. 仔细想想,之前写冒泡之所以感觉到难是没有真正的理解冒泡的思想,就硬着头皮写,结果可以想象,是以失败而告终的.现在写代码也有一段时间了,学的编程语

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO https://blog.csdn.net/column/details/21963.html 部分代码会放在我的的Github:https://github.com/h2pl/ 浅谈 Linux