[Topic DIscussion] 为什么我们不能建立“汉语编程社区”
Tofloor
poster avatar
欧阳魔侠
deepin
2022-05-21 00: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
2 / 2
To page
欧阳魔侠
deepin
2022-05-21 02:52
#21
辉夜

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

易语言,只是上层字符替换,我们想要的是从机器码->汇编->中级语言->高级语言的一个体系,像您这类不懂编程的人,即不会编码,也能看懂代码内容,就像小说一样,自己写不出来但一看就懂。

Reply View the author
culeworks
deepin
2022-05-21 04:19
#22

写小说的人才 埋没了

Reply View the author
deltacatxx
deepin beta test group
2022-05-21 04:26
#23

我觉得比起让人简单每个关键字的含义,优秀的编程思维更重要,而培养编程的思维更多的需要数学等其他学科教育的加持。

中文编程,我觉得可以搞,但拿来直接替代不可靠。可以用来让中小学生简单的了解编程。以及特殊情况下用来替代其他编程语言。至于为什么不能直接替代,其他人比我解释的更清楚。

我觉得未来中文编程能发展得有以下条件:

1.高级语言进一步发展,语法上完全接近或者就是自然语言的语法。

2.计算机理论得到了质的、打破原有体系的发展,而这种发展是由我们主导的。

(备注:以上都是瞎说的)

Reply View the author
enforcee
deepin
2022-05-21 05:02
#24
欧阳魔侠

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

其实都不怎么好懂,他只能接受“cd”这一个名字,不是“change_directory”,也不是别的东西。如果我没学过的话,就算我知道我想“切换工作目录“,但是我也未必能想出这个命令叫“cd”。如果让我给他起个名字,我还能想出“switch directory”,“choose directory”,“set directory”这些,directory还能换成folder、path之类的名字。中文也同理。命令这玩意还是考验记忆力。

Reply View the author
欧阳魔侠
deepin
2022-05-21 05:05
#25
deltacatxx

我觉得比起让人简单每个关键字的含义,优秀的编程思维更重要,而培养编程的思维更多的需要数学等其他学科教育的加持。

中文编程,我觉得可以搞,但拿来直接替代不可靠。可以用来让中小学生简单的了解编程。以及特殊情况下用来替代其他编程语言。至于为什么不能直接替代,其他人比我解释的更清楚。

我觉得未来中文编程能发展得有以下条件:

1.高级语言进一步发展,语法上完全接近或者就是自然语言的语法。

2.计算机理论得到了质的、打破原有体系的发展,而这种发展是由我们主导的。

(备注:以上都是瞎说的)

大道至简吧,所有人一看就懂,一懂就能用的是最好的

Reply View the author
深圳市耀影科技有限公司
deepin
2022-05-21 05:49
#26

我英文为零,只能靠网页翻译看教程啊, 语言太苦啦,有中文真好, 还有一些小设备,其实很简单,结果是一个英文的,搞的一头雾水,应该进入我们市场的仪器都要求有中文就好啦

Reply View the author
butu
deepin
2022-05-21 21:34
#27

所以,用拼音编程与用英文编程有什么本质区别?

Reply View the author
Barry-okx
Junior Packager
2022-05-21 22:53
#28

那首先,我们要摒弃阿拉伯数字,华夏文明浩如烟海,我们既有〇一二三 也有 零壹贰叁 ,不必用这些蛮夷的字。

其次,使用中文编程,也不能使用拉丁字母,道理同上,要用汉字和韵。

再次,我们还要定一个规范,对简体字和繁体字固定映射,这样大中华区的程序可以互相兼容。

#!执行、简体执行

包含请求

包含格式

注释 必须用诞生 不能用创造,也不能用

诞生请求

结果等于请求百度

响应等于结果渲染(格式)

返回响应

看着也不难哈

Reply View the author
欧阳魔侠
deepin
2022-05-22 02:41
#29
Barry-okx

那首先,我们要摒弃阿拉伯数字,华夏文明浩如烟海,我们既有〇一二三 也有 零壹贰叁 ,不必用这些蛮夷的字。

其次,使用中文编程,也不能使用拉丁字母,道理同上,要用汉字和韵。

再次,我们还要定一个规范,对简体字和繁体字固定映射,这样大中华区的程序可以互相兼容。

#!执行、简体执行

包含请求

包含格式

注释 必须用诞生 不能用创造,也不能用

诞生请求

结果等于请求百度

响应等于结果渲染(格式)

返回响应

看着也不难哈

编程,本质上应该是一种工具,最好的工具应该是操作最简单,而用途最广泛,修改编程语言应该是怎么让人觉得简单怎么来。

不要民粹哟!

目前的编程语言对我们来说,看说明书其它已经成为绝大多数的障碍,毕竟像我这种普通人占了大多数。

Reply View the author
欧阳魔侠
deepin
2022-05-22 02:46
#30
Barry-okx

那首先,我们要摒弃阿拉伯数字,华夏文明浩如烟海,我们既有〇一二三 也有 零壹贰叁 ,不必用这些蛮夷的字。

其次,使用中文编程,也不能使用拉丁字母,道理同上,要用汉字和韵。

再次,我们还要定一个规范,对简体字和繁体字固定映射,这样大中华区的程序可以互相兼容。

#!执行、简体执行

包含请求

包含格式

注释 必须用诞生 不能用创造,也不能用

诞生请求

结果等于请求百度

响应等于结果渲染(格式)

返回响应

看着也不难哈

简单了呀

Reply View the author
gshun
deepin
2022-05-22 18:49
#31
欧阳魔侠

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

正因为汉字的含义博大精深,目前并不适合来做编程语言,ni hao shi jie,执行效果究竟是是“你好世界”呢还是“尼豪事杰”呢,汉语的音型和字型都有多重含义,单纯的拼音编程歧义会很大。我想不出能造个什么库来指向正确的语义。

Reply View the author
欧阳魔侠
deepin
2022-05-22 20:14
#32
gshun

正因为汉字的含义博大精深,目前并不适合来做编程语言,ni hao shi jie,执行效果究竟是是“你好世界”呢还是“尼豪事杰”呢,汉语的音型和字型都有多重含义,单纯的拼音编程歧义会很大。我想不出能造个什么库来指向正确的语义。

加上了音调,看拼音写汉字,相信绝大部份人还是可以做到的吧,拼音到汉字的转换是一对多,但汉字到拼音的转换却是一对一;也就是说人理解计算机输出是抽象的需要结合上下文,但计算器接到人的指令却绝对具体的。

Reply View the author
GBwater
deepin
2022-05-22 21:03
#33

汉字的输入效率比英文底多了。。。

几个简单的例子:

if->ruguo1(如果)

else->fouze1(否则)

int->zhengxing1(整型)

写几千行代码手都给你打断。。。

Reply View the author
欧阳魔侠
deepin
2022-05-22 22:37
#34
GBwater

汉字的输入效率比英文底多了。。。

几个简单的例子:

if->ruguo1(如果)

else->fouze1(否则)

int->zhengxing1(整型)

写几千行代码手都给你打断。。。

不见得,也可以是:

if ->ru(如)

else->zhe(则)

int(这是个缩写全拼是integer)->zheng(我们也可以缩写)

况且这样的关键字在c语言中是才32吧

至于您提到代码量太大,您可比较同一本英语技术书与中文技术书的厚度,因为越高级编程语言,最后越接近于自然语言。

Reply View the author
国货当自强
deepin
2022-07-04 02:52
#35

易语言了解一下~

Reply View the author
ma690065986
deepin
2022-11-30 06:26
#36
无Q小量

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

我感觉问题不大,因为,两个字节,也是国标码人为规定的 。即便是作为低级编程时 , 只需要编译器里,动点手脚就行了,反正最终都是,编译器翻译成二进制数。再用二进制数组,对照处理器内核指令集,形成相应的操作。

Reply View the author
2 / 2
To page