選擇第七題:7. 有人認爲,「中文編程」, 是解決中國程序員編程效率一個祕密武器,請問它是一個 「銀彈」 麼?程序員
答:經查閱資料知道了銀彈的含義:顧名思義就是銀質的子彈(Silver Bullet),是古老的歐洲民間傳說中能殺死狼人的利器。固然現實中是沒有狼人的,但現實中確實有銀彈這個東西。而其意義也相似於能殺死狼人的最好辦法。現實中的狼人能夠是一個棘手的項目,或者一件不可能的事。而「銀彈」就是指能解決這些事的方法,或者技術手段,被比喻爲具備極端有效性的解決方法,做爲殺手鐗 、王牌等的代稱。算法
IBM大型機之父佛瑞德·布魯克斯(Frederick P. Brooks, Jr.)在1986年發表的一篇關於軟件工程的經典論文,便以《沒有銀彈:軟件工程的本質性與附屬性工做》(No Silver Bullet — Essence and Accidents of Software Engineering)爲標題。其中的「銀彈」是指一項可以使軟件工程的生產力在十年內提升十倍的技術或方法。該論文強調因爲軟件的複雜性本質,而使這樣「真正的銀彈」並不存在。編程
關於計算機編程語言的中文化問題,常常在網上看到兩種相互對立的觀點:編程語言
(1)一種觀點是認爲中國應該弄出箇中文編程,「中文編程」是解決中國程序員編程效率一個祕密武器,主要來自於非專業編程的普通大衆。ide
(2)另外一種觀點認爲中文編程沒有意義,編程所用的英文就是那麼幾個關鍵字,並不難,主要出自專業程序員。函數
我認爲,這兩種觀點都不錯,之因此產生這種衝突,主要是由於二者看待問題的角度不一樣。編碼
對於專業程序員來講,他們早已熟練掌握了已有的優秀編程語言,而且在語言方面也再也不有多少障礙,他們須要的是更多的中文化技術資料而不是中文編程語言。而對於有編程需求的普通大衆來講,他們尚未接觸計算機編程或者纔剛剛入門,在面對滿屏的英文語句時感到使用起來很艱難,而中文編程裏面的關鍵詞和函數、變量、方法、事件等等都是中文,可以即看即懂、即用即會,節省大量時間精力。因此,對於這兩種觀點,我以爲沒必要放到對立面來,普通大衆不強求程序員從現有的編程語言中轉換到中文編程上來,程序員也不該該要求普通大衆遠離中文編程。設計
另外,我在在網上還看到其餘比較好的回答,我也以爲頗有道理:「中文編程」它不是銀彈,編程是一種實現功能的邏輯編寫操做,爲解決功能性與需求性,可否實現主要在於代碼設計與方法,語言做爲一種表現形式對編程的影響並不如前者大。程序員編程能力的提升着重是要求對自身邏輯思惟能力的提升,同時爲解決具體功能需求,程序員對相關操做模塊的流程,算法思想要有必定深度的理解和掌握;接口
(1)「中文編程」只是在語言方面做了改變,只是較之傳統編程相對容易看懂表面含義而已,但實質上的思考方法並無改變,若是選用「中文編程」,因其對關鍵字,編程語法等作了改變,實質上也是須要程序員掌握和熟記的,這與英文編程要領的掌握無異。事件
(2)「中文編碼」相對於英文編碼,所佔的體積遠比英文編碼要大,對於一些空間、時間要求較高的編程要求,英文能更好的實現。
(3)程序員做爲全球現代社會流行的行業,多國多人共通語句很好的有利於編程技術的發展,而英語做爲全球最通用的語言,做爲編程的通用性最強。
(4)中文文字的輸入不必定比英文文字要迅速,在不少時候,英文單詞比中文詞組要輸入得快。
(5)各類應用平臺,編程環境要求的是通用的能識別的字母寫成的程序,而中文編程顯然就不具有這一條件,在通用性上會有極大的困難,用中文編程寫出的程序在接口上也會有極大的困難要突破。
綜上所述,「中文編程」確實能提升編程效率,卻不能成爲中國編程的殺手鐗。