談程序語言的設計及程序員心態

我最近讀王垠的博客,裏面有些文章使我很受益。他總結了程序語言設計上的兩個問題:一是片面追求短小,用C語言做例子;二是試圖容納世界,用python做例子。一般來講,能設計語言的人,都是高手,特別是設計出來的語言用的人多,這些語言的發明者,可以說都是頂尖的人才,其智力、專業程度都是頂尖的。但往往一門語言的設計者,都是一個人。一個人,又是頂尖的人,就很容易存在一個想法:如何彰顯自我。我設計的這門語言,假如和別人設計的一樣,不搞些智力上的特色出來,怎麼能顯示出我的牛逼之處?

作爲一門程序語言,如何才能搞些智力上的特色呢?最明顯的就是比誰的更短。這種思維很自然的泛化到使用這門語言的程序員身上,你那個要寫十行,我這個只一行就搞定,牛逼吧,把寫得長等同於寫得差,寫得短等同於寫得好,甚至往智力上去延伸。於是在以前C爲王的時代,很多人都追求程序寫得短,結果搞得可讀性很差。自從JAVA興起,這種比短的思維才被壓住。另一個就是談哲學,python喜歡談哲學,於是有了王垠所說的,要容納世界上三隻手兩個頭的人。對於稍大一點的工程,python的這個特性會使得程序不可控,幾乎變得不可用,說是畫蛇添足,有害無益不爲過。

一門程序語言的設計者,其設計思想,思維方式,或多或少會影響程序員。於是程序員多多少少都有追求短小和容納世界的毛病。追求短小在C語言裏比較常見,而容納世界在JAVA裏面比較常見,產生的問題更嚴重更深遠。在我看來,前幾年JAVA界流行過度設計,類似SSH的框架就是試圖容納世界的產物。框架的設計思想,比如說,可以隨便更換數據庫,可以替換中間層,甚至不用改代碼就能替換一個類,不能說是錯誤的思想,但是實現手段帶來了很大的複雜度。於是又引出了另一種思維,把越複雜的東西給折騰會,就顯得自己智力超羣,以此換來“優越感”。

中國有句古話叫文人相輕,意思是文人之間互相看不起,覺得別人寫的文章不如自己的。寫程序有點類似寫文章,所以程序員之間也有互相看不起的毛病。經常有些人看幾眼別人的代碼就說寫得差,於是我經常和人說,技術人員不要爲難技術人員,不要以彰顯自我的心態來看人,要以開放的心態大家共同提高。在這方面,博客上轉載的程序員的七大壞毛病,總結得很不錯,我經常看看並且反省,對我很有用。

另外,很多人注重技術,而不注重產品,大的東西能搞好,但是細節就不願去搞,結果搞成80%,後面20%遲遲不能完善,只要沒有完善,就不是一個產品,不是產品就不能營利,不能營利就沒有價值。技術構成產品,但是產品不等於技術,技術一定要形成產品纔有價值,這纔是我們做爲技術人員的價值體現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章