2018-02-16 中文代码示例之冒泡算法, 后感
以前探讨过中文命名在业务部分的优势大于算法部分. 今天又一次看到了这个以冒泡算法的例子: 刘然:批判易语言的人是否用过这门语言,批判它的原因又是什么?有些感触. 先尝试对变量命名进行改进, 来看看是否会有不同观感. 注: 本文不讨论输入效率问题, 也不讨论易语言
时间太有限, 仅对帖子中的Python程序作粗浅探讨. 另一个易语言语法的例程也有不同方面的改进空间, 就不展开了. 有兴趣/质疑的欢迎提其他例程一同探讨.
for i in xrange(len(a)): for j in xrange(i + 1, len(a)): if a[i] > a[j]: a[i], a[j] = a[j], a[i]
首先, 在嵌套循环中使用i和j的一个问题是, 两者看起来有点像. 下面的视觉区分度更大:
for 甲 in xrange(len(a)): for 乙 in xrange(甲 + 1, len(a)): if a[甲] > a[乙]: a[甲], a[乙] = a[乙], a[甲]
也可以赋予变量名以更多语义, 来凸显变量的某些性质, 如下. 而英文命名想要表达类似语义就要长一些了:
for 前 in xrange(len(a)): for 后 in xrange(前 + 1, len(a)): if a[前] > a[后]: a[前], a[后] = a[后], a[前]
后感
中文命名很自然是个考验中文修养的活. 用中文命名的代码可以像天书一样"仅仅是符号", 也可以像好文章一样用词考究恰如其分, 当然更多的(包括在下写的)限于功力或者开发时间限制也许只能达到流水账的水平.
哪里用中文最有效果(对可读性增强最大), 哪里是鸡肋(比如上面的a, 可以改名为"数组", 但效果逊一些, 也许更合适放在注释中), 也与程序的目的/设计/理解非常相关.
相比数理能力, 更大量的编程任务更需要的是逻辑与思辨能力, 这种任务的比重只会越来越大. 而逻辑思辨能力是文理相通的. 与编程相配套的文档编写和阅读也更偏文, 团队建设/客户交流之类软实力更不用说. 相信随着IT产业的逐渐成熟, 文科背景的开发者将会越来越多, 长远看这肯定是好事.
论文Concise and Consistent Naming: Ten Years Later提到:
Approximately 70% of the source code of a software system consists of identifiers. Hence, the names chosen as identifiers are of paramount importance for the readability of computer programs and therewith their comprehensibility. However, virtually every programming language allows programmers to use almost arbitrary sequences of characters as identifiers which far too often results in more or less meaningless or even misleading naming.
很想看全文(尤其是那个辅助命名工具的十年实践的总结)但下载的pdf里只有摘要. 如果有哪位同学有全文请分享一下, 先谢了.

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2018-01-19 Xtext试用: 5步实现一个(中文)JVM语言
续上文Xtext试用: 快速实现简单领域专用语言(DSL). 基于官方教程: Five simple steps to your JVM language 达成如下语言: 它被Quan6JvmModelInferrer中的转换生成Java源代码(与上文中的代码生成不同的是, 不需要写出具体Java语法). 项目源码在: program-in-chinese/xtext_tutorial_15_min_zh, 只包含了语法规则所在项目. 其他项目(.ide, .tests, .ui.tests等等, 也不知何用)未提交. 测试项目(包括上图的代码)在: program-in-chinese/xtext_tutorial_15_min_zh 由于本人创建的项目名称与教程不同(com.program_in_chinese.quan6), 运行后打开DSL源码文件时报错: An internal error occurred during: "XtextReconcilerJob". java.lang.IllegalArgumentException: Domainmodel.importS...
- 下一篇
人生苦短,初学者应该如何更快的学好Python?
时光在不经意中流逝,转眼间我已经毕业十余载。一边是时间的年轮不会停止等待,一边是科技的发展已经不能单单用惊叹来记载。很幸运的是,计算机编程语言在科技发展浪潮中的地位不可代替。 我们作为一名程序开发者,也伴随着科技的发展一直在进步学习。我在求学期间一直苦练C、C++、Java,还有那时的新宠C#。后来移动智能设备横空出世,我又开始学习Android和iOS。在最近几年,身边越来越多的人开始谈论Python。Python为什么能够脱颖而出,为什么这么多人在谈论他…… Python是新时代的宠儿 究竟Python有什么魅力,能让越来越多的开发者喜欢上她呢? (1)化繁为简,简单最美 如果你拥有其他语言的开发经验,你会发现实现同一个功能,Python语言的代码编写量要少很多,这是因为Python语言的语法更加简单直接。在人工智能、运维、脚本、数据分析、爬虫方面,Python语言在这方面更是碾压很多其他开发语言。在时间和效率至上的今天,Python语言的这一优点将是攻城狮们的一大利器。 (2)Python正处在新一轮科技革命风口浪尖之上 都说时势造英雄,新一轮的科技浪潮将是AI,而Python是...
相关文章
文章评论
共有0条评论来说两句吧...