‘壹’ 为什么很多人反对中文在编程中的使用
首先我要声明:排斥使用中文编程和爱国不能混为一谈,坚决抵制不使用中文编程等同于不爱国的道德绑架。不使用中文编程的主观因素和客观现实存在有很多,个人使用习惯、开发效率、开发所使用的ide工具不支持等因素,都会让程序员更偏向使用英语编程。
先来说说历史原因,编程起源于外国,编程语言,计算机,甚至上层的开发工具,基本上都是外国人使用英语来开发的,这些最大的问题就在于,外国人并不会给中文来做适配,就算适配了,也无法使用中文来编程测试,因此遇到了bug也无法修复。这大概是中文编程目前最大的制约。很多码农说现在的主流编程语言都是Unicode编码都支持中文,这很正确,举例java,但是我想他们根本呢没有用过中文来写代码,完全没有考虑过ide工具是否支持,编程语言并不是编程的全部,虽然脱离ide工具我们也能够编译代码,但是脱离了ide工具我们的开发效率会降低很多倍,于是乎现在企业开发基本不可能脱离ide工具,没有的可能都要专门自己开发一套。
再来说说很多码农对于中文编程的真实内心独白:用中文写代码会很垃圾,很廉价?懂英文比较厉害?中文写的代码不行?要便于给外国人看?认为中文编程很多余?习惯了英文编程了不想改变?虽然有些直抒心意,但是也在一定程度上直观反映了排斥使用中文编程的码农心态。
我认为制约国内程序员使用中文编程的最大因素是完善框架的缺失,诸如易语言之类的其实都不过是伪中文编程,很多底层的东西也还是用到的英文,而底层的英文又限制了上层框架的编写,语法框架无法的限制导致了上层编写程序的时候并不适配中文,这样的编程不仅不能提高效率,反而增加了理解难度。
所以我认为中文编程最大的难点是怎么去编写一套适合中文的编程框架,而不仅仅是把英文翻译成中文,这样的中文编程其实真的没有多大意义。
‘贰’ 为什么编程都是英文为什么中文不能编程序
编程都是英文,中文不能编程序的原因:
1、编程的起源不在中国 : 计算机的起源在美国,自然而然的优先使用了英文。而汉字太多,多音字也很多,用命令的时候会变得很慢。
2、流通性差 : 英语目前还是全世界最通用的语言(虽然现在全世界都在学中文,但还需要个周期),几乎也成为了不同语种国度之间的共同语言,那中文相对来说流通性还是要差上许多,所以程序员们在互相交流的时候会难达成共识,就无法共同进步。
3、体系不够成熟 : 尽管机器只有0和1那么简单,但要用一种语言通过0和1表达人类的所有想法,设计这样一个庞大的体系谈何容易。现在汇聚的全人类智慧发展了几十年的高级语言,依然还是存在很多问题的。
4、成本高 : 想用中文编程,只能有两种方式,一是在原有硬件基础上,将中文编程转成英文编程再转成机器语言;二是要重新定义硬件,重新设计制作符合中文编程的硬件。那这两种方式的成本是相当高的。
(2)中文编程为什么遭到程序员羞讽扩展阅读
编程语言的起源和发展
第一代语言:机器语言
机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。
第二代语言: 汇编语言
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。
在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
第三代语言:
结构化语言、面向对象语言。
‘叁’ 为什么程序员不能用中文来编程
编程不用中文的原因:
现在的编程软件全部都是英文的是因为计算机技术最先产生于美国,我们使用的操作系统基本是国外的,编程软件大都基与他们的操作系统.另外英文字符也有其自身的优势(在计算机系统信息识别上)当有一天我国有拥有自己知识产权的丰富的计算机软.硬件核心技术的时候,就能实现这一点!
编程的语言目录:
* 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,之前变量名就是用的中文,可见这里不是不能换成中文,而是我实在不想再写中文变量名了!
‘肆’ 为什么程序员不用中文来编程
虽说我国语言博大精深,但很明显在编程这件事上,英文看起来更简洁,而且他们可以用26个字母随意拼凑。但是我们不行,我们笔画可不能乱涂乱画,什么笔画特指什么语义的字都是规定好了的。汉语一语双关的现象很平常,但是计算机听不懂,所以只能把话按长了说,避免语句重复。其实现在,
编程对国人不友好的其实是好的教材、资料、说明都是英文的,阅读起来困难一些。程序员编程、然后编译、处理器执行,这就是程序,这里面编译器还是老外写的呢,操作系统底层还是C语言。说到底,因为C语言是人家外国人发明的,它的一套格式已经固定了。我们中国人发明了算盘,你看看它的口诀,完全是按照中文的语言环境编写的。如果换到英文,你看看能不能用啊,那肯定不能用。
‘伍’ 程序员与编程存在密不可分的关系,为什么让他如此厌恶
编程,有些人喜欢,有些人讨厌,有些人从未尝试过,还有一些人每天都在使用。
讽刺的是,要让程序员在结对编程感到更加的舒服,我们需要在工作结束,或者在番茄钟间歇的时候,多多交流,相互反馈。但程序员大多数沉默少言,并且很内向,他们之间的反馈和交流非常的不容易。
简而言之,整个事情都不容易。
结对编程优势不可能被否认,是有据可查的。但结对编程存在的问题却很少被提到,但这些也非常重要。
郑重声明,我是一个结对编程的践行者。对于我来说,和很多人一样,我们都会对挑战所带来的收益进行评估,判断是否值得自己去付出努力。但是我也相信,和其它的挑战一样,当你准备好,知道你自己应该做什么的时候,事情就会变得很容易。
我们经常谈论各种各样的挑战,我们可以使用我们的智慧来找到解决办法。我们可以从中获得好处并减少问题带来的挑战。举个例子,我们并不需要对每一个任务都进行结对编程,我们可以间歇性的执行结对编程,更好地适合你团队的现状。
‘陆’ 华为将推出自研编程语言仓颉,为什么很多程序员不看好
9月25日,在中国深圳华为坂田基地,备受瞩目的开源操作系统欧拉(openEuler)全新发布。华为的两个操作系统鸿蒙和欧拉都将开源,鸿蒙操作系统的应用场景,是智能终端、物联网终端和工业终端;欧拉操作系统面向服务器,面向边缘计算,面向云,面向嵌入式设备。
令人瞩目的另一个消息是,华为计算产品线总裁邓泰华在采访中表示,华为明年将推出自研的编程语言仓颉,将鸿蒙和欧拉在应用开发生态上进行打通。
此前,被广泛应用的编程语言C语言/C++,Java、Python、PHP等,都是国外企业研发的。
但其实2020年华为就曾申请注册过“仓颉语言”商标,分类涉及“科学仪器”、“网站服务”。当时也传出了华为正研发新的自主编程语言仓颉的传闻。
No.1
并不是技术圈的并不支持国货,实在是有前车之鉴在,很难让人喊昌伍不谨慎。
2018年,红芯浏览器打出“爱国牌”,号称突破了浏览器内核等关键技术,培养新一代的网络安全人才,一颗“红芯”助力企业安全上云,保障国家数据安全。
但事实上,技术圈的程序员们却发现其安装目录竟然充斥着大量的Chrome文件,甚至迅扮连图标都没改。
随后创始人回应,“Chrome在红芯浏览器里面,但并非抄袭,而是站在巨人的肩膀上去做创新。”
这种解释显然非常单薄,也让随之而来的热度飞快消失。
2020年初,一款自研面向新一代人工智能和物联网应用的编程语言“木兰”诞生了,随之推出的“木兰”开源软件包,供全球用户免费下载。
但很快,这款编程语言就被大家发现,其实是python换了个皮肤,就是用python的环境、包和项目打包套壳,实在令人失望。
随后,“木兰”项目的负责人也因为科研不端问题被处罚。
No.2
诚然如此,其实程序员们依然在期待一款真正能被广泛应用的国内自研编程语言。
毕竟作为和编程语言接触最深的人,他们比任何外行都更加希望有我们自己的编程语言。
这个先河由国内顶尖企业华为来开,合情合理也具备诞生条件,不过到底成果如何,还是要是骡子是马拉出来遛遛,就让我们拭目郑或以待吧。
其实世界上略有名气的编程语言,一共有600多种,但被世人熟知和应用的,其实也不过是C++、Java、Python、JavaScript等十几种而已。
为什么很多编程语言,没有得到广泛应用呢?
并不是这些语言不好,而是没有相应的市场使用条件,也就是缺乏取代其他既有编程语言的核心竞争力,这也是华为仓颉必须解决的问题。
以Java语言为例,Java语言从出现到今天,已经发展了30余年。
在这30余年中,产生了无数和Java相关的产品、技术和标准,众多的开源框架和组件给Java程序员提供了标准积木,用于快速构建大型企业应用项目。
政府组织、机构及大型企业都青睐于用Java开发信息系统,企业用人需求量巨大,可以说学会Java,那么高薪就不是问题。
这种语言的生态环境成熟度,很难被轻易取代。
因此到目前为止,虽然我们对国产自研编程语言充满期待,但如果你想要学习编程语言,我们还是强力推荐Java。
‘柒’ 为什么很多老程序员讨厌中文编程
英文编程已经先入为主了
已经做了好多年程序员,已经习惯于现有的编程体系,使用起来已经的心应手了,从心里上觉得没必要切入到中文编程语言的学习,而且毕竟易语言在诞生初期,由于时间和技术上的限制存很多的问题,所以在心理上不接受也是特别正常的事情。
毕竟已经形成的多年的习惯,再加上工作上没有直接切入的交集,因为现在绝大部分的程序员还是用英文编写程序,习惯看英文的文档,写英文的注释,这种不能简单的理解成不爱国或者别的情怀,有更加合适的语言为啥不去使用,要想中文的编程语言大规模的普及,必须找到历史的契机点,并且经过多个版本的叠加,慢慢形成自己的生态链。
很多人为了学习英文编程,当年也是废了九牛二虎之力把四级过了,让直接切换到新的语言,显然不是很现实。