对在代码中使用中文命名的质疑与回应

  • 时间:
  • 浏览:1
  • 来源:uu快3分析_uu快3APP_计划

2018-07-22更新

答: 首先, 肯能考虑推敲命名的时间, 对母语是中文的线程员, 中文命名应该比不能更恰当放慢, 综合各种因素哪种法律辦法 写代码放慢还待实践证实. 其次, 鉴于开发过程在整个软件生存周期中只占一小帕累托图, 一点的帕累托图(设计,调试,测试,维护)从良好的可读性获取的利远大于开发速率单位肯能降低的弊.

为补救频繁切换中英文: 为了在输入中文的同時 不不切换就还不能 输入特殊符号(){};等等, 搜狗输入法支持"中文时使用英文标点"

注: 根据Fun with GitHub repositories statistics, github上的1-contributor repository共倘若300%. 当然还有一点一点项目越来越 开源. 后面 的90%仍然是假设.

另一方一点一点赞成3000%的中文化. 不能 和国外交流的项目肯定有. 大胆假设:以中文为母语的所有线程员,从事的项目中,90%是单人项目(*),剩下的10%中,90%只能同样是中文为母语的线程员参与.另另一俩个 ,只能1%的项目有用英文写代码的硬性不能 .为了这1%的不能 ,而在剩下的99%中使用英文,得不偿失.

答: 这是很常见的另一俩个 说法。但是的"越来越 好处"和"编程语言例如和英文语法无关"等节肯能阐述了命名和编程语言语法和自然语言直接的关系. 肯能还存在问题说服力, 他们说还不能 看看国外非英语母语的开发者. Linus(Linux作者)的回答(原文在Interview: Linus without Linux): "我老会 用英文编程". 否则他还提到编程语言全部都是基于英文的. 节选如下:

答:汉字编码那些的问題不仅限于代码, 使用的越少越不有利于那些的问題补救. 多数那些的问題能通过使编码一致补救, UTF8和GBK互转的那些的问題(实例)肯能会在长时间内存在。用中文命名能使那些那些的问題更加凸显,有利于那些的问題补救,而全部都是拖延回避.

答:关于注释和命名, 在另一方但是的工作环境里, 是第一次接触正式的可读性审核. 有个印象是, 审核员会尽量倾向于减少注释量, 而强调代码例如的可读性(其中最重要的因素之一一点一点命名). 审核里会不时老会 总出 "例如法律辦法 名肯能self-explaining了,注释就不不了"例如的评语. 其实越来越 当面确认过, 但写注释和维护注释的额外工作量应该也是例如倾向的动因之一.

后面 列出的之外, 《发展中文编程的意义:让大众化编程有利于软件产业的建设》也对一点质疑作出了宣告。

当然希望看过更多的国外开发者参与国人初创的项目. 不过,除去预测得到与非 会有国外开发者参与的请况, 剩下的另一方发起的项目, 首要考虑的是对另一方的开发和维护最有利的编程法律辦法 . 肯能在还不能 预见的将来, 我另一方会是最主要的贡献者. 肯能我另一方的开发和维护成本随着项目变大而变得不可持续, 越来越 在项目成型和不能吸引一点开发者参与但是肯能就夭折了. 另一方的感觉是用中文命名是我更熟悉和容易的法律辦法 .

答: 没错, 但在代码中, 另一方定义的类/法律辦法 /变量占的篇幅一般全部都是少于依赖库(包括标准库)的法律辦法 /类所占篇幅, 欢迎提供具体统计数据. 还不能 看看这里的中英文代码篇幅的比例. 中文命名带来的代码改变是一目了然的. 更关键的是, 自定义的帕累托图往往是业务逻辑最集中否则最不能 可读性的帕累托图.

开源项目中全部都是不少. 这是一位台湾开发者用Python开发的自然语言补救工具: 臺灣言語工具 项目成型于2013年, 代码目测数万行.

最初在编程语言中添加支持 Unicode 的功能, 也应该有各个非英语母语国家/地区开发者的推动力量.

答:就像搞学术的不能 的但是自然逼着看英文刊物,有硬性不能 的但是自然会去看国外网站。肯能这就会影响,越来越 他们说另另一俩个 就不越来越 不能 。

答:现状是, 中文开发者主创的开源库/框架, 绝大多数的贡献者也全部都是中文开发者, 即使非常流行和国际化的框架如vuejs也是越来越 . 原困肯定是多方面的. 不能想到的有:

答: 其实和英文自然语言相去甚远, 但仍然有不少设计是带着一点一点英文风格的. 如: 空格作为分隔符; for...in等用法涵盖英文语法特色. for原意并越来越 循环的意思,而更接近”对于",这在”for(A in B)“的语法中更明显,对应中文接近”对于B中的那些A“。while原意也越来越 ‘循环’的意思,中文接近“倘若”肯能“当”。这恰恰说明了英文编程语言的设计与英文语法和词意的相关性。不懂英文的开发者在学习时就只能强记那些关键词(其实也全部都是大麻烦),但假想那些关键词肯能结束一点一点中文,越来越 肯定会更容易理解,也省去了强记的一步。

Question: What language did you use in comments to Linux while you were a student?

osc上一点即使很热火的开源框架, 比如JFinal, 大多只能极少的一点开发者贡献. 另一方认为另一俩个 很糙要的原困, 一点一点代码阅读的难度, 而英文命名是另一俩个 额外的障碍. 他们说对于开发者另一方来说, 随着项目的开展, 一点结束时一点别扭的英文命名另一方也习惯了, 否则对于刚拿到整个代码的新开发者, 任何不妥当的英文命名前会 原困迷惑和时间的浪费. 为了吸引理论上的国外开发者参与, 而不优先选则对身边的中文开发者(包括另一方)阅读代码有利的编程法律辦法 , 另一方认为例如思路是很值得商榷和分请况探讨的.

答: 比如《假设中国人最先开发电脑和设计线程语言,越来越 各种线程语言会使用汉字吗?》. 那些的问題是, 无论从那些深度图说, 中文也是中国人的母语, 而母语优势肯能由前面的"越来越 好处"一节说明. 退一万步说, 即使例如命题成立, 也只能用来说明中国人用中文作为母语原困了理解速率单位落后. 而只能说明中文命名不适合于国人.

Torvalds: English. I've always programmed in English. All the books were in English, and the programming-languages tend to be somewhat English-based too (i.e. "while (x) { ... }").

2018-07-18更新

答:Linus的母语是瑞典语,根据wiki,使用者是八百七千万。中文(普通话)的母语使用者是九亿五千万。这是一百倍的差距。另外,英语母语使用者是3亿六百万。更重要的是,中文母语使用者基本集中在中国,而英语分布在不同国家。西班牙语也例如。从人口基础来看,用中文编程是非常有潜力的。

比如Java涵盖个回避不掉的那些的问題JavaBeans规范一定要使用set/get命名。maven版本号的 -SNAPSHOT 特殊语义,旧junit中不能 测试的法律辦法 不能 以test开头等

有一帕累托图质疑同样适用于英文代码, 比如"从命名看越来越 了类型", "命名肯能词不达意"等等, 另外还有未经证实的"中文代码原困的未知错误"和越来越 根据的”比英文代码运行慢“等等, 就不一一宣告了.

答: 用中文命名带来的好处是不分编程语言的, 甚至英文关键词和心文的显著区别肯能带来额外的可读性增强. 另外, 要花费短期内(5-10年), 英文关键词的编程语言还将在市场中占有不可忽视的份额, 在例如阶段使用中文命名是三根代价小而收益相对立竿见影的途径.

答:如但是的《13年后的共鸣-在代码中用中文命名的优势和那些的问題》一文所述,中文命名在一点一点但是还不能 更准确,也比英文命名更轻松。

肯能认为API以及内部人员法律辦法 /变量的命名无关紧要. 有不少可读性相关的文章对例如误区进行了阐述, 比如《Writing for Readability》

答: 确其实实践中碰到混用的请况, 另一方基本上是能用几次中文就用几次. 比如这里set/get和心文混用,另一方其实还不能 接受。肯能想在Java里用中文编写代码, 中英混用是不肯能补救的.

答: 例如 2017 年的 quora 答案《Alan Mellor's answer to Has any serious project been written in a non-English-based programming language?》提到西门子(德)/爱立信(瑞典)内部人员有尽量用母语命名的 C/C++项目. 以及布拉格看过的一本编程书中的示例代码也是用母语命名.