A. 为什么我们不发明一种汉字编程语言
编程语言,本质上是一种符号语言。类似于数学符号,它的特点还是以简单为主,尽量使用笔画少的符号来表示特殊的语义,而不是使用母语。它看上去类似英语只是巧合,因为英语单词的缩写已经足够简化,正好符合要求罢了。
汉语是象形文字,单个字的信息含量很大,在阅读速度上有很大的优势,但在打字上就成了一种弱点,因为键盘空间放不下常用的汉字。就算放得下,人眼也没法从几千个按键上迅速找到所需的字。常用的字越多,人眼查找常用字所花的时间越长。打字与写字是不一样的。写字是拿笔直接在纸上写,心到,眼到,手到,不存在查找的问题,但打字存在查找的问题。想加快打字速度,就只能减少按键数量,也就是从几千个汉字里提炼出几十个偏旁部首来,也就成了字母。
字母,偏旁,部首,只是同一类东西的不同称呼罢了。都是从最初诞生的母语象形文字里简化出来的一部分,目的都是为了让文字更简单。编程和数学,因为本身在逻辑推理上对人脑的消耗很大,就会更注重在符号的图像识别上节省脑力,所以它们的符号相比起人类的母语来说,都很简单。
B. 为什么很多人反对中文在编程中的使用
首先我要声明:排斥使用中文编程和爱国不能混为一谈,坚决抵制不使用中文编程等同于不爱国的道德绑架。不使用中文编程的主观因素和客观现实存在有很多,个人使用习惯、开发效率、开发所使用的ide工具不支持等因素,都会让程序员更偏向使用英语编程。
先来说说历史原因,编程起源于外国,编程语言,计算机,甚至上层的开发工具,基本上都是外国人使用英语来开发的,这些最大的问题就在于,外国人并不会给中文来做适配,就算适配了,也无法使用中文来编程测试,因此遇到了bug也无法修复。这大概是中文编程目前最大的制约。很多码农说现在的主流编程语言都是Unicode编码都支持中文,这很正确,举例java,但是我想他们根本呢没有用过中文来写代码,完全没有考虑过ide工具是否支持,编程语言并不是编程的全部,虽然脱离ide工具我们也能够编译代码,但是脱离了ide工具我们的开发效率会降低很多倍,于是乎现在企业开发基本不可能脱离ide工具,没有的可能都要专门自己开发一套。
再来说说很多码农对于中文编程的真实内心独白:用中文写代码会很垃圾,很廉价?懂英文比较厉害?中文写的代码不行?要便于给外国人看?认为中文编程很多余?习惯了英文编程了不想改变?虽然有些直抒心意,但是也在一定程度上直观反映了排斥使用中文编程的码农心态。
我认为制约国内程序员使用中文编程的最大因素是完善框架的缺失,诸如易语言之类的其实都不过是伪中文编程,很多底层的东西也还是用到的英文,而底层的英文又限制了上层框架的编写,语法框架无法的限制导致了上层编写程序的时候并不适配中文,这样的编程不仅不能提高效率,反而增加了理解难度。
所以我认为中文编程最大的难点是怎么去编写一套适合中文的编程框架,而不仅仅是把英文翻译成中文,这样的中文编程其实真的没有多大意义。
C. 为什么编程不是用中文代替,那岂不是更简单了吗
因为中文的语法、语义结构比英文复杂得多得多,容易出现多异性。
D. 为什么没有中文写的编程语言
编程语言是一种程序员与机器沟通的工具,程序员的UI(用户接口),用于定义业务逻辑与指挥计算机工作,作为工具首先就是上手效率要高,不要因为为了打几个中文而中断思路。无论你用拼音输入法还是五笔或者是直接拼音字母,你告诉我要表达“如果”这个含义,哪个词敲键盘次数少,次数少的效率就高:“if”“ruguo”。
其次,编程的瓶颈是在指令的语言吗?在如今网络时代谁还不懂几个英文,再则,计算机语言不是人类语言,它只是借用了人类语言中20-30个关键词作为基础指令,方便记忆而已,业务逻辑才是程序要考虑的,以满足最终客户需求完成任务。用“如果”或是“if”,只要约定好,计算机都会翻译成二进制,那么对于计算机它是无所谓你用什么“语言”,编译器能编译就行,而为了视觉上亲切一些,牺牲可读性、输入效率,源代码长度,以及潜在的代码安全问题,而得不偿失。当你代码量上千行后,看着满屏中文你也许会突然忘了你接下来要干什么。所以专业人员是不会考虑用中文的。
编程的核心是业务逻辑,其本质是算法,其基础是初中数学,当然有高数基础最好,因为某些业务逻辑,如果有高数基础,代码量会大大降低,代码会更简洁明了。而中文还有个严重问题就是代码安全性。中文输入法中存在各种特殊字符,有些是不可显字符,有些是视觉特征不明显容易造成歧义,比如你要随时注意全角半角,因为计算机认为全角空格和半角空格是两个不同的字符。试想你本来正被程序中嵌套循环或者各种逻辑错误而烦恼,又被中文带来的字符不明确造成困惑,如果你还能坚持下去学习我是很敬佩你的。
当然作为行为艺术,玩玩是没有问题的,写个小程序给小伙伴展视一下娱乐娱乐完全没问题,但正经程序员看到了会斜眼看你,当然你只是学着玩,可以考虑易语言,不过它只是VB的马甲,语言规则遵循VB的语法。
E. 系统编程全都用英文而不用中文,为什么要这样做
人类科技的发展最伟大的成就就是编程系统的诞生,它推动着人类科技快速向前发展,在整个人类文明中,系统编程的应用可以说是无处不在,从我们的计算机系统,手机系统,车床系统,卫星系统,宇宙飞船系统等,可以说是走进了各个行业,科技的发展离不开工业化,而工业化的实现需要系统的帮助。
由此可见,一个系统编程有多么的重要了,我们现在用的手机主要有两个系统,一个是苹果系统,一个就是广泛使用的安卓系统。不管是什么样的系统,我们会发现它们都是用英文编写的,对于很多英语不怎么好的人们来说,看英文编程就像是在看天书,根本不明白说得什么。
F. 编程为什么没有中文语言
因为起源是外国,所以大多都是外语,不过也还是有中文的。可以认为程序是一门和英语、汉语等语言平行的语言,有独立的语法和用法,只不过借用了英文字母而已。就像日语借用了汉字,但和中文基本没有关系。
之所以借用英文字母,是因为用英语的人最先发明了键盘和电脑,然后就习惯性的用下来了。
G. 编程为什么不用中文
其实是有中文的编程语言的,最出名的是易语言,此外还有cpython之类的。都是中文的编程语言。
但之所以大部分编程不用中文,其实是有他的道理的。
1. 中文打字效率太低,任何一个字最少也要两次击键,效率上不如英文。
2. 中文符号不规范,存在全角和半角的问题。
3. 大部分编程语言在一开始就是以英语做为母语的(即使日本人开发的ruby,母语也是采用的英语)。这主要是为了交流的需要。
4. 英语能够被所有的操作系统和编译器支持,而操作系统与编译器要想支持中文,则需要付出额外的努力。
5. 很多亚洲语言都属于”暧昧“的语言,即语法中存在太多不确定因素,所以天生不适合做为编程语言使用。(不相信么?那么解释一下,为什么 ”中国人大胜日本人“和”中国人大败日本人“居然是一个意思)
6. 最后,其实中文程序语言并不比英文的好学,而且可读性也比不上英文程序。
H. 为什么编程不能用中文代替呢,那么多代码不枯燥吗
易语言是用中文的。为什么很多语言不是中文,因为设计这门语言的都是国外的,主要是英文方便,输入简单,英语在存储时占用空间小,不像中文,输入复杂,存储占用空间更大,没有输入法还不行,而英文不一样,系统自带的就行。很多语言你自己定义的变量你可以用中文,然后你会发现还是英文好用。
I. 为什么程序员不能用中文来编程
编程不用中文的原因:
现在的编程软件全部都是英文的是因为计算机技术最先产生于美国,我们使用的操作系统基本是国外的,编程软件大都基与他们的操作系统.另外英文字符也有其自身的优势(在计算机系统信息识别上)当有一天我国有拥有自己知识产权的丰富的计算机软.硬件核心技术的时候,就能实现这一点!
编程的语言目录:
* CSS Cascading Style Sheets 层叠样式表
*.NET是微软2002年,为开发应用程序创建的一个富有革命性的新平台
*ActionScriptActionScript是Flash的脚本语言,与JavaScript相似,ActionScript是一种面向对象编程语言。
*APL、A+和J
*AdaAda是一种表现能力很强的通用程序设计语言
*汇编语言 汇编语言(Assembly Language)是面向机器的程序设计语言
*易语言是全中文语言编程中最为强大的一个编程语言
*AWKAWK是一种优良的文本处理工具
*Basic是一种设计给初学者使用的程序设计语言
oQBasicQBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初学者通用指令代码)语言的一个变种,由美国微软公司开发
oVisual BasicVisual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言
*VBScriptVBScript是Visual Basic Script的简称,即 Visual Basic 脚本语言
*BrainfuckBrainfuck是一种极小化的计算机语言
*C、C++ 、C# C语言是一种面向过程的计算机程序设计语言; C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。
oObjective-C通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言
*ClipperClipper芯片主要用于商业活动的计算机通信网
*COBOL一种适合于商业及数据处理的类似英语的程序设计语言
*dBasedBASE是第一个在微型计算机上被广泛使用的数据库管理系统(DBMS
E语言以简体中文作为程序代码进行编程操作。
*PASCAL、DelphiPascal是一种计算机通用的高级程序设计语言 ;Delphi是全新的可视化编程环境,是一种方便、快捷的Windows应用程序开发工具
*Forth由Charles H. Moore发展出来在天文台使用的电脑自动控制系统及程序设计语言,允许使用者很容易组合系统已有的简单指令,定义成为功能较复杂的高阶指令。
* Fortran 译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。
*FoxPro是由美国Fox Software公司于1988年推出的数据库产品
*F#F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言
*FavaFava语言是一个小型的解释语言,它主要面向于系统测试领域及小型嵌入式设备。
*IDLIDL 是一种数据分析和图像化应用程序及编程语言
*GoGo语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
*JavaJava是由Sun Microsystems公司于1995年5月推出的Java程序设计语言,他是一种面向对象的跨平台语言,可以在多种平台上运行。支持开源。大量的类库。大量的开源项目。是一种非常强大的编程语言!
*JavaScriptJavascript是一种由Netscape的LiveScript发展而来的脚本语言
*J#Visual J# 是一种工具,供 Java 语言程序员用于构建在 .NET Framework 上运行的应用程序和服务
*LISP一种基于λ演算的函数式编程语言。
*LuaLua 是一个小巧的脚本语言
*LOGO是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程
*Mole在软件工程中,指较高一级程序或模块使用的一个单元或模块
*NuvaNuva语言是一种面向对象的动态脚本语言 Nuva语言的设计目的是用于基于模板的代码生成
*PerlPerl 一般被称为“实用报表提取语言”(PracticalExtraction andReportLanguage),也做“病态折中垃圾列表器”(PathologicallyEclectic Rubbish Lister
*PHPPHP 是一种 HTML 内嵌式的语言
*PL/IPL/I是Programming Language One的简写。当中的“I”其实是罗马数字的“一”。它是一只IBM公司在1950年代发明的第三代高级编程语言
*PrologProlog(Programming in Logic的缩写)是一种逻辑编程语言
*Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言
*RR是用于统计分析、绘图的语言和操作环境
*RubyRuby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言
*SchemeScheme,一种系统设计语言,由LISP语言发展而来,属于lisp的一种方言。与其他lisp不同的是,scheme是可以编译成机器码的。Scheme的一个主要特性是可以像操作数据一样操作函数调用
* Smalltalk 一种面向对象的程序设计语言 一种程序设计环境 一个应用开发环境(ADE)
* Tcl/Tk 是一种 脚本语言
*Visual FoxProVisual FoxPro原名FoxBase,是美国Fox Software公司推出的数据库产品
*快手(AAuto Quicker) AAuto是专用于桌面软件快速开发的新一代混合型编程语言, 兼具动态、静态语言优势,语法更可兼容大部分流行语言,学习成本低,开发速度快,并永久免费.
编程的相关语言:
机器语言
在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本操作,这些指令一起构成了该系列计算机的指令系统。在计算机应用的初期,程序员使用机器的指令系统来编写计算机应用程序,这种程序称为机器语言程序。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。
汇编语言
为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到了使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示计算机指令的语言称为符号语言,也称汇编语言。在汇编语言中,每一条用符号来表示的汇编指令与计算机机器指令一一对应;记忆难度大大减少了,不仅易于检查和修改程序错误,而且指令、数据的存放位置可以有计算机自动分配。用汇编语言编写的程序称为源程序,计算机不能直接识别和处理源程序,必须通过某种方法将它翻译成为计算机能够理解并执行的机器语言,执行这个翻译工作的程序称为汇编程序。
使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、烦琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。
高级语言
高级语言是一类接近于人类自然语言和数学语言的程序设计语言的统称。按照其程序设计的出发点和方式不同,高级语言分为了面向过程的语言和面向对象的语言,如Fortran语言、C语言等都是面向过程的语言;而以C++、JAVA、C# 、Smalltalk等为代表的面向对象的语言与面向过程语言有着许多不同,这些语言支持“程序是相互联系的离散对象集合”,这样一种新的程序设计思维方式,具有封装性、继承性和多态性等特征。
高级语言按照一定的语法规则,由表达各种意义的运算对象和运算方法构成。使用高级语言编写程序的优点是:编程相对简单、直观、易理解、不容易出错;高级语言是独立于计算机的,因而用高级语言编写的计算机程序通用性好,具有较好的移植性。
用高级语言编写的程序称为源程序,计算机系统不能直接理解和执行,必须通过一个语言处理系统将其转换为计算机系统能够认识、理解的目标程序才能成为计算机系统执行。
易语言编程也还可以。
编程的执行原理:
源程序
不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的
机器语言
这种将高级程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序,然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。
294评论
LeonardoSun 10小时前
81赞
踩
当然可以用汉字编程,我在大一的时候就自定义了语言,可以完全使用汉字和标点符号,没有任何英文单词,包括关键字!
而且这非常简单,有什么难的呢?有人提易语言,那我就呵呵,不解释。
只不过不知道编码格式的人使用容易出现编码问题,而且学霸英文也不会太差,为什么要费劲转成中文呢?现有的库大部分好用的都是老外写的,突然变成一堆中文出来,感觉很别扭。而且表达一个变量几个字母缩写就可以了(英语实在太差的可以用汉语拼音缩写),这么一比用中文感觉实在太啰嗦。
多说无用,来几张图用事实说话:
发个图还得加水印,好麻烦,草草加上了事,其实应该加全部,现在个别区域没加上
从图中可以看出我实在不想用中文了,循环里的变量名用的字母i,之前变量名就是用的中文,可见这里不是不能换成中文,而是我实在不想再写中文变量名了!
J. 为什么程序员都不用中文来编程呢英语不好的人能做程序员吗
虽说我国语言博大精深,但很明显在编程这件事上,英文看起来更简洁,而且他们可以用26个字母随意拼凑。但
是我们不行,我们笔画可不能乱涂乱画,什么笔画特指什么语义的字都是规定好了的。
汉语一语双关的现象很平常,但是计算机听不懂,所以只能把话按长了说,避免语句重复。
其实现在,中文编程也有比较有名的就是两种语言了,一个是习语言,另一个是易语言。
习语言我不是很清楚是什么时候出现的,它可以类比为中文版的c语言,所有的编程过程都可以用中文来进行;
网友三:
首先,编程是可以用中文的。只不过大部分的编译器都是外国人写的,国人写的编译器寥寥无几。
比如用中文编程,打印hello world,那可以把所有的英文字母,英文字符替换成中文的。同样能够用文中编程,实现打印效果。
QString tmp = str.replace("主函数", "main").replace("整数", "int").replace("。", ";").replace("开始", "{").replace("收工", "}").replace("打印", "printf").replace("返回", "return ")。
其他中文的编译器实现原理跟这个差不多,都是借助现有的语言,转译成中文。易语言就是如此,他就是基于汇编、C/C++写的。
为什么是这样的结果呢?主要原因是编译器是在特定的操作系统上集成的,而操作系统都是用英文写的,他可不认识中文。我们没有自己的操作系统,而一个操作系统是非常庞大的工程,他可是历经了几十年、几代人的心血才铸建而成的。
如果要让程序员习惯用中文编程,那么那、只能是我们自己写一套操作系统,而且这套系统必须要足够好用,足够方便,方便到我们可以不用window,不用ios。
这样至少得花上几十年、几代人的努力才行。等到那个时候,英文的操作系统可能又是另外一个世界了。