2018-07-18 万马齐喑究可哀-中文编程的又一波"讨论"

简介: 对问题"假设中国人最先开发电脑和设计程序语言,那么各种程序语言会使用汉字吗?"的回应. A response to the question "what if the Chinese invented computer first?"

刚申诉了自动折叠, 还是把回答转帖一下: 吴烜:假设中国人最先开发电脑和设计程序语言,那么各种程序语言会使用汉字吗?

这种有明显倾向性的问题怎么还有市场呢...不管谁先开发的电脑(就不论算盘之类是不是计算机前身了), 就不许后来者基于自身需求开发最趁手的工具吗?

再说一遍, 没有中文编程语言, 也可以在代码中用中文命名! 是的, 现在就可以! 不需要任何额外的工具: 在各种编程语言中使用中文命名

母语命名标识符可以带来代码清晰度和可维护性的提高: Python3选择支持非ASCII码标识符的缘由. 而支持Unicode命名是大多数现代编程语言都具备的特性, 难道那些语言开发者都闲得慌才加的这个特性吗?
各种用诡异的中文命名写出天书般代码来证明中文代码可读性不高的请用英文把同样的代码用直译一遍, 再放在一起比较一下, 到底哪个更天书.
基于各种语言/框架的中文命名例子见中文编程专栏目录, 初衷和希冀的"中文命名"部分目录(Java, Python, Javascript等).

其他关于中文命名的质疑(比如输入慢, 没好处, Linux也用的英文命名, 不利于外国开发者贡献, 用中文注释就够了, 现有API都是英文的, 编程语言和自然语言无关, 会有编码问题, 会影响钱程, 没有先例等等)回应详见对在代码中使用中文命名的质疑与回应. 欢迎各种新论点.

下面该有人说中文命名和中文编程语言无关了.

正因为缺少这种中文命名的实践, 各种编程和领域术语都没有形成规范(即使常见用词List和Collection都有不同的中文说法, 见讨论参考MSDN,试搞.NET类库标识符的翻译版 · Issue #54 · program-in-chinese/overview), 设计中文语法的编程语言往往成了无本之木. 语言特性应该从实践中提炼, 即使在现有英文编程语言中进行的中文命名实践, 也可以促进中文语法编程语言/开发工具的发展. 个人的看法, 中文编程语言有没有空格, 到底要多"高级", 都是其次. 好用应该是第一原则, 在这方面易语言是个标杆, 可惜十多年了至今无人跨越.

再说, 现实是英文编程语言的天下, 为什么不在这些工具中用中文命名, 以最小的代价实现代码可读性提升呢? 哪天有合适的中文编程语言了, 把代码移植过去都方便的多. 十年之后, 估计会有不少人吐槽, 当年把中文术语硬翻成了英文标识符(甚至于拼音), 现在还得翻回去, 当年是怎么想的.

最近又看到不少此类带节奏的文章, 就刚才还挖了一篇的底(专用帖: 对中文编程的质疑, 困惑, 批评, 吐槽请到此处 · Issue #44 · program-in-chinese/overview). 只能说, 看来有些人终于有点急了, 因为代码可读性的重要性, 以及中文命名对可读性的提升已经被越来越多的人认识到了. 此路必定不平坦, 比如很多中文编码相关的坑会让中文命名来背锅, 更不用说非技术因素了(见中文编程兴起的可能途径). 但这恐怕是大势所趋. 能在此大势中出一份微薄之力, 也算是个人之幸.

相关文章
|
人工智能 分布式计算 Java
【C++初阶】前言——C++的发展简述及学习方法分享
之前我们一直分享C语言和使用C语言完成数据结构的初阶的文章,今天我们正式进入C++的学习,这篇文章主要是给大家带来的是C++的由来、以及和C语言的区别、更主要的是和大家分享自己的学习方法,给一些我的建议。
|
5月前
|
人工智能 自然语言处理
🚀从菜鸟到大师,一文读懂生成式大模型“提示词工程”的进阶秘籍✨
【8月更文挑战第1天】在人工智能领域,生成式大模型如GPT和DALL-E正引领着创意的新纪元。本文通过案例逐步解析“提示词工程”的精髓:从基础的直接提示,进化到富含细节与情感的进阶版本,再到结合模板与随机性的大师级应用。例如,创作环保主题文章时,从简单指示到强调个人行动与自然之美;生成印象派风格的日出海景图时,详述光线、色彩等元素。随着技巧提升,还可利用基础模板加随机提示的方式确保创意与质量并重。掌握这些秘籍,你也能驾驭AI,释放无限可能。
117 7
|
8月前
|
C语言 开发者
【C 言专栏】C 语言中的模块化编程思想
【5月更文挑战第3天】本文探讨了C语言中的模块化编程思想,阐述了其概念和实现方式,如函数和头文件。模块化编程能提升代码可读性,便于维护和复用,增强程序可靠性。实践中应合理划分模块,明确接口,保持独立性和内聚性。以计算器程序为例说明模块化应用,并展望了未来发展趋势。模块化编程是构建高质量C程序的关键,有助于提高开发效率。
202 3
【C 言专栏】C 语言中的模块化编程思想
|
8月前
|
编解码 算法 数据可视化
【C 言专栏】运用 C 语言进行图形编程
【5月更文挑战第3天】本文探讨了C语言在图形编程中的应用,介绍了基础概念和常用图形库如OpenGL和SDL。通过初始化环境、绘制图形、处理用户输入及更新显示等步骤,阐述了图形编程过程。同时,文章提到了性能优化、兼容性处理和复杂图形绘制的挑战,以及通过实际游戏案例分析应用。随着技术发展,C语言图形编程在跨平台和移动设备上的前景广阔,鼓励读者深入学习和创新。
227 3
【C 言专栏】运用 C 语言进行图形编程
|
8月前
|
存储 算法 程序员
【C言专栏】C 语言结构体的应用与实践
【4月更文挑战第30天】C语言中的结构体是自定义数据类型的关键,它组合不同类型的數據以创建新类型,尤其适合处理复杂对象如学生信息。通过定义结构体如`struct Student`,包含名字、学号和成绩,可以方便地实例化和访问成员。结构体在链表实现、函数参数传递和数组中都有广泛应用,如表示链表节点和处理批量数据。理解并熟练运用结构体对于C语言编程至关重要,能提升代码效率和可读性。
171 9
|
8月前
|
缓存 安全 编译器
【C 言专栏】C 语言函数的高效编程技巧
【5月更文挑战第1天】本文探讨了C语言中函数的高效编程技巧,包括函数的定义与作用(如代码复用和提高可读性)、设计原则(单一职责和接口简洁)、参数传递方式(值传递、指针传递和引用传递)、返回值管理、调用约定、嵌套与递归调用,以及函数优化技巧和常见错误避免。掌握这些技巧能提升C语言代码的质量和效率。
84 0
【C 言专栏】C 语言函数的高效编程技巧
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
技术小白能看懂的ChatGPT原理介绍
网上有关 ChatGPT 的原理介绍文章一大堆,要么是从 NLP 的历史开始讲起,要么是上数 GPT 3 代,内容都相对冗长和复杂。其实 ChatGPT 的原理并不难理解,我将以最通俗易懂的方式为技术小白解读,帮助大家更好地了解这一技术
639 1
技术小白能看懂的ChatGPT原理介绍
|
IDE 程序员 测试技术
程序员优秀之路:一起来看下这 97 位”砖家“能给出啥编程的好建议?(4)
本瓜并未逐字逐句翻译,而是取其精要、理解抽象,结合自身进行撰文表达,与各位看官分享。认知好的编程概念,走向优秀~
|
设计模式 监控 算法
程序员优秀之路:一起来看下这 97 位”砖家“能给出啥编程的好建议?(5)
本瓜并未逐字逐句翻译,而是取其精要、理解抽象,结合自身进行撰文表达,与各位看官分享。认知好的编程概念,走向优秀~
|
设计模式 缓存 Java
程序员优秀之路:一起来看下这 97 位”砖家“能给出啥编程的好建议?(2)
本瓜并未逐字逐句翻译,而是取其精要、理解抽象,结合自身进行撰文表达,与各位看官分享。认知好的编程概念,走向优秀~