@
SuperMild 首先我上一个回复说了,所谓国际化什么都是“小问题”
况且在目前传统(非中文编程)的开发实践中,早做国际化(包括从底层就使用 Unicode 编码)确实是比较好的做法。就不说一个全部用中文命名的项目国际化起来肯定要比只是展示层有几个中文的要加倍的工作量了
不过再强调一遍,国际化依然是“小问题”
为什么大家接受小说、技术书籍和博客用中文写,却普遍不接受所谓中文编程?这个有多方面的原因。楼主问的基本也是这个问题
首先,小说,书籍和博客都是自然语言,计算机程序是机器语言,我对自然语言的语言学了解不多,但是依然感觉这两个是不能直接类比的。所以中文注释问题不大(因为注释依然是自然语言的范畴),“中文编程”很不成熟。把自然语言直接应用到机器语言的例子不是没有(如 AppleScript 等),但是就没见过成功的(不限于哪种自然语言),所以现在机器语言都是只用很少的自然语言,你把一段程序按照自然语言的方式解释基本上只会有一个狗屁不通的结果。
这其实已经说明拿自然语言生搬硬套机器语言理论上是行不通的,或者就算能行( Wolfram Alpha 或许算半个),也不是简单“生搬硬套”能解决的。而这其实就是对中文编程感兴趣的群体中很大一部分人的想法。不幸的是,这背后隐含的思维往往是:“哎呀编程好难啊,都是英文的锅,如果都是中文的会不会简单一些”,我并不指望这种人能学出什么东西来。所以提中文编程的人在社区中的固有印象基本就是“逃避困难,目光短浅,头脑简单的民族主义者”,可以理解,社区一般是不欢迎这种人的
类似的问题其实不只出现在中文编程这个话题上,举例如 UNIX 用户攻击 MSFT 用户被微软洗脑(隐含背景:很多用 VS 的人并不是不会喜欢 UNIX,而是 VS 和 MSFT 名气大,从小就接触,用惯了),软粉反过来攻击 UNIX 用户无脑黑(背景:MSFT 的一些商业策略导致开源社区对其产品存在本能的反感),社区集体黑 PHP (背景:很多 PHP 用户听说 PHP 做东西又简单又快就一直用一把梭的方式使用 PHP,从未接触过其他技术,也从未听说过软件工程之类实践,无脑吹 PHP ),社区集体喷果粉(背景:很多果粉确实是逢苹果就吹,被彻底洗脑的 fanboy ),我就不把话题往最近被美帝针对的某著名通讯公司上引了 ...
我后面说什么“创新”的意思在于,如果一个中文编程圈的人恰好做出了一些像样的成果,将会对改变这种“反感”很有帮助。你看,很多 UNIX 用户写了很好的博客、项目和论文,MSFT 也有很优秀的开源项目,PHP 在不断改进,也写了很多牛逼的项目,很多果粉不无脑,还写了很多好用的 App。而中文编程圈呢,除了这些头脑简单的人,有人做出像样的成果么?
一个都没有!
一个都没有!!
然后还在这里抱怨说被社区针对。就未曾想过自己在 UNIX、MSFT、PHP、Apple 的粉丝这些引战群体中恰好是最弱鸡的,也恰好是被针对得最惨的,这难道仅仅是巧合么
我为什么对这些“创新”感兴趣呢?这么说吧,如果只是关键字和标识符用中文,我觉得只配叫“中文命名”,因为只是换了个皮。可是就算是换皮,有人发过什么“我在项目中用了 3 个月的中文命名,分享下使用心得”之类的帖子么?有人提出过“中文命名四项基本原则”“邯郸命名法”(类比 Hungarian notation )“汉武帝命名格式”(类比 Camel case )之类的理论么?
这还只是“中文命名”,我理想中的“中文编程”不止于此。可以类比音乐语言,语言不通碍不着听英语的摇滚,日语的 ACG,拉丁语的歌剧,甚至歌手光哼哼哈嘿听众也能消费。因为除去表面的歌词,听众还可以感受背后的音乐(换到编程语言这里是背后的逻辑和数学语言)。所以我说一个编程语言用什么形式的语法包起来重要性其实不大(这也是我上个回复引用的 Marisa 的文章的观点之一)。什么时候这个重要了呢?比如说我把一本英语写的技术书翻成中文(或者日语歌改编成中文),你把东西放在 Google 翻译里面过一下拿出来就卖,是会被骂的。我上面说的“中文命名”,其实就只做了 Google 翻译非常表面的工作。
我觉得社区会更希望看到中文这种形式如何更深地影响编程,而不是只翻译一下。也就是更有价值的“创新”。比如西方古典音乐分各种大调小调,阿拉伯地区、中国、日本的音乐又有不同的调性,听起来感觉是完全不一样的。而标榜中文的编程方法,只是做了个 Google 翻译,内核还是原来那一套,我认为做的是远远不够的,这个比如可以类比一下法语的计数方式对法国人的数学思维有什么影响,汉语数字只有一个音节,对中国人的算数又产生什么影响,现在我们要用中文编程,那么除了“对不懂英文的人更友好”之外,有哪些地方可以利用中文自身的特色加以优化的。我希望中文编程圈能够更多地 show us the code,以后有人问中文编程相关的问题,大家第一反应不是反感,而是“中文编程啊,可以去看看 LittleHarsh 大神发的论文 /写的书”
可以打个比方,假设 SQL (很流行,恰好也很像自然语言)从一开始设计出来就是 C/Java 的语法(而不是现在这样类自然语言的),其实并不会妨碍它现在的广泛使用。人们用 SQL 是因为它背后的关系代数模型(画重点:关键创新)能方便地解决问题,同时恰好是行业标准。这两条都和它类自然语言的语法挨不着边(就不说很多逻辑已经超出这种语法方便表达的范畴了),你去问个有脑子的程序员,人家可能不会在意这个,甚至会觉得设计成类 Java 语法会更好,我不认为一个经验丰富的程序员会跟你说“是的,我觉得应该更像英文,比如 'How many people have stared the project called TensorFlow in GitHub?',天啊,MySQL 不懂人话真的是太悲哀了”
中国这些年也是类似的道理,叫唤得再欢你还是一个吃别人援助 /用别人 IP 的穷国,只有拿出实打实的经济数据和发展成果,人家才会开始把你当回事。