作者AmosYang (泛用人型编码器)
看板Soft_Job
标题[心得][英文] 一定要写英文吗?
时间Fri Jul 17 16:56:57 2020
上次谈了《如何命名「数量变数」?》,收到很多回响,其中一个最常见的问题是
:「写程式一定要用英文吗?」今天就来谈谈这个题目。
* Google 简报:
https://bit.ly/32rtGy3
* Google 简报原始档:
https://bit.ly/2DGDhXd
* Facebook 相簿:
https://bit.ly/3fCF2mv
* GitHub 讨论区:
https://bit.ly/321ResR
* Twitter 讨论串:
https://bit.ly/2ZGtY2l
---
# 写程式一定要用英文吗?
有的时候,因为既有的产业行规、社群文化、团队决策、技术限制,我们没有选择
;也就是所谓「人在江湖,身不由己」。
这里讨论的是「可以自己选择」的情况,从以下两个层面来思考。
* 技术
* 价值
---
# 技术
## 推荐「美式英文 + ASCII 字集」
因为历史因素,英文是电脑科学的通用语,累积了极大的智慧资产,是故,以「相
容性」为考量,
* 在程式码层级,使用 ASCII 字码来命名变数、方法、类别、等等。
* 在使用各种工具时,使用 ASCII 字码命名档案、参数
* 现代键盘与字型罕有不支援 ASCII 字码的。
「美式英文 + ASCII 字集」是个「低成本、高效益」的选择。
## 案例讨论
* 美式英文 与 英式英文 有些微拼字差异,例如
* Color / Colo
ur
* Cent
er / Cent
re
* Seriali
ze / Seriali
se
当前函式库、工具链,大多以美式英文为主。
* UNICODE 有它的好处,但也有它麻烦的地方,
(PTT 对 Unicode 的支援不完整,请到 Google 简报原始档看这段:
https://bit.ly/2DGDhXd )
例如
* U+03B1 / U+237A 看起来很相似
* U+00C1 / U+0041 U+0301 显示出来是同一个字,但是是不一样的字元
* 有些语言需要用到完整的拉丁字集才能精准表达意思。
後面会讨论「在程式码中使用 Unicode 」的案例。
---
# 价值
程式作品的价值主要来自於「满足需求,解决问题」,而不是「写程式时用英文」
。
这 *
不是* 在否定「写程式时用英文 / 与世界潮流接轨 / 让维护程式的人好做事
」这件事。
若能把英文学好,能流利地写 commit 讯息、写注解、写文件、与洋乡民交流、开
拓职涯,当然是好事。
这里我们思考的是「成本与效益的平衡」,也就是说,如果目前英文还没有那麽好
,怎麽办?
也就是「写程式一定要用英文吗?」
我的主张是:
* 「满足需求,解决问题」
> 「写程式时用英文」
* 「
正确 +
清楚 +
简洁的资讯」
> 「
模糊的资讯」
* 「
正确 +
清楚 +
简洁的非英文资讯」
> 「
模糊的英文资讯」
也就是说,当你的程式作品先创造了价值,之後才会有人来想了解它。(也有可能
是两周後的你自己回来看这程式 XD )。
而「正确 + 清楚 + 简洁的非英文资讯」会比「模糊的英文资讯」对它更有帮助。
它可以用机器翻译「正确 + 清楚 + 简洁的非英文资讯」,它可以找朋友翻译。
但如果是「模糊的英文资讯」,那它就只能去通灵掷笅了。
## 错误讯息
> 文件
> 注解
撰写「正确 + 清楚 + 简洁的 (英文 / 非英文) 资讯」 也需要成本,我会依以下
顺序来投资:
1. 错误讯息
2. 文件
3. 程式码注解
我的想法是,「想用工具解决问题的人」会比「想了解工具构造的人」多。
或着说,在一个人对某工具的构造有兴趣前,它要先觉得这工具很好用。
是故,我会先投资在程式的「错误讯息、警告、参数资讯」上,先帮助使用者解决
它的问题。
这些资讯、讯息通常也较短,不管是写母语还是写英文,比较容易做到「正确 +
清楚 + 简洁」。
## 文化、产业、地区特有术语
与其硬翻而失真(最後从母语、英文两边都看不懂),可以考虑音译、直译,并加
上注解。
---
# Unicode
(PTT 对 Unicode 的支援不完整,请到 Google 简报原始档看这段:
https://bit.ly/2DGDhXd )
ASCII 是 1960 年代的东西,就方法、类别命名来说,还是推荐
「美式英文 + ASCII 字集」;但就小块的程式码而言,若适当使用 Unicode, 或
许可以增进程式码的可读性。
## Emoji
能这麽做,不代表该这麽做 XD
## 希腊字母 / subscript / superscript
数学、科学计算式常用到希腊字母、 subscript, superscript 。
相对於
* pi
* deltaT
* F_0
* F_n_1
这样的传统 ASCII 写法, Unicode 提供了另一种可能性。
---
# 写程式一定要用英文吗?
就长远来说,能多学、多练习、加强英文能力当然是好事。
但在英文能力还不到位时,为了满足眼前的需求,不管是台式英文、汉语拼音、日
文拼音、用中文写 commit 讯息、写文件、写注解,都是成本与效益的取舍。
希望这篇文有提供读者一些思考的方向,来检视每个人自己的取舍选择策略。
有任何程式设计、软体工程相关的英文问题,都很欢迎到《程式英文》 GitHub 讨
论区
https://bit.ly/321ResR 留言;这可以帮助我把这知识库整理得更完善。
谢谢 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.56.13.184 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1594976222.A.175.html
1F:推 alihue: 推推 07/17 18:27
2F:推 tw11509: 推推 07/17 18:41
3F:推 bill0205: push 07/17 19:15
4F:推 CaptPlanet: U质 07/17 23:18
5F:推 lazyfirst: 推推 07/18 08:13
6F:推 jobintan: Nice, dude. 07/18 10:36
谢谢 :)
接下来我打算整理这个题目:
* 「种类(type, kind, sort, class, category, classification)」该用哪个字?
*
https://github.com/EngTW/English-for-Programmers/issues/13
如果有任何感想、问题、建议,请让我知道 :)
※ 编辑: AmosYang (136.56.13.184 美国), 07/18/2020 13:04:30