[心得][英文] 一定要寫英文嗎?
上次談了《如何命名「數量變數」?》,收到很多迴響,其中一個最常見的問題是
:「寫程式一定要用英文嗎?」今天就來談談這個題目。
* 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 / Colour
* Center / Centre
* Serialize / Serialise
當前函式庫、工具鏈,大多以美式英文為主。
* 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 留言;這可以幫助我把這知識庫整理得更完善。
謝謝 :)
--
推推
推推
push
U質
推推
Nice, dude.
謝謝 :) 接下來我打算整理這個題目: * 「種類(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:3080
[問卦] 英文好對學程式有幫助嗎?30cm E-cup好,有個問題想問問大家。 最近我在考慮要不要學程式,但是我英文不太好, 我在想這會不會影響我學程式的進度?我知道程式語言大部分都是英文的, 但是我不確定這對我學習程式有多大的影響。 還有,我看到很多程式的教學資源和文件都是英文的,如果我的英文不好,我會不會看不懂這些資源?我也擔心如果我在寫程式的時候遇到問題,我可能會不知道怎麼用英文去找答案。47
[請益] 有中文自學程式的資源嗎QQ如題 小弟爬過了許多文 幾乎都是英文 我記得有些程式語言是不能翻譯照翻的 想問各位大大有沒有中文入門的學習資源啊QQ48
[問卦] 寫程式要怎麼命名?安安 小弟程式社畜拉 小弟我從小就有命名困難症 玩網遊第一天就是在取名中度過得 最近PTT開放註冊我也因為想不出新唉低所以沒去註冊15
[心得] 要怎麼學英文?每年都被問的問題...原文連結: 由於在外商工作,所以幾乎每年都會被問到這個問題。我之前也分享過自己學習英文的方 法,但由於時代進步了,學習方法也有一點變化,所以我覺得可以再來分享一些自己的學 習經驗與看法,順便留個紀錄。 當初我想學英文主要有兩個原因。第一個原因比較簡單,就是因為我所在的產業8
[問卦] 程式語言為啥都要用英文寫 掛???????????程式語言很多語法都要用英文寫 阿不懂英文的是要怎麼寫????????? 就像看得懂中文 但也不見的看得懂日文漢字一樣(看起來很像中文但不是) 有人會說也能用中文寫程式11
[問題] 找出英文用語很怪的方法大家好, 一直自覺只是「很會考試」,尤其是(台灣考試的)英文, 現在做 UI 設計和一點點網頁前端程式。 先前準備過的英文履歷和作品集,常常被提到「用語很不道地」、「英文怪怪的」 有先用 grammarly 這類工具至少先讓文法是正確的。7
Re: [問題] 會英文對寫程式有啥幫助嗎?個人覺得英文多益有700就可以了 英文越專業 也程式能力也不會成正比無窮上升 而且碼農用的英文 也不是商務上的英文 看懂單字就行 文法與發音直接say goodbye 寫程式會英文 主要是做事比較有效率6
[心得] XGP PC 版無法顯示中文的解決方法無法顯示中文的原因 因為 XBOX 是依照 WIN10 設定的地區、語言等資訊去自動調整 APP 和遊戲的顯示語言 很多人玩 PC GAME 習慣預設使用英文輸入法 以避免玩遊戲的時候誤按鍵盤,導致跳中文輸入法干擾操作 但是這設定很容易被 XBOX APP 判斷系統語言為英文2
Re: [問卦] 高中生:「英文7千單太冷僻用不到」職場來說 英文很重要 例如程式設計師 最難的工作之一就是替變數命名 英文程度差的 就只會用child1
Re: [問卦] 英文好對學程式有幫助嗎?要, 上去GitHub找尋別人資源的時候你就知道多重要 GitHub 是英文介面的,你想要抄襲什麼,基本上也是英文可以找到比較多 單純自己寫程式國中英文程度就夠了 也只有命名的時候比較重要,你硬要羅馬拼音也是可以