{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

有没有可能设计出来一套中文的编程语言?

SwordFlySwordFly 回答10 收藏1
问题描述:现在几乎所有的计算机编程语言都是英文的,有没有可能设计出来一套中文的编程语言,让所有使用中文的人都能非常轻松的入手。
收藏问题

10条回答

UnixAgain

UnixAgain

回答于2022-06-22 18:53

当然能!我能,你也能。

下面是原创的中文语法的类似LOGO语言的编程环境,用JavaScript实现:

全部业余完成。先做了一个月,出了雏形之后搁置了一年,又拿起来断续做了一个月做些性能优化。

实现时,在JavaScript代码中尽量用了中文命名标识符,因为JavaScript本身支持:

市面上也有不少从零开始实现编程语言的书,我参考了之后用Java实现了一个通用中文编程语言,效果如下:

当然Java源码里也尽量用了中文命名标识符:

这是在那本书自带的现成代码上修改后实现的,前后大概用了十天。

你当然也可以,如果愿意学的话。

评论0 赞同0
  •  加载中...
YanceyOfficial

YanceyOfficial

回答于2022-06-22 18:53

这个思路好,至少敢想。如果实现了就不总受制于人。

评论0 赞同0
  •  加载中...
ssshooter

ssshooter

回答于2022-06-22 18:53

先给出结论:中文编程一定能开发出来,而且会逐步在国内达到普及程度,但是一定不会是专业程序员的首选,而是成为其他人员在生活、学习、研究、工作上的强有力辅助工具。

习惯限制了我们的想象力。全世界主流编程语言都是用的英语,才让我们认为英语过去、现在、未来都是编程语言的不二选择。

以前,人们认为操作系统不可能用中文,直到简体中文版的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办公软件一样属于必备技能。

可以预测,非职业玩家,会更喜欢用脚本语言。脚本语言会在大众中大量普及。比方说未来,在公有云上购买一个服务,需要使用一段简单脚本进行高度定制化,从而可以快速实现一个个人网站,可以实现一个深度学习的训练任务。

那么,这些非职业程序玩家,就会更多地选择中文编程语言。对于他们来说,不需要高深的,最新的技术,只要够用就行。这一条规律,对于职业程序员同样适用。行业分工只会越来越细,比如现代的多数程序员已经不像过去那样去关注算法,关注汇编了,他们比过去更关注的是选择什么框架以及学会该框架,更加关注需求。因为高深的技术细节有更专业的人员去实现。再强调一下,这是由社会分工引起的。分工没有高低贵贱之分。做算法的,做芯片的,做基础框架的不见得就比做业务编程的更厉害。再比如在很多游戏公司,写程序看似难度最高,实际上工资不一定有做美工和做策划的高。而美工和策划甚至完全不会编程。同样,只会中文编程,只会调用现成框架(可能是英语写的)的人,也绝对不会低人一等。

评论0 赞同0
  •  加载中...
马龙驹

马龙驹

回答于2022-06-22 18:53

牛逼的思维 不是靠语言来承载的

语言只是个工具 哪个方便 哪个好用 用哪个

不是汉语不好

也不是英语牛逼

编程只是需要一套符号系统,再加上相应的语法。

发明者套系统的人们,他们大多是拉丁语系的,而且还有几百年的数学物理里面用到的符号代数系统,用的是拉丁字母和阿拉伯数字。

他们只能用他们自己的语言,挑了几十个英文单词来作为语法的关键字,设计了用拉丁字母加数字加符号的方式来命名,刚好他们有了ascii这套东西可以用。

题主是只针对这几个英文单词和命名用的字母吗?

那简单替换很容易的。

但是如果一定要出一套自己的编程系统(不只是编程语言),可以参考一下现在的少儿编程吧,图形界面的,比这种简单替换的,意义更大。

评论0 赞同0
  •  加载中...
dingding199389

dingding199389

回答于2022-06-22 18:53

有可能,但是没有意义,主要两点,第一,中文是表意文字,适合于写文章等,中文可以极大提高阅读速度和易于理解文字含义,认识中文的人,相信看到的文字一定是含义,而不是一个符号,而英文是符号化的表音语言,而计算机正好是符号化,所以英文更适合计算机程序。

评论0 赞同0
  •  加载中...
JasonZhang

JasonZhang

回答于2022-06-22 18:53

易语言就是

评论0 赞同0
  •  加载中...
DesGemini

DesGemini

回答于2022-06-22 18:53

不能...

你有这种想法...

是因为你误以为0123456789是中文...

其实中文是零一二三四五六七八九...

0123456789是古印度文...

...

所以...

中文有其劣势...也有一定的优势...

不是什么场合都适用的...

...

评论0 赞同0
  •  加载中...
Nosee

Nosee

回答于2022-06-22 18:53

先要回答一个问题:开发以以中文为基础的编程语言,有什么必要性?以中文为基础的编程语言,与现有的编程语言相比有什么优越性?

如果仅仅是以中文为基础的编程语言,中国人看起来方便,或者可以昭显中国文化的博大精深。那就免谈。因为这个建议昭显了一小部分人的没出息,又暴露了他们太小看中国的理科生。

评论0 赞同0
  •  加载中...
haobowd

haobowd

回答于2022-06-22 18:53

没必要用中文 用符号更好(人类通用)

评论0 赞同0
  •  加载中...
OldPanda

OldPanda

回答于2022-06-22 18:53

哪种语言不重要,实现目的,都需要的逻辑思维等不变的。那种效率高用哪个,何必纠结?

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<