{eval=Array;=+count(Array);}
当然能!我能,你也能。
下面是原创的中文语法的类似LOGO语言的编程环境,用JavaScript实现:
全部业余完成。先做了一个月,出了雏形之后搁置了一年,又拿起来断续做了一个月做些性能优化。
实现时,在JavaScript代码中尽量用了中文命名标识符,因为JavaScript本身支持:
市面上也有不少从零开始实现编程语言的书,我参考了之后用Java实现了一个通用中文编程语言,效果如下:
当然Java源码里也尽量用了中文命名标识符:
这是在那本书自带的现成代码上修改后实现的,前后大概用了十天。
你当然也可以,如果愿意学的话。
先给出结论:中文编程一定能开发出来,而且会逐步在国内达到普及程度,但是一定不会是专业程序员的首选,而是成为其他人员在生活、学习、研究、工作上的强有力辅助工具。
习惯限制了我们的想象力。全世界主流编程语言都是用的英语,才让我们认为英语过去、现在、未来都是编程语言的不二选择。
以前,人们认为操作系统不可能用中文,直到简体中文版的Windows出现,甚至连主板界面都是中文的。以前,人们认为打字就是英文世界的强项,认为中文天生不适合计算机,永远没有英文速度快,直到五笔的出现以及后来的智能拼音、中文语音输入法的普及。以前,人们认为计算机只有高级知识分子才能玩,直到智能手机的普及,连老太太都玩的不亦乐乎,甚至不用键盘和鼠标,就用手指划来划去。以前,人们认为只有学会了Photoshop才能处理、美化照片,直到美图秀秀、大眼瘦脸软件的出现,随便一个人都可以轻松美化手机拍的照片。以前,安卓系统刚出来时,人们认为国外的APP(特别是游戏)比国内的好用太多,而后来,大家发现手机上竟然95%以上的APP(包括游戏)都是国产的。
例子举得有点多,但都与本问题有相通之处。中国文化的影响力逐步提高,国人在各方面的水平也在逐年提升,很多高端玩法逐步平民化、大众化。
我们再回到中文编程这个专业技术上来。计算机高级语言大致分为两大类。一种叫编译型语言,一种叫解释型语言。
编译型语言,最终都会编译成计算机能理解的二进制形式,机器指令。也就是说,编译是将人类能看懂的语言翻译成计算机能看懂的指令。不论计算机语言是什么,最后编译出来的东西都是几乎无差别的。这个计算机语言,可以是英文形式的,也可以中文形式的,可以是语音形式的,也可以是框图形式的。形式不重要,因为有了编译过程,最终都会变成机器语言。
解释型语言是将计算机高级语言就地解释执行,由宿主程序负责运行。脚本语言通常就是解释型语言。大家见得最多的就是网页上的JavaScript脚本了,这个脚本必须依赖于浏览器这个宿主才能运行。浏览器负责解释JavaScript脚本。宿主(解释器)即可以解释英文形式的脚本,也可以解释中文形式的,哪怕是语音也照样可解释。解释很多时候都是一句一句地解释。你对着一个机器人用普通话或粤语说“过来”,它就乖乖地过来,这就是最简单的脚本解释。你还可以对着一个空调,按一堆按钮,让它解释成“如果凌晨3点室外温度低于25度,就关空调,否则凌晨5点再关空调”。连说话和按按钮都能编程,还担心中文文字编不了程序?
有的人说,中文一个汉字占用2字节,英文只占用1字节,所以中文极端低效。这里姑且不讨论到底汉字占用2个还是3个字节,也别考虑联合国的文件到底是中文的薄还是英文的薄。就算中文打字更多、更长,又有什么关系呢?很多业内人士都明白,语言不是重点,重点是算法、思想。写过C++或JAVA的人,去写Python,就会觉得同样一个功能,Python的代码真的好短很短。JAVA这样写
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
Python这样写
map={}
map["key1"]="value1"
但仔细想想,这个简单或复杂的形式真的那么重要吗?这个差别,难道比中英文的差别还要大吗?如果能忍受C++和JAVA等冗长语法,难道就忍受不了中文?
我们还可以借助先进的IDE自动补全,借助先进的输入法。所以别再纠结来回切换输入法这些细节问题了。 习惯限制了我们的想象力。以前,我们用惯了鼠标和键盘,谁能想到会有手机上的多点触控和手势输入呢?同样,我们也无法想象未来的输入法会进化到什么程度。所以不要用输入法的暂时的局限性,去限制中文编程的可能性。
而至于认为编译出来的代码,中文占用更多的硬盘空间,更多的内存,那就完全是外行了,完全是大错特错。之前已经说过了,如果是编译型语言,编译出来的东西都是无差别的,代码里的中文私有函数,中文注释,中文局部变量名统统都消失了,最后全部成为了机器指令,内存地址,堆栈操作。
总结一下,中文编程,在技术上没有任何问题,不论是开发效率,还是执行效率,都没有明显弱于英语编程的地方。
技术上的可能性说完,再讨论一个绕不开的话题,叫做“生态”。目前中文编程一直没有火起来,主要就是生态问题。也就是说使用中文的国家很少,很多编程大牛都来自欧美、日本、印度等非中文国家。而使用的人少,大家贡献的库函数,框架,攻略,教材等就少。这就称为生态差。生态差,意味着写个程序,找不到现成的代码库,得自己从头开始写。生态好,则网上一堆现成的,开箱即用。比如像训练个神经网络,如果用Python,直接就有类似tensorflow这类成熟稳定久经考验的开源库,而如果是中文编程,若生态差,那没办法,自己写。这工作量…………
中文编程的生态差,意味着,中文编程短期之内不可能成为职业程序员的首选语言。职业程序员是靠编程吃饭的,代码复杂性很高,体量大,效率、稳定性非常重要。所以会尽量选择成熟的,生态环境好的语言。
但是,除了职业程序员,还有其他的人群。正如同,除了职业翻译,还有更多的人要学外语用外语,除了职业摄影师,还有更多的人要照相、发朋友圈发微博。
绝大多数人学英语不是为了当职业翻译,学篮球不是为了进职业球队,学office办公软件不是为了当文员。
很好理解了,未来,更多的人学编程,不是为了当职业程序员。编程就像是英语、office办公软件一样属于必备技能。
可以预测,非职业玩家,会更喜欢用脚本语言。脚本语言会在大众中大量普及。比方说未来,在公有云上购买一个服务,需要使用一段简单脚本进行高度定制化,从而可以快速实现一个个人网站,可以实现一个深度学习的训练任务。
那么,这些非职业程序玩家,就会更多地选择中文编程语言。对于他们来说,不需要高深的,最新的技术,只要够用就行。这一条规律,对于职业程序员同样适用。行业分工只会越来越细,比如现代的多数程序员已经不像过去那样去关注算法,关注汇编了,他们比过去更关注的是选择什么框架以及学会该框架,更加关注需求。因为高深的技术细节有更专业的人员去实现。再强调一下,这是由社会分工引起的。分工没有高低贵贱之分。做算法的,做芯片的,做基础框架的不见得就比做业务编程的更厉害。再比如在很多游戏公司,写程序看似难度最高,实际上工资不一定有做美工和做策划的高。而美工和策划甚至完全不会编程。同样,只会中文编程,只会调用现成框架(可能是英语写的)的人,也绝对不会低人一等。
牛逼的思维 不是靠语言来承载的
语言只是个工具 哪个方便 哪个好用 用哪个
不是汉语不好
也不是英语牛逼
编程只是需要一套符号系统,再加上相应的语法。
发明者套系统的人们,他们大多是拉丁语系的,而且还有几百年的数学物理里面用到的符号代数系统,用的是拉丁字母和阿拉伯数字。
他们只能用他们自己的语言,挑了几十个英文单词来作为语法的关键字,设计了用拉丁字母加数字加符号的方式来命名,刚好他们有了ascii这套东西可以用。
题主是只针对这几个英文单词和命名用的字母吗?
那简单替换很容易的。
但是如果一定要出一套自己的编程系统(不只是编程语言),可以参考一下现在的少儿编程吧,图形界面的,比这种简单替换的,意义更大。
有可能,但是没有意义,主要两点,第一,中文是表意文字,适合于写文章等,中文可以极大提高阅读速度和易于理解文字含义,认识中文的人,相信看到的文字一定是含义,而不是一个符号,而英文是符号化的表音语言,而计算机正好是符号化,所以英文更适合计算机程序。
不能...
你有这种想法...
是因为你误以为0123456789是中文...
其实中文是零一二三四五六七八九...
0123456789是古印度文...
...
所以...
中文有其劣势...也有一定的优势...
不是什么场合都适用的...
...
先要回答一个问题:开发以以中文为基础的编程语言,有什么必要性?以中文为基础的编程语言,与现有的编程语言相比有什么优越性?
如果仅仅是以中文为基础的编程语言,中国人看起来方便,或者可以昭显中国文化的博大精深。那就免谈。因为这个建议昭显了一小部分人的没出息,又暴露了他们太小看中国的理科生。
10
回答10
回答9
回答10
回答0
回答8
回答9
回答10
回答4
回答6
回答