专栏全年主题合辑-代码中文命名相关实践

简介: 在中文编程知乎专栏创立一周年之际, 对使用中文命名代码中的标识符的相关实践作回顾小结. Summary of practice of using Chinese naming for identifiers in source code one year after starting "Programming in Chinese" column.

注: 本文仅对个人亲自参与的尝试作一小结, 专栏中其他作者的尝试还望各自总结. 文中所有例子都尽量使用了中文命名

一些对中文命名的早期实践:

在2017年发现多数流行编程语言已经支持Unicode/中文命名, 并开始小结中文命名的风格和特点. 2017年7月编写了中文代码示例教程之Java编程一天入门, 体验了选取例程题材的趣味与难度. 同月也在Maven Central发布中文API的Java库(后话, 在一年后喜获V2EX的用户反馈"第一次见以汉字命名的 Java 类"). 8月尝试对现有图形库p5js的接口进行中文化, 是在JDK接口中文化之后, 从通用库转向专用库的一步. 必须提到的是, 在2017年初发现13年前就有同仁提出中文命名的可读性优势与IDE支持问题, 而在半年后成立的"中文编程"GitHub讨论组中, 有幸碰到通过IDE插件实现拼音输入法和自动补全功能集成的同好.

在"中文编程"知乎专栏于2017年11月9月开通之前, 对现有框架的入门教程的示例代码尝试中文化, 并与VueJS开发组进行了中文命名相关问题的交流:

专栏开通之际编写的对在代码中使用中文命名的质疑与回应是对之前看到的各种反对声音的总结, 至今尚未看到有力的反证, 并且在一路上的探索中发现了越来越多的佐证, 比如11月末发现的Python3选择支持非ASCII码标识符的缘由.

专栏开通的初期, 进行了一系列的相关思考, 对今后的实践方向有不小影响:

对在线编程对中文命名的支持初步调研:

之后重心转向自研编程语言, 也进行了一些相关项目的中文命名尝试:

在2个月后的2018年4月, 开始对Python官方入门文档的示例代码进行中文命名:

原本是打算至少完成入门部分, 但过程中逐渐发现原教程示例的局限性, 如代码考古-Python3官方教程字典例程, 认为花精力在自己编写教程上也许更值得. 就有了"西游记"主题Python入门示例尝试-数据结构 5.1-5.1.2. 也尝试对国人原创教程中的示例进行中文化: 解谜计算机科学第一章示例汉化尝试

接下来是一段比较嘈杂的时期, 为Chrome和火狐浏览器编写扩展应该是为在插件中实现计算/编程工具做的技术复习. 此时发现了一系列针对中文编程/命名的软文:

不禁针对性地写了在代码中进行中文命名(类/变量/方法等)的优势. 至此, 深切感觉到进一步积极推广中文命名的必要性.

继续进行一些以中文命名作示例的小教程的编写:

至此, GitHub讨论组已创建一年, 深感核心项目的必要性. 下面围绕编程术语命名进行了一些技术摸索:

8月末, 源于组内讨论, 开始了批量代码汉化工具的尝试, 并开发了必需的英汉词典相关工具, 从浏览器插件, 在线服务原型, 到今天的vscode插件:

主要出于此项目对中文命名的推广意义, 打算将这个系列作为个人在代码中进行中文命名实践的短期目标

8月之后在V2EX上交流甚多, 也催生了用Python3+tkinter开发简单图形界面程序这样的合作项目, 很希望看到类似项目的开展.

另有一个中期的目标来自于首次发现在例程中使用日语命名的编程书籍, 之后做了日语命名的调研:
它山之石-日本推广编程中使用日语命名的渊源. 发现将编程与传统学科结合的现实紧迫性, 并初步尝试将传统学科的内容程序/数据化. 这不仅与中文命名紧密相关, 也是潜在的中文语法编程语言的土壤(见前文末段). 个人非常期待.

2018-11-10

相关文章
|
10月前
|
存储 算法 程序员
【C言专栏】C 语言结构体的应用与实践
【4月更文挑战第30天】C语言中的结构体是自定义数据类型的关键,它组合不同类型的數據以创建新类型,尤其适合处理复杂对象如学生信息。通过定义结构体如`struct Student`,包含名字、学号和成绩,可以方便地实例化和访问成员。结构体在链表实现、函数参数传递和数组中都有广泛应用,如表示链表节点和处理批量数据。理解并熟练运用结构体对于C语言编程至关重要,能提升代码效率和可读性。
210 9
|
10月前
|
缓存 安全 编译器
【C 言专栏】C 语言函数的高效编程技巧
【5月更文挑战第1天】本文探讨了C语言中函数的高效编程技巧,包括函数的定义与作用(如代码复用和提高可读性)、设计原则(单一职责和接口简洁)、参数传递方式(值传递、指针传递和引用传递)、返回值管理、调用约定、嵌套与递归调用,以及函数优化技巧和常见错误避免。掌握这些技巧能提升C语言代码的质量和效率。
100 0
【C 言专栏】C 语言函数的高效编程技巧
|
10月前
|
存储 C语言
【C 言专栏】C 语言中的数据类型详解
【4月更文挑战第30天】本文介绍了C语言中的核心数据类型,包括整型(short, int, long, long long)、浮点型(float, double)、字符型(char)、指针、数组、结构体、共用体和枚举。理解这些类型的特点和适用场景对于编写高效准确的C语言代码至关重要。选择合适的数据类型并注意转换和运算规则,能避免错误,为编程打下坚实基础。
261 0
|
10月前
|
算法 C语言
【C 言专栏】C 语言文件操作的技巧与方法
【4月更文挑战第30天】本文介绍了C语言文件操作的关键技巧,包括文件的打开与关闭(使用`fopen`和`fclose`函数),读取(`fgetc`、`fgets`和`fread`)和写入(`fputc`、`fputs`和`fwrite`)操作。此外,还讨论了文件指针移动(`fseek`)、错误处理、文件权限和格式等问题。文中提供了一个简单的读写文件的示例,并提到了高级技巧如随机访问、文件缓冲和截断。掌握这些技能将有助于提升C语言编程中的文件处理能力。
74 0
如何利用ChatPDF快速阅读英文论文,帮你写文章
如何利用ChatPDF快速阅读英文论文,帮你写文章
196 0
|
编译器 C语言 C++
【C++初阶】十三、模板进阶(总)
目录 一、非类型模板参数 二、模板的特化 2.1 模板特化概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 三、模板分离编译 四、模板总结(优缺点)
146 0
【C++初阶】十三、模板进阶(总)
|
机器学习/深度学习 PyTorch TensorFlow
李沐「动手学深度学习」中文课程笔记来了!代码还有详细中文注释
李沐「动手学深度学习」中文课程笔记来了!代码还有详细中文注释
320 0
|
数据处理
主题论文总结3:维基百科生成任务(持续更新ing...)
主题论文总结3:维基百科生成任务(持续更新ing...)
|
编译器 索引
【实用工具】技术人如何写好英文论文?
现在工业界发paper越来越普遍了,要不想被淘汰,得学习。工欲善其事必先利其器,今天就讲讲写作中能用到的工具。
【实用工具】技术人如何写好英文论文?
|
JavaScript 前端开发 C#
专栏全年主题合辑-中文编程语言开发尝试
在中文编程知乎专栏创立一周年之际, 对中文编程语言的实验性开发作回顾小结. Summary of creating Chinese-based programming language one year after starting "Programming in Chinese" column.
979 0

相关实验场景

更多