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

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

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

母语命名标识符可以带来代码清晰度和可维护性的提高: 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. 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5

    阅读目录 github下载地址 一.DES对称加密 二.AES对称加密 三.RSA非对称加密 四.实际使用 五.关于Padding 关于电脑终端Openssl加密解密命令 关于网络安全的数据加密部分, ...

  2. SSH整合配置文件概括

    配置方式一:struts.xml, applicationContext.xml(hibernate.cfg.xml配置信息写入spring配置文件中) (版本号, struts2:2.3.15; s ...

  3. dmraid 用法

    dmraid 全名为设备对应器磁盘阵列(Device Mapper RAID),利用Linux内核提供的设备对应器(Device Mapper)机制 ,为多种磁盘阵列设备提供磁盘阵列的设备文件,让用户 ...

  4. Netty中的连接管理

    连接管理是我们首先需要关注的,检测空闲连接以及超时对于及时释放资源来说是至关重要的.由于这是一项常见的任务,Netty特地为它提供了几个ChannelHandler实现. 用于空闲连接以及超时的Cha ...

  5. subline常用快捷键

    一次创建5个class为main的div  :    div.main*5 +TAB 快速生成HTML结构: ! + TAB 使盒子内的文本水平垂直方向对齐: height:value; line-h ...

  6. 区分命令行模式和Python交互模式

    命令行模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:\> Python交互模式 在命令行模式下敲命令python,就看到类似如下的一 ...

  7. Web开发:需收藏的JavaScript常用技巧

    原文来自:https://www.baidu.com/home/news/data/newspage?nid=4242707244478773456&n_type=0&p_from=1 ...

  8. 使用XAMPP和DVWA在Windows7上搭建渗透测试环境

    前言: XAMPP是一个Web应用程序运行环境集成软件包,包括MySQL.PHP.PerI和Apache的环境及Apache.MySQL.FilleZilla.Mercury和Tomecat等组件.D ...

  9. 区分IE8 、IE9 、IE10的专属css hack

    想让IE8及以下的浏览器实现同样的效果,且不希望使用css3pie或htc或条件注释等方法时,可能就会需要用到IE8和IE9的专属css hack了. .test{ /* 1. */ color:#0 ...

  10. Cookie防篡改机制

    一.为什么Cookie需要防篡改 为什么要做Cookie防篡改,一个重要原因是 Cookie中存储有判断当前登陆用户会话信息(Session)的会话票据-SessionID和一些用户信息. 当发起一个 ...