老派程序員 - 徒手實現偉大成就

openkk 12年前發布 | 5K 次閱讀 程序員

當在讀Peter Seibel的精彩著作《編程人生:15位軟件先驅訪談錄(Coders at Work)》的時候,我發現一些老派的程序員(我是這樣尊敬的稱呼他們的)是非常的有趣,比如Ken Thompson, Joe ArmstrongJamie Zawinski,他們開發軟件時幾乎不用任何現代的工具和技術技巧。

老派程序員——徒手實現偉大成就

ken thompson

Ken Thompson是B語言(C語言的前身)的設計者,也是Go語言的設計者(與 Rob Pike合作)。在貝爾實驗室工作的時候,他和Dennis Ritchie一起開發實現了C 語言和最初的Unix操作系統。一次在新澤西的晚飯上,當他在餐具墊上設計出來UTF-8字符編碼方法后,他通宵工作,在貝爾實驗室的Plan 9 操作系統里實現了對UTF-8的全面支持。就編程風格而言,他只通過printf語句來調試,幾乎沒有單元測試,他開發軟件是先設計數據結構,然后從局部開始實現,中間利用臨時的測試接口,最終到達整體完成,

老派程序員——徒手實現偉大成就

Jamie Zawinski

Jamie Zawinski 在麻省理工的人工智能實驗室使用Lisp工作,之后他領導開發了Lucid Emacs,也是用的Lisp語言,這個軟件就是后來被人們熟悉的XEmacs。此后他加入了Netscape項 目,開發Unix版的Netscape瀏覽器的前端部分,之后他又領導了Netscape Mail的開發(兩個項目都是用的C語言)。他也是只喜歡用print語句來調試代碼。他的開發過程有時是先整體后局部,有時是先局部后整體,順其自然, 在必要的時候進行重構。開發時他幾乎不做單元測試,他認為單元測試會耽誤時間——他認為第一次就應該把代碼編對,他反復這樣強調。在他的觀念里,這是個優 先級問題,“你是愿意去開發出一個沒問題的軟件,還是愿意下星期就把它完成,選擇一個,你們不能兼得。”

老派程序員——徒手實現偉大成就

joe_armstrong

Joe Armstrong開發了Erlang編程語言,他還為愛立信開發開源的 Open Telecom Platform(OTP)框架。開發軟件時,他喜歡在寫代碼前寫盡可能完備的文檔,特別是對有難度的項目,比如有關實時網絡協議的。對于有難度的問題他喜歡先用原型解決,對于調試,他只是有print語句。他是一個面向對象編程的批評者,他喜歡像Haskell這樣的函數式編程語言。他從未使用過IDE,他喜歡使用的是Emacs和命令行(不需要用鍵盤)這樣的開發工具。

所以,什么樣的工具和技術技巧是你成為一個偉大程序員的所必須的?是這些TDD、BDD、Scrum、敏捷開發、設計模式、極限編程等現代技術嗎? 這些只是花瓶?還是為了用來實現更大的目標?或者這只是說明了有天賦的程序員不管使用什么工具都能走上自己成為偉大程序員的道路?

我個人的觀點是,做一定程度的TDD、保證合適數量的單元測試,這些都是作用巨大的。因此這些現代技術才被看作是能夠讓我們工作更加容易、更有效率的科技進步——尤其是對那些非天才級別的程序員。

[本文英文原文鏈接:Old school developers - achieving a lot with little ]

載自: 外刊IT評論 http://www.aqee.net/

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!