開源項目必須用英文命名標識符嗎?_風聞
吴烜-2021-04-16 09:59
看到莊表偉的《開源社區應該選擇什麼語言?》一文,其中建議一刀切地使用英文命名標識符:
我們將一個源代碼文件,看做一篇完整的文章。在這篇文章中:中英文夾雜,甚至英文加漢語拼音混雜都是嚴重影響閲讀體驗的
包命名、文件名、函數名、變量名等等,都嚴重建議一律使用英文
不得不來發表些個人觀點。在《Gitee 開源指北》第 5 小節:有關開源的常見誤區 中,有與本文同題的一節進行闡述。三個月前還圍繞此部分進行了一場 持續數日、來回數十回合的論辯。有興趣的可以細看,此文僅分享一個兩年半前的開源合作實踐經歷。
那天在 v2ex 碰到一個開發請求,由此催生了 五筆編碼編輯器 這個微型開源項目,此為 事後結貼。

九月十八日開始合作時,請求者 明説無編程經驗。在原型搭建時,我提到會使用中文命名,最後實現的 Python 代碼片段如下:

一開始很希望之後的維護由他多出力,但感覺那時他的動力並不大。花個把禮拜做出了雛形,意外和驚喜的是,這位在九月二十八日就提交了這個“照貓畫虎” PR,並且之後持續改進,十月之後我除了合併 PR 之外基本沒有投入其他精力。
可見中文命名對於鼓勵新手參與開源項目的作用。
開源項目的基本架構搭建之後,如果項目本身使用的是中文命名,用户(往往非程序員)應該會更有動力去學習代碼。並不是説英文命名肯定會阻止參與項目,但會讓很大一部分人望而卻步。
實際上開源項目很大一部分工作量在於後期維護、界面改進、相似功能的堆積,以及相關測試。這部分完全可以由原作者之外的參與者,即普通用户來實現,原作者就可以專心投入到架構/大功能的優化改進上。久而久之,編程新手也會逐漸成為熟練程序員、核心貢獻者。
能夠吸引更多人來投入項目,而不是點個星就走,是開源項目能夠壯大和持久的關鍵。任何能夠降低參與門檻的技術,都應該值得項目作者認真考察,根據項目酌情決定。
回憶一下,無論是開源還是閉源項目,過去幾周有沒有碰到如下情況之一:
- 翻自己之前寫的代碼,發現某個標識符不知所謂
- 看別人的代碼,不懂某個標識符
- 同事來問你某個標識符啥意思
在我看來,這種時候就可以考慮一下,將這個標識符改成中文會不會少些麻煩。大可以從需要的地方開始改,不用上來就把整個項目的標識符全部中文化。
補:最常見的問題之一是:“用中文命名之後,國外開發者如何參與”? 對此在《Gitee 開源指北》中也有提及,可以另開文章詳述。