前文中文編程興起的必然性雖然闡述了長遠的必然性, 但很自然地會有以下疑問:
- 為何至今沒有看到國內大公司的任何從事中文編程的實踐?
- 如何以較小代價實踐中文編程以及創造推廣中文編程語言/工具?
此文從個人視野嘗試解讀和設想.
剛剛意識到問題1的主觀原因(客觀原因請見中文命名實踐的阻力和應對, 創建新中文編程語言也有類似問題, 而且成本和風險更大).
一言蔽之, 他們最有能力實踐, 但恐怕也最沒有動力. 其實這和熟悉英文編程語言的程序員不少缺乏動力參與中文編程是一個道理, 只是一個是宏觀, 一個是微觀.
國內大公司往往通過市場地位進一步占據了人力優勢, 可以招納到足夠英文編程水平的開發者. 而這也是進一步鞏固技術優勢和領先地位的一個方面. 中文編程對他們帶來的對項目本身的益處相對較小(因為人力財力足夠). 而相應的另一個極端--初創公司(大多是單人或雙人項目)其實是最能從代碼可讀性獲益的(運維成本的升降往往意味著企業成敗的區別), 從而也會是從中文編程獲益最大的.
因此, 從保證短期商業利益的角度看, 大公司創造中文編程語言/工具/框架的可能性非常小. 當然也不排除某家大公司敢于通過在中文編程上領頭創新的方式獲取社會效益的可能性. 即便如此, 終究是求人不如求己.
下面一部分來源于討論組話題: 如何面向中文編程(潛在)用戶進行推廣? · Issue #41 · program-in-chinese/overview. 無論語言/工具是開源還是閉源(免費/商業), 在推廣和實踐上應該有類似之處. 歡迎指正補充.
潛在首批用戶
- 編程初學者
- 樂于嘗試的編程愛好者
- 想用中文編程工具開發業余/初創項目, 并且首先關注國內市場的
開發方式
- 在開發中文編程語言/框架/API時, 盡量在技術允許的情況下(需要分享和積累, 詳見中文命名實踐的阻力和應對)在代碼中使用中文命名. 這樣對項目本身可以降低成本(詳見對在代碼中使用中文命名的質疑與回應 "沒有好處"一節), 同時也進一步增加中文命名的技術積累
- 基于英文編程語言的發展史, 個人認為開源方式能夠最大程度促進技術分享和進步, 中文編程方面暫時以商業軟件為主, 但開源項目應該能夠更加活躍, 反過來也可以促進商業軟件的進步.
推廣
- 對初學者來說, 中文代碼的入門教程(以英文編程語言中使用中文命名為例, 比如中文代碼示例教程之Java編程一天入門), 以及對應的很容易安裝使用甚至免安裝的編程環境.
- 對于愛好者, 也許是更加貼近實際問題的一些教程和相關工具, 比如如何用漢化版TypeScript(program-in-chinese/CTS)和相關庫創建一個簡單的網絡服務和前端.
- 對于目標是團隊開發商用軟件的用戶, 則需要成熟的工具/文檔, 以及及時的社區技術支持.
- 在社區成熟和有足夠的共同開發者之前可能主要靠核心開發者. 首先單個項目建立社區, 類似于TypeScript.org, JUnit.org等等. 項目積累之后, 建立一個更廣泛的中文編程相關生態圈, 類似Apache
商業化
- 現在看到的一些開源項目的商業化方式, 以提供免費的社區版和收費的商用版進行. 社區版搜集反饋和bug, 商用版以穩定或功能或技術支持為賣點. 比如Odoo等等.
正如漢化了十數個編譯器的前輩的心得體會的最后所言, 任重而道遠. 個人相信前途光明.
2017-11-27