[Topic DIscussion] 为什么我们不能建立“汉语编程社区”
deepin Talks 940 views · 35 replies
Tofloor
poster avatar
欧阳魔侠
deepin
2022-05-20 08:40
Author

   在中国的土地上,在中国的民族企业里,用中国的语言编程,但我被骂成了狗。这是我在“华夏有为公司”外包时的真实经历。

   我是一个在码农界混了十一个年头的资深农民,我写过汇编,写过C,使用过C#,C++,开发android,用过java,为了跟上人工智能的大潮,我又开始学习python,我不断的学习,并用之于工作中,我就越发疑惑,为什么这么多年的发展,我们的中文语言编程还是零。

   我是个很普通的农村人,从小就不聪明,学东西很吃力,能上大学,并能混到码农这碗饭,靠的是不断的学习,但我现在越发的吃力了,不是因为我30了,而是因为我英文不怎么好,我开始探究,我们中文不能编程的根本原因。

   难道是地区法则不同?我们华夏地区是修仙文明,西方是魔法文明,所以我们中文不能控制计机算!

   最初我因为啥都不懂,我就有了个玄幻猜想,于是我去学习了《模拟电路》《数字电路》最终我发现在计算机器模拟电路中:正负电荷的运行的物理规则是一样的;在数字电路控制中:大家都是使用0和1二进制码作为机器码来控制电路。所以从硬件基础上来说,不存在任何问题。

  难道是语言规则不适合?中文字体太复杂,那拼音写简单吧,都是26个字母的排列组合。

  于是我从机器码开始探究,计算机语言的第一步,以汇编助记符代替一长串01010011这样的机器码,我以汇编代码来计算:3+4 ;与对比用拼音写汇编代码:3+4 

机器码 | 汇编指令 | 拼音简写 | 汉语拼音与注释
8A | MOV | CR | CUNRU 存入
00 | ADD | JR | JIARU 加入
(8位寄存器汇编指令,拼音简写以只写声母省去韵母的方式,为了说明方便,采用十六进制)
 
汇编代码:
 
MOV AX 0x03 ;将寄存器ax 中写入数据3(十六进制)
MOV BX 0x4 ;将寄存器bx中写入数据4(十六进制)
ADD AX BX ;将寄存器bx中的数与寄存器ax中的数相加,并将结果存入到ax中
 
 
拼音编程(被动形,“被”字句):
AX BCR 0x03 ;AX寄存器中(被)存入3(十六进制),BCR(拼音:被存入bei cun ru)
BX BCR 0x04 ;BX寄存器中(被)存入4(十六进制)
AX BJR BX ;AX寄存器中(被)加入寄存器BX中的数(拼音:被加入(bei jia ru))
 
 
拼音编程(主动型,“把”字句):
0x03 CR AX ;把3(十六进制)存入AX寄存器中(拼音:被存入cun ru)
0x04 CR BX ;把4(十六进制),存入BX寄存器中
BX JR AX ;把寄存器BX中的数据,加入到AX中(拼音:加入(jia ru))
 
我无论从语言结构“主谓宾”的形式,还是人类说话习惯来说,用拼音作助记符,不仅毫无违和感,而且在思维逻辑上不需要转弯,既然助记符可以替代,那这代码译码器输出的纯器机码也可以是相同的呀。那岂不是说,在汇编语言这里用中文拼音编程也是可以的哟!
 
难道是在中高级语言的时候会遇到鬼?都说什么中文是同音字太多,所以用拼音不行,从汇编初级语言,到高级语言,会因为同音字词产生歧义。
 
于是我又去控索了C语言,发现这个说法完全是扯蛋蛋的,c语言的关键字才32个,难道我们博大精深的中文中找不出32个词汇,意义符合且拼音简写合适的?比如“存入",如果拼音简写‘CR’与其它关键字重叠,我也可以存储、存进、存放、甚至还可以是填充,填入,填进,装载,装入,装进。。。以我贫瘠的汉语水平,这样意思的词汇我能想出一大堆,汇编指令集就算加上伪指令,顶死了也不会超过两百来个吧,这跟本就不是问题呀。
 
那难道是只用拼音,没意义,我们最终的目地是要上了汉字才算真正的汉语编程?然后我们汉字输入因为有音调的原因,无法准确输入?
 
我只想了两秒,这发现这个说法又是在扯蛋蛋,我现在就敲着汉字,那代码的注释就不是问题了,而且我上学时一个成绩吊车尾的,看拼音写汉字题也能得满分。至于所说的音调问题,键盘上不是有大空隔键吗,把它拆成四个键分别输入1 2 3 4声,表示四个音调,不行吗,反正我们写拼音也是最后写音调再空一隔的嘛。中国是制智造大国家了,生产着全世界的键盘,这点改动难吗?而且还与原来的相兼容,大不了,出口时,又装回一个大横键就行,连开模都不用改。
 
最后的从汉字到拼音,就是相同对应字符的替换,从拼音到拼音助记符,也是相同对应字符的替换,从助记符到机器码,还是相同对应字符的替换,从规则上来说这些都不是问题呀。
 
以上我从技术角度分析,汉语编程可行性,不存在任何原理上的缺限。那我只能从政治,经济,文化上去找汉语编程没发展起来的原因了。
 
从政治科技上讲,我们现使用的计算机语言体系源于ASCII (American Standard Code for Information Interchange): 美国信息交换标准代码是基于拉丁字母的一套电脑编码系统.计算机软件语言的编写从来就没有脱离过这套体系,从汇编助记符,到c代码,到java,python代码,可以看出都是英文单词,以前我们中国的计算机研究是零,所以我们全民学英文,因为代码控制能搞明白的人太少,所以我们走了捷径,只翻译说明书,没去翻译和替换代码字符,毕竟硬件译码器只能编译人家定制标准的代码。
 
这样好吗,全世界都统一了标准,难道不好吗?对于我们来说极其不友好,以我们战士的枪为例,建国时我们已经能仿制AK47这样的优秀冲锋枪了,性能比原厂的还好,为啥我们还要研制95呢?因为我们的手没有西方人的大,我们的手臂没有西方人的长,我们的手指没有西方人的粗,AK47再好,能有为我们身体特征量身打造的95顺手吗?同理,我们码农写代码也一样,c\c++,java,python,语言再好,都不是最适合我们中国人的思维逻辑和语言习惯的。本质上讲,我们在写让外国工程师看着很舒适的代码;而且我们入门的要求还不低,要先学点英文,至少要开了英语课才行,那时我们已经十五六岁了,但如果是拼音编程,我们三岁的娃都可以了,代码基本逻辑其实就是把水从这个杯子倒入另一个杯子嘛,所以后不要再拿马斯克十岁自学写代码,给我们的后代灌毒鸡汤了,改成拼音,我们三岁的娃写得比他还好。
 
从经济上讲,当时我们走的是全球化的路线,如果我们生产的芯片发布的是拼音指令集,还能卖出去不,别说卖出去了,你发布拼音指令集就是在挖老美在计算机界的祖坟,他不会制裁你,而是会直接弄死你,所有也不会有那个芯片生产的公司会搞这个吧,外国的公司就更不用指望了。我们的科技还是太落后了,在计算机语言上去挑战ASCII标准,那是想都不敢想的事,也就现在可以想一想了。
 
从文化上讲,在计算机这块,我们当初,包括现丰,一点自信都没有,自然就会把人家的标准奉为圭臬,我至今还记得在“华下有为公司”背《C代码语法规范》《java代码与变量命名标准》的情景。当我们一无所有时候还谈什么文化自信,同样是一个麻袋,LV出品几万块多少妹纸抢着买,我给我妹纸缝一个,我都能想向出她那快哭出来“感动”的表情了。
 
那如果我们现在从拼音汇编开始发展中文计算机语言,我们能成功吗?
 
我以写玄幻小说的作者身份保证,能!一定能!
 
首先脱离了英语等级的限制,码农新手等级从平均大学水准,直线下降到了小学三年级水平,如果不考虑硬件电路知识,从纯软件的开发角度讲,以大天朝的内卷,我们编程可以从胎教开始,我们跟本不用担心有多少程序员会加入这个社区的问题。
 
其次,没有了英语的门槛,以如今中国互联网的卷程度,更不用担心没有人为社区用爱发电,只要有人开个直播,演示一下语法规则,为你写拼音代码的大把的有,去起点,纵横,息壤,有毒。。。吆喝一声“谁会写拼音?”那肯定应者云集,搞计算机语言开发,以他们每天两万字的水准,十天给你整出“龙吟”版本(相当于arm汇编),一个月整出“龙啸”(相当于c/c++),半年整出"龙言“(相当于java),一年弄出“龙语”(相当于python)毕竟计算机拼音编程相对于这群修仙,修魔,修道者来说太简单了。
 
最后,开发出属于我们自己的计算机系统,还不是手到擒来的事吗?至于我们所担心的安全问题,那完全不是问题,中国有多少种方言,你知道吗,你不可能知道,我可以明确的跟你说 我住在湖南宁乡与湖南益阳的交界处,相邻村就有三种方言,我可以讲三种方言和普通话,如果以普通话为准确,我可以弄出三种拼音编程语言,不用加密算法,明码给人看,会有多少人看懂,更别说老外了,给他三十年能学懂普通话算他牛。
 
唉,我知道这都是我的意淫,专家们会觉得像我这种连英语都学不好的人,没资格做程序员,那是高等人才才能玩的,所以我也只能是希望有生之年,不,九泉之下盼望计算机“龙语”能够现世,哪怕只是能控制51单片机,我亦可以含笑九泉。
 
今天看了社区新闻说打造属于中国的计算机系统,但以英文为标准的计算机语言体系,你就已经把九成九的中国人排除在开发者以外了,我确定专家们是真的不知码农的苦,何不食肉糜,却恨我等何其不争!
Reply Favorite View the author
All Replies
andktan
deepin
2022-05-20 08:48
#1

我看完 了,支持你

Reply View the author
siscte
deepin
2022-05-20 08:52
#2

你有没有考虑过,一个汉字占用2个字节,一个字母只占用1个字节。从存储代码角度考虑,哪个开销大?而且存储是非常珍贵的

Reply View the author
欧阳魔侠
deepin
2022-05-20 08:56
#3
siscte

你有没有考虑过,一个汉字占用2个字节,一个字母只占用1个字节。从存储代码角度考虑,哪个开销大?而且存储是非常珍贵的

低存储只用拼音,高存储才用汉字。就像汇编写单片机,python写人工智能算法一样

Reply View the author
enforcee
Moderator
2022-05-20 09:13
#4

造编程语言算是这里面最省事的,造库才是大工程。C#有.NET,C++有Qt,python有各种各样模块(wheels)、这些库和语言是深度绑定的,剥离了这些库这些语言的用途自然会缩水,不会再有那么多人去追捧。这和坛友整天强调的“生态”其实是一个道理。比起去重新创造一个语言,不如把这些编程语言的常用库文档都翻译过来。就像楼主说的,关键字就几十个,就这么多的关键字当真是初学者学习编程的障碍吗?但是如果库文档没有本地语言版本的,那才真是英语恐惧者的噩梦

blush

Reply View the author
desert
deepin
2022-05-20 09:13
#5

不是不想,是真的效率慢,定义一个变量用汉字和用英文速度真的不一样

Reply View the author
老咸鱼
deepin
2022-05-20 09:19
#6

最悲剧的是,任何和科技沾边的资料都是英文的,最简单的也有一部分是英文的

最让我搞不懂的是,国内公司的资料一样是英文的,中文表达不出来吗?

非得是英文?

中文是信息含量最高的语言/文字,有什么表达不出来的?

中国13亿人,起码有8亿人不懂英文吧?

语言/文字的隔离…

Reply View the author
欧阳魔侠
deepin
2022-05-20 09:20
#7
desert

不是不想,是真的效率慢,定义一个变量用汉字和用英文速度真的不一样

没想过一步到位,从拼音开始,以拼音编程写出 ni hao shi jie 就是第一步。

Reply View the author
欧阳魔侠
deepin
2022-05-20 09:27
#8
enforcee

造编程语言算是这里面最省事的,造库才是大工程。C#有.NET,C++有Qt,python有各种各样模块(wheels)、这些库和语言是深度绑定的,剥离了这些库这些语言的用途自然会缩水,不会再有那么多人去追捧。这和坛友整天强调的“生态”其实是一个道理。比起去重新创造一个语言,不如把这些编程语言的常用库文档都翻译过来。就像楼主说的,关键字就几十个,就这么多的关键字当真是初学者学习编程的障碍吗?但是如果库文档没有本地语言版本的,那才真是英语恐惧者的噩梦

blush

内外双循环,英语体系下的计算机语言100多年的精华,我们绝对不能放弃的,我坚绝反对不学英语,除非有一天我们汉语体系下的科技文化能全面吊打英文体系科技文化。真到那时,可能他们的单词拼写就是我们拼音了。

Reply View the author
老咸鱼
deepin
2022-05-20 09:28
#9
欧阳魔侠

没想过一步到位,从拼音开始,以拼音编程写出 ni hao shi jie 就是第一步。

相比拼音我觉得简单的笔画/部首更好

表达不够的延伸定义就行

拼音,同音太多了,即使有声调

Reply View the author
欧阳魔侠
deepin
2022-05-20 09:30
#10
老咸鱼

最悲剧的是,任何和科技沾边的资料都是英文的,最简单的也有一部分是英文的

最让我搞不懂的是,国内公司的资料一样是英文的,中文表达不出来吗?

非得是英文?

中文是信息含量最高的语言/文字,有什么表达不出来的?

中国13亿人,起码有8亿人不懂英文吧?

语言/文字的隔离…

你说到我心里了,我天天用有道翻译看技术文档,好想哭,明明之前英成绩不过得去的,现在全完了。

Reply View the author
欧阳魔侠
deepin
2022-05-20 09:32
#11
老咸鱼

相比拼音我觉得简单的笔画/部首更好

表达不够的延伸定义就行

拼音,同音太多了,即使有声调

用拼音,硬件不用大改,都差不多是是26个字母

Reply View the author
Ziggy
Moderator
2022-05-20 09:41
#12

和语言无关...缺的是文档,而且这并不是学不会学不好编程的原因,该不懂的换什么语言都还是不懂逻辑,理论也不扎实

Reply View the author
欧阳魔侠
deepin
2022-05-20 09:47
#13
Ziggy

和语言无关...缺的是文档,而且这并不是学不会学不好编程的原因,该不懂的换什么语言都还是不懂逻辑,理论也不扎实

没有硬件给我们实践,只看文档肯定不能有,动手试一把来得理解深刻,更何况看英文文档,十四亿中国人中至少有八亿是障碍吧。

Reply View the author
欧阳魔侠
deepin
2022-05-20 09:47
#14
Ziggy

和语言无关...缺的是文档,而且这并不是学不会学不好编程的原因,该不懂的换什么语言都还是不懂逻辑,理论也不扎实

没有硬件给我们实践,只看文档肯定不能有,动手试一把来得理解深刻,更何况看英文文档,十四亿中国人中至少有八亿是障碍吧。

Reply View the author
老咸鱼
deepin
2022-05-20 10:02
#15
Ziggy

和语言无关...缺的是文档,而且这并不是学不会学不好编程的原因,该不懂的换什么语言都还是不懂逻辑,理论也不扎实

你认真的吗?

首先说,我不懂英文,也不懂编程

但是我使用命令时那些不是英文单词?

我在编辑conky、MPV配置表里面那些不是英文单词?

它们要是中文的我犯得着一个个的复制去翻译

我看不懂中文吗

在我看来语言就是最大的障碍

Reply View the author
辉夜
deepin
2022-05-20 10:18
#16

我不懂编程,不过,易语言是不是你想要的?

Reply View the author
方老四
deepin
2022-05-20 10:20
#17

我觉得主要还是编译器的问题,国内能搞编译器的单位不多,目前好像只有华为有自己的方舟编译器,并即将推出仓吉编程语言。我经常在想,编译器内部能不能实现通过代码关键字来编译,各个国家只需要提供各国语言关键字到编译器代码关键字的映射,通过一个编译器实现对各国语言的编译。

汉语编程在中国很有必要,作为一种基础能力,将大幅度提高开发人员数量,特别是各行各业的管理人员,他们通过简单的学习就能够把自己的业务问题通过计算机来解决。为什么中国的软件业不如外国,一是由于IT产品最先是由别人发明的,人家研究的人更多、更深,另一个原因是由于英语国家使用计算机没有语言障碍,学习一种语言就一通百通。

从dos到windows,操作计算机从打命令变成点击鼠标,大幅度简化了电脑操作,操作电脑已经不需要专门的培训学习了。编程能不能做到呢?中国已经有公司在研究图示化编程,并有产品推出。事件编辑器通过流程图把综合任务模块和分支模块连接起来,实现顺序、分支和循环功能,综合任务模块通过各种图示化设计器就可以实现绝大多数SQL语句功能,关键字、变量、属性、字段、函数全是中文,百分之60的编程工作可以通过鼠标点击来完成,极大地提高了开发效率。底层原理是通过制定一套普通用户很容易理解的机制和规范,最后都被翻译成C语言代码或JS代码和SQL语句执行,一套图示化前端操作规范,可生成EXE应用、WEB应用和手机APP应用,执行效率还是很高的。最主要的是通过快速的开发实践,训练了逻辑思维能力,把主要精力放在了数据,而不是放在编写、测试代码上。

Reply View the author
会飞的炒鱿鱼
deepin
2022-05-20 10:37
#18
siscte

你有没有考虑过,一个汉字占用2个字节,一个字母只占用1个字节。从存储代码角度考虑,哪个开销大?而且存储是非常珍贵的

你想多了,现在不是几十年前了,如果英文写代码用1m的存储,汉字顶多一倍而已,其实代码所占用的空间是极其有限的,现在软件看着那么大,主要还是图片等其他内容,

Reply View the author
欧阳魔侠
deepin
2022-05-20 10:42
#19
方老四

我觉得主要还是编译器的问题,国内能搞编译器的单位不多,目前好像只有华为有自己的方舟编译器,并即将推出仓吉编程语言。我经常在想,编译器内部能不能实现通过代码关键字来编译,各个国家只需要提供各国语言关键字到编译器代码关键字的映射,通过一个编译器实现对各国语言的编译。

汉语编程在中国很有必要,作为一种基础能力,将大幅度提高开发人员数量,特别是各行各业的管理人员,他们通过简单的学习就能够把自己的业务问题通过计算机来解决。为什么中国的软件业不如外国,一是由于IT产品最先是由别人发明的,人家研究的人更多、更深,另一个原因是由于英语国家使用计算机没有语言障碍,学习一种语言就一通百通。

从dos到windows,操作计算机从打命令变成点击鼠标,大幅度简化了电脑操作,操作电脑已经不需要专门的培训学习了。编程能不能做到呢?中国已经有公司在研究图示化编程,并有产品推出。事件编辑器通过流程图把综合任务模块和分支模块连接起来,实现顺序、分支和循环功能,综合任务模块通过各种图示化设计器就可以实现绝大多数SQL语句功能,关键字、变量、属性、字段、函数全是中文,百分之60的编程工作可以通过鼠标点击来完成,极大地提高了开发效率。底层原理是通过制定一套普通用户很容易理解的机制和规范,最后都被翻译成C语言代码或JS代码和SQL语句执行,一套图示化前端操作规范,可生成EXE应用、WEB应用和手机APP应用,执行效率还是很高的。最主要的是通过快速的开发实践,训练了逻辑思维能力,把主要精力放在了数据,而不是放在编写、测试代码上。

基础编程很必要,假如你不懂英文,打开电脑的linux 终端 进入一个叫”学习“ 的文件夹 是“cd 学习” 指令好懂呢,还是“进入 学习”好懂呢?

Reply View the author
欧阳魔侠
deepin
2022-05-20 10:45
#20
方老四

我觉得主要还是编译器的问题,国内能搞编译器的单位不多,目前好像只有华为有自己的方舟编译器,并即将推出仓吉编程语言。我经常在想,编译器内部能不能实现通过代码关键字来编译,各个国家只需要提供各国语言关键字到编译器代码关键字的映射,通过一个编译器实现对各国语言的编译。

汉语编程在中国很有必要,作为一种基础能力,将大幅度提高开发人员数量,特别是各行各业的管理人员,他们通过简单的学习就能够把自己的业务问题通过计算机来解决。为什么中国的软件业不如外国,一是由于IT产品最先是由别人发明的,人家研究的人更多、更深,另一个原因是由于英语国家使用计算机没有语言障碍,学习一种语言就一通百通。

从dos到windows,操作计算机从打命令变成点击鼠标,大幅度简化了电脑操作,操作电脑已经不需要专门的培训学习了。编程能不能做到呢?中国已经有公司在研究图示化编程,并有产品推出。事件编辑器通过流程图把综合任务模块和分支模块连接起来,实现顺序、分支和循环功能,综合任务模块通过各种图示化设计器就可以实现绝大多数SQL语句功能,关键字、变量、属性、字段、函数全是中文,百分之60的编程工作可以通过鼠标点击来完成,极大地提高了开发效率。底层原理是通过制定一套普通用户很容易理解的机制和规范,最后都被翻译成C语言代码或JS代码和SQL语句执行,一套图示化前端操作规范,可生成EXE应用、WEB应用和手机APP应用,执行效率还是很高的。最主要的是通过快速的开发实践,训练了逻辑思维能力,把主要精力放在了数据,而不是放在编写、测试代码上。

编译器原理其实不是很难,难的应该是工艺制造。

Reply View the author

1 / 2
To page
Use Markdown Editor
Loading