老派程式設計師——徒手實現偉大成就
當在讀Peter Seibel的精彩著作《程式設計人生:15位軟體先驅訪談錄(Coders at Work)》的時候,我發現一些老派的程式設計師(我是這樣尊敬的稱呼他們的)是非常的有趣,比如Ken Thompson, Joe Armstrong 和 Jamie 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、保證合適數量的單元測試,這些都是作用巨大的。因此這些現代技術才被看作是能夠讓我們工作更加容易、更有效率的科技進步——尤其是對那些非天才級別的程式設計師。
轉自外刊IT評論網:老派程式設計師——徒手實現偉大成就
本文英文原文連結:Old school developers - achieving a lot with little
相關文章
- 偉大的女程式設計師們程式設計師
- 如何成為偉大的程式設計師?程式設計師
- 偉大程式設計師的十大特質程式設計師
- 偉大程式設計師的十個特質程式設計師
- 歷史上最偉大的12位程式設計師程式設計師
- 歷史上最偉大的 12 位程式設計師程式設計師
- 成為偉大程式設計師的 10 個要點程式設計師
- 我們身邊偉大的女程式設計師們程式設計師
- 如何成為一個偉大的 JavaScript 程式設計師JavaScript程式設計師
- 為什麼程式設計師也能成為偉大的CEO程式設計師
- 成就偉大:遊戲類別洞察報告遊戲
- 為什麼程式設計師是一個偉大的職業程式設計師
- 女程式設計師自我成就的三步曲程式設計師
- 程式設計師必知的8大排序(java實現)程式設計師排序Java
- 最偉大的計算機程式設計師是如何誕生的?—解讀高德納計算機程式設計師
- 大齡程式設計師程式設計師
- 是什麼成就了一名高階程式設計師?程式設計師
- 從大齡程式設計師現狀聊聊出路程式設計師
- 徒手擼框架--實現Aop框架
- 徒手擼框架--實現IoC框架
- 以前的程式設計師,現在的程式設計師程式設計師
- 什麼原因成就了一位優秀的程式設計師?程式設計師
- 零基礎的打工仔 成就程式設計師夢想程式設計師
- 大齡程式設計師思考程式設計師
- 計算機程式設計領域最偉大的20個發明計算機程式設計
- @程式設計師,你的大廠實習卡到了程式設計師
- 最偉大的計算機程式設計師是如何誕生的?——解讀高德納(Donald E.Knuth)計算機程式設計師
- 大齡程式設計師書單程式設計師
- 幽默:程式設計師吹牛大賽程式設計師
- 程式設計師只吃青春飯?大齡程式設計師都去哪了?程式設計師
- 科技成就偉大遊戲 | 2022 亞馬遜雲科技遊戲開發者大會亞馬遜遊戲開發
- 徒手擼設計模式-觀察者模式設計模式
- 徒手擼設計模式-組合模式設計模式
- 合作漢語程式設計 成就輝煌人生程式設計
- 從程式設計師到專案經理(21):誰都需要成就感程式設計師
- 好程式設計師web前端分享js實現實戰案例程式設計師Web前端JS
- 程式設計師高薪盛宴背後:程式設計師其實正在消失?程式設計師高薪
- 讀《程式設計大師訪談錄》程式設計