国内码农到底啥问题为啥那么讨厌中文编程

不要骂娘,你可以用易语言或者java用中文命名变量方法名,没有人拦着你。
编程语言是用来和机器对话的,和中文英文没关系,你能编译出来给机器读懂你全写二进制都不要紧。你学习高级语言,就得学习它的语法语义关键字等等,if不是如果,是条件表达式,当然易语言可以满足你想用“如果”的需求。
没秀过优越感,也没感到有什么乐此不疲,没有你说的脑中一遍一遍不停中英文翻译转换的步骤,也没觉得累。所以你一定是对“这帮人”有什么误解,抑或是受到了“这帮人”给你带来了什么刺激和创伤,是人的问题,和编程语言无关。

■网友
去浪费脑力用在中英文转换这种低级事情上的,确定能学明白编程么...

■网友
更新:这种题主也不值得认真答了
好你个编程编译没关系,有本事你拿源代码让机器直接跑啊,不能徒手撕机器码别跟我逼逼。上来就开喷,说别人一副样子也不看看自己那副biang熊样,懂几个名词就了不得了?

原答案:
什么时候可以直接用中文或者英文编程了???用的不都是程序语言吗?

题主没学过编译原理的话要知道那些关键词都是token,可以替换成其他的照样用,只要在编译器里改掉就行。

例如循环体的EBNF是
looping = "while" stmt "{" stmt "}"那我完全可以改成
循环体 = "每当" 陈述 "『" 陈述 "』"在计算机眼里除了匹配字符串部分不一样需要编码支持之外其他没有区别了。使用英文词汇是业界习惯也是为了能让代码通用。编译出来的机器码并不依赖于这些token的值。

还有提醒题主一句,不了解就不要轻易对其他领域的事情或者人下判断,隔行如何山。

■网友
看来你学不好数学 学不好物理 学不好化学 学不好编程 都是这些符号的错
只要用汉字替换这些稀奇古怪的符号 你就会了是吧

■网友
所有开发者母语都是中文时, 为什么大多数项目仍然选择英文命名? · Issue #18 · program-in-chinese/overview也在试图探究这个问题.
非常理解你的心情, 但, 一言蔽之-冰冻三尺非一日之寒.
上面的帖子里提到几个问题:
已有的代码风格和格式规范的文档都是基于英文命名而制定的从别处粘贴复制代码简单(因为绝大多数找得到的代码都是英文的)不同操作系统的默认编码方式不同, 比如代码库在Linux机器, 开发机是Windows, 容易出乱码问题依赖的库或者工具对unicode支持不佳(比如这里22楼发现的Spring的Thymeleaf不支持中文变量名), 最近的发现有Angluar对中文支持有限(中文代码示例之Angular入门教程尝试)第一条实际上是恶性循环的后果(只有英文命名的代码-\u0026gt;没有中文命名的风格-\u0026gt;难以开展中文命名实践-\u0026gt;更总结不出风格). 第二条也类似, 但相信也有迫于压力不愿分享中文命名的代码的因素. 而后两条是比较"硬"的技术原因. 第三条其实是容易解决的, 只要把源码文件都统一编码并成为一个团队内部的共识即可, 即便如此也足够让很多团队望而却步了. 第四条是真正的直接影响在代码中使用中文的决定性因素. 一旦项目选择的框架有此类问题, 那么即使这个框架是开源的, 也几乎不大可能花时间去为了使用中文命名而改进框架. 而这个问题也其实间接是由中文命名的实践少而导致的. 如果自己(母语是中文的开发者)都不在这些开源框架的社区中发声的话, 国外开发者更不可能为这个需求(在框架中使用中文命名)花费额外的精力.
个人感觉, 实践中文编程(即使只是用中文命名而已)在实用项目里的阻力, 不外乎一条 - 避险. 而这是非常非常合理的. 如果没有先前的亲身经验积累(确认所有外部依赖的框架/库中全面支持中文命名), 相信不会有一个产品负责人会在内外压力下决定吃螃蟹采用中文命名. 而在几乎所有公开分享的源码都是英文命名的情况下, 仅靠自己来积累这个经验教训是几乎不可能完成的任务, 即使有公司总结出了一套适合自己团队的中文命名方式, 也很可能是只适用于他们项目使用的框架/环境. 而愿意公开分享这些经验教训的毕竟是少数(也许也是中文编程的实战项目有哪些?没有回应的原因之一?). 这样又反过来使得这类实践更难以推广.


推荐阅读