前天看到一个网友提问:“为什么中文不能用来编程?”,我回答了该网友的提问,结果一发不可收拾,目前我的回答转载量已经超过百,评论也有将近两百条,浏览量已经超过22万人,这个问题的总浏览量已经超过数百万人浏览和参与,,而且到目前数量还在不断增加,那么为何一条小小的问题会引起如此大的争议和关注?下面我来总结一下我的观点和网友的观点。
首先,我是做开发的,我说说个人理解的吧,如有错误欢迎指正,技术本来就是大家互相学习互相交流的,有什么错误也并不是不可饶恕。计算机最早从美国诞生,而美国使用的是英语进行编程,英语是目前世界上使用最广泛的语言。它用26个英文字符组成,通俗易记。其实,计算机的底层只认识二进制0001111之类的,也就是说计算机本身只能识别0和1,并不认识其他数字、英文和字符,但是每个程序和计算都使用二进制并不容易记,这样对编程人员的技术要求很高,也很难操作,而且一般人很难理解二进制代表的是什么东西,也就不知道它到底执行的是什么,为了方便记忆和理解,it界就诞生了用英语编写的更利于记忆的编程语言,包括汇编、C、C++,java,C#,php等。但是计算机并不认识0和1之外的字符。那么它是怎么识别编程语言的呢?其实,它的底层是把编程语言翻译城二进制,也就是0和1组成的字符。就像咱们跟英国人交流一样,必须把汉语翻译成英文、把英文翻译成汉语或者把各自知道的语言翻译成大家都识别的语言。
那么从上面看汉语能否作为计算机语言呢?答案是绝对没问题,那么为什么现在很少用中文编程呢?一方面中国计算机技术发展比较晚,在国际上没有话语权,如果重新开发一套中文编程代价和成本太大,所谓无利不起早,如果没有很大的利益大家也都不愿意去摸索和发展。再者一套中文编程看似简单,实际上涉及的范围太广工程太过浩大。使用的技术也很多,实现起来并不容易。也没有自己成熟和让大家接受的中文操作系统,而且很多技术只有国外有,英语编程都有很大的交流圈,技术和社区都很成熟。
中国前十多年诞生了自己的全中文语言易语言,但是一直不温不火,社区不够成熟,计算机支持的也不大好,而且用易语言编写的软件很多都会被杀毒软件报毒,杀毒软件不识别易语言。所以一般用户看到杀毒软件报毒都会认为是病毒,其实大多数易语言编写的软件并没有毒只是杀毒软件不识别。
有人认为因为英文节省空间也就是字节,如果用中文编程消耗的空间太大,学过技术的人都知道编程中一个中文字符所占的字节等于两个英文字符所占的字节。那么我们看看这种字节是否是影响中文编程的关键问题?我的答案是否定的,为什么?因为英文和中文比起来并不节省空间,相反占用的空间更大。我们打个比方,“控制器”在中文只有三个字符,但是在英文“controller”中所占的字节远远超过三个中文字符。“静态”在中文中两个字符占据四个字节,而英文“static”占据了六个字节。“常熟”中文占四个字节,英文“const”占据五个字节,由此可见,因为中文字符占据空间大并不成立。如果你非要拿“如果...”和“if...”做比较我也无话可说。
不管网友怎么评论怎么理解,大家的意思都只有一个。那就是“中文是可以编程的”,这个是没有争论的,就是看有没有必要实现中文编程罢了。中国主要还是技术接受的晚,别人都在用计算机上天了,中国还不知道计算机为何物,怎么可能发展的起自己的全中文编程语言?这个就像很多国民笑话专家一样。研发的“自主操作系统”其实最后发现都是基于linux的。
为什么那么多网友都热衷于中文的操作系统和中文的编程技术?我想还是民族自尊心的问题,这个总体上我还是很高兴的。你也许会问为啥?这不恰恰说明国人越来越关注自己国家了吗?大家不仅关心国家的硬实力而且也开始关注国家的软实力,都期盼有一天中华民族能够站立在世界的顶端。我们的神州飞船可以把人送上天,我们的武器可以打击世界任何一个地点,我们的国产航母即将下水。但是遗憾的是我们却没有自己的中文系统和完整的中文编程,对爱国的普通百姓来说这是很难接受的。所以大家就一起自嘲,自嘲的同时有对国家和企业抱有很大的期盼。难道有了自己的系统和自己的编程技术就证明国家牛逼可吗?这个很难说,不同的人有不同的看法。但是有了自己的技术体系确实能增加民族自豪感,而且能够保证国家的信息安全。增加自己的民族凝聚力。中国老百姓为啥对自己国家要求很高?主要我想还是民族自尊心,中国曾经在世界的大部分历史当中,都是国力最强盛的,武力也最辉煌的,大小征战无数次,老百姓自然希望自己国家能够再次恢复昔日荣光。
那么中国以后能有自己成熟的编程语言吗?我相信会有,只是这个需要漫长的过程,等到中国的技术真正超越国外,并主导了计算机技术等的时候一定会研发自己成熟的技术。