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

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

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

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

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

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

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

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

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

万马齐喑究可哀-中文编程的又一波"讨论"的更多相关文章

  1. 第一章-第七题( 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么? )--By 侯伟婷

    首先,“银弹”在百度百科中的解释是银色的子弹,我们更熟知的“银弹”一词,应该是在<人月神话>中提到的.银弹原本应该是指某种策略.技术或者技巧可以极大地提高程序员的生产力[1].此题目中关于 ...

  2. 2018-08-13 中文编程讨论组(GitHub)社区守则一周年修订

    原址在此 社区守则 大原则 求同存异 就事论事 己所不欲勿施于人 注: 在讨论组成立一周年之际, 对行为规范进行一些细化 内 这部分所有内容同样适用于对外 回归技术 所有与中文编程没有直接关系的话题都 ...

  3. POCO库中文编程参考指南(4)Poco::Net::IPAddress

    POCO库中文编程参考指南(4)Poco::Net::IPAddress 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmai ...

  4. POCO库中文编程参考指南(3)Poco::Net::Socket

    POCO库中文编程参考指南(3)Poco::Net::Socket 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.c ...

  5. POCO库中文编程参考指南(2)基本数据类型(Poco/Types.h)

    POCO库中文编程参考指南(2)基本数据类型 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# -> ...

  6. POCO库中文编程参考指南(1)总览

    POCO库中文编程参考指南(1)总览 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# -> @) ...

  7. POCO库中文编程参考指南(11)如何使用Reactor框架?

    1 Reactor 框架概述 POCO 中的 Reactor 框架是基于 Reactor 设计模式进行设计的.其中由 Handler 将某 Socket 产生的事件,发送到指定的对象的方法上,作为回调 ...

  8. POCO库中文编程参考指南(8)丰富的Socket编程

    POCO库中文编程参考指南(8)丰富的Socket编程 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# ...

  9. 5.QT制作编译器,可以简单支持中文编程

    学习了文件操作,那么先做一个自制的IDE吧,就是简单的读取,修改,保存文件,使用QT语言,附上github的代码:QT基本文件操作实现中文编程 截图: 运行效果

随机推荐

  1. jquery 获取jquery对象的标签类型

    //jquery 对象 $("#"+控件id)[0] //查看控件类型  $("#"+控件id)[0].type 实例1: < select id=&qu ...

  2. Linux时间子系统之五:低分辨率定时器的原理和实现

    专题文档汇总目录 Notes:低精度timer在内核中的数据结构以及API接口:低精度timer精巧高效的分组,使用cascade进行定时器移位,组内Timer FIFO:低精度Timer的初始化流程 ...

  3. Java开发岗面试知识点解析

    本文作者参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编 ...

  4. 浅谈服务间通信【MQ在分布式系统中的使用场景】

    解决的问题 一项技术的产生必然是为了解决问题而生,了解了一项技术解决的问题,就能够很轻松的理解这项技术的设计根本,从而更好地理解与使用这项技术. 消息中间件和RPC从根本上来说都是为了解决分布式系统的 ...

  5. screen,client,page三种确定鼠标坐标的区别和原生JS事件写法,区别于Jquery的$.on(x,y);和$.click()

    screenX clientX pageX的区别 screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. clientX:跟scre ...

  6. 你不知道的JavaScript--Item20 作用域与作用域链(scope chain)

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...

  7. 绕过token

    网站搭好了,下一步的目标就是直奔后台.因为一般前端在未登录的情况下只有查的功能.咱们的目标是增删改. 看到有添加功能时,先别着急的直接黑盒测试.先看看有没有防护 ######## 查看源码,搜索tok ...

  8. nsqd.go

    }

  9. C++11标准中常用到的各种算法汇总.

    在C++11标准中定义了很多算法,这些算法可以让我们很方便的操作各种容器和数组,这里要注意一下,这些算法操作的并非容器,而是迭代器,然后通过迭代器来操作容器中的数据,算法本身并不会关注容器中保存的数据 ...

  10. Python Django 2.1登录功能_1

    #在上篇的基础上进行#在.../sign/templates/index.html文件,开发登录表单 <html> <head> <title>Django Pag ...