万马齐喑究可哀-中文编程的又一波"讨论"
刚申诉了自动折叠, 还是把回答转帖一下: 吴烜:假设中国人最先开发电脑和设计程序语言,那么各种程序语言会使用汉字吗?
这种有明显倾向性的问题怎么还有市场呢...不管谁先开发的电脑(就不论算盘之类是不是计算机前身了), 就不许后来者基于自身需求开发最趁手的工具吗?
再说一遍, 没有中文编程语言, 也可以在代码中用中文命名! 是的, 现在就可以! 不需要任何额外的工具: 在各种编程语言中使用中文命名
母语命名标识符可以带来代码清晰度和可维护性的提高: Python3选择支持非ASCII码标识符的缘由. 而支持Unicode命名是大多数现代编程语言都具备的特性, 难道那些语言开发者都闲得慌才加的这个特性吗?
各种用诡异的中文命名写出天书般代码来证明中文代码可读性不高的请用英文把同样的代码用直译一遍, 再放在一起比较一下, 到底哪个更天书.
基于各种语言/框架的中文命名例子见中文编程专栏目录, 初衷和希冀的"中文命名"部分目录(Java, Python, Javascript等).
其他关于中文命名的质疑(比如输入慢, 没好处, Linux也用的英文命名, 不利于外国开发者贡献, 用中文注释就够了, 现有API都是英文的, 编程语言和自然语言无关, 会有编码问题, 会影响钱程, 没有先例等等)回应详见对在代码中使用中文命名的质疑与回应. 欢迎各种新论点.
下面该有人说中文命名和中文编程语言无关了.
正因为缺少这种中文命名的实践, 各种编程和领域术语都没有形成规范(即使常见用词List和Collection都有不同的中文说法, 见讨论参考MSDN,试搞.NET类库标识符的翻译版 · Issue #54 · program-in-chinese/overview), 设计中文语法的编程语言往往成了无本之木. 语言特性应该从实践中提炼, 即使在现有英文编程语言中进行的中文命名实践, 也可以促进中文语法编程语言/开发工具的发展. 个人的看法, 中文编程语言有没有空格, 到底要多"高级", 都是其次. 好用应该是第一原则, 在这方面易语言是个标杆, 可惜十多年了至今无人跨越.
再说, 现实是英文编程语言的天下, 为什么不在这些工具中用中文命名, 以最小的代价实现代码可读性提升呢? 哪天有合适的中文编程语言了, 把代码移植过去都方便的多. 十年之后, 估计会有不少人吐槽, 当年把中文术语硬翻成了英文标识符(甚至于拼音), 现在还得翻回去, 当年是怎么想的.
最近又看到不少此类带节奏的文章, 就刚才还挖了一篇的底(专用帖: 对中文编程的质疑, 困惑, 批评, 吐槽请到此处 · Issue #44 · program-in-chinese/overview). 只能说, 看来有些人终于有点急了, 因为代码可读性的重要性, 以及中文命名对可读性的提升已经被越来越多的人认识到了. 此路必定不平坦, 比如很多中文编码相关的坑会让中文命名来背锅, 更不用说非技术因素了(见中文编程兴起的可能途径). 但这恐怕是大势所趋. 能在此大势中出一份微薄之力, 也算是个人之幸.
万马齐喑究可哀-中文编程的又一波"讨论"的更多相关文章
- 第一章-第七题( 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么? )--By 侯伟婷
首先,“银弹”在百度百科中的解释是银色的子弹,我们更熟知的“银弹”一词,应该是在<人月神话>中提到的.银弹原本应该是指某种策略.技术或者技巧可以极大地提高程序员的生产力[1].此题目中关于 ...
- 2018-08-13 中文编程讨论组(GitHub)社区守则一周年修订
原址在此 社区守则 大原则 求同存异 就事论事 己所不欲勿施于人 注: 在讨论组成立一周年之际, 对行为规范进行一些细化 内 这部分所有内容同样适用于对外 回归技术 所有与中文编程没有直接关系的话题都 ...
- POCO库中文编程参考指南(4)Poco::Net::IPAddress
POCO库中文编程参考指南(4)Poco::Net::IPAddress 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmai ...
- POCO库中文编程参考指南(3)Poco::Net::Socket
POCO库中文编程参考指南(3)Poco::Net::Socket 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.c ...
- POCO库中文编程参考指南(2)基本数据类型(Poco/Types.h)
POCO库中文编程参考指南(2)基本数据类型 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# -> ...
- POCO库中文编程参考指南(1)总览
POCO库中文编程参考指南(1)总览 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# -> @) ...
- POCO库中文编程参考指南(11)如何使用Reactor框架?
1 Reactor 框架概述 POCO 中的 Reactor 框架是基于 Reactor 设计模式进行设计的.其中由 Handler 将某 Socket 产生的事件,发送到指定的对象的方法上,作为回调 ...
- POCO库中文编程参考指南(8)丰富的Socket编程
POCO库中文编程参考指南(8)丰富的Socket编程 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# ...
- 5.QT制作编译器,可以简单支持中文编程
学习了文件操作,那么先做一个自制的IDE吧,就是简单的读取,修改,保存文件,使用QT语言,附上github的代码:QT基本文件操作实现中文编程 截图: 运行效果
随机推荐
- jquery 获取jquery对象的标签类型
//jquery 对象 $("#"+控件id)[0] //查看控件类型 $("#"+控件id)[0].type 实例1: < select id=&qu ...
- 阿里云和腾讯云免费SSL证书 专题
阿里云部署SSL证书 http://www.cnblogs.com/sslwork/p/5984167.html 查找中间证书 为了确保兼容到所有浏览器,我们必须在阿里云上部署中间证书,如果不部署证书 ...
- 【原】用Java编写第一个区块链(二)
这篇文章将去介绍如何使用区块链进行交易. [本文禁止任何形式的全文粘贴式转载,本文来自 zacky31 的随笔] 目标: 在上一篇文章中,我们已经创建了一个可信任的区块链.但是目前所创建的链中包含的有 ...
- CSS技术实例1-使用CSS计数器实现数值计算小游戏实例页面
一 实例要达到的要求如图所示: 二 分析 1.7个圆角矩形标签(或按钮) 2. 点击触发并开始运算,最后一个标签显示结果 3.计算成功后弹出"万岁"字眼 三 代码实现 关键CSS代 ...
- Executor框架简介
Executor框架是在Java5中引入的,可以通过该框架来控制线程的启动,执行,关闭,简化并发编程.Executor框架把任务提交和执行解耦,要执行任务的人只需要把任务描述清楚提交即可,任务的执行提 ...
- SQLServer 数据库重命名
//SQLServer(将user重命名为us) alter table user rename us;
- bzoj 1426 收集邮票
f[i]:当前已拥有i种邮票,还需要买的邮票数的期望值. g[i]:当前已拥有i种邮票,还需要的钱的期望值. 每张邮票初始都是1元钱,每买一张邮票,还没购买的邮票每张都涨价1元. f[i]=1+(n ...
- bzoj 4318 OSU 概率期望dp
可以发现:f[i]转移到f[i+1]只和最后一串1的长度和平方有关, 因为如果新加的位置是1,贡献就是(x+1)^3-x^3=3x^2+3x+1,否则为0: 所以对于每一个位置,处理出期望的f,x和x ...
- POJ_3304_Segments_线段判断是否相交
POJ_3304_Segments_线段判断是否相交 Description Given n segments in the two dimensional space, write a progra ...
- solr+jieba结巴分词
为什么选择结巴分词 分词效率高 词料库构建时使用的是jieba (python) 结巴分词Java版本 下载 git clone https://github.com/huaban/jieba-ana ...