25年、博士、C/C 程序員的告白:多年來代碼依然存在bug
作者丨Robert
翻譯丨Diwei
譯者註:作者從事C語言開發很久了,但是他寫的代碼還是有問題,他卻覺得很正常,因為寫出來的代碼沒有bug的人非常少,那些以為自己代碼寫的很健壯的人,是因為他們沒有碰到難題。以下為譯文。
我已經用C和C++編程超過25年了。我還擁有計算機科學專業的博士學位,我是Mozilla的一名傑出的工程師,過去十年我的主要工作是開發和審查C++代碼。我寫的C/C++代碼時不時就會有問題。然而我對此並不感到羞恥,我也不知道是否有其他人能做到代碼一點問題都沒有。我聽說Daniel J. Bernstein也許可以,但我相信,即使是在精英階層,這樣的人也少之又少。
我看到很多人斷言,使用C和C++的安全問題(導致可被利用的bug)只會折磨「無能」或「平庸」的程序員,而只需要僱傭「技術嫻熟」的程序員(比如說這些話的斷言者),就不會存在問題。我懷疑這樣的斷言是鄧-克魯格效應的例子,因為我從來沒有聽說過他們是一個非常有技巧的程序員。
我認為,許多開發人員成功地創建了C/C++程序,這些程序可以為特定的任務工作,沒有人會發現這些程序中存在的漏洞,或者試圖在這些程序中尋找可利用的bug,因此,這些開發人員自然地假設他們的程序是健壯的,也沒有可被別人利用的bug,從而對自己的能力產生了錯誤的樂觀。也許有一個在線編碼練習是很有用的,在那裡你可以得到一些很簡單的任務,你可以編寫一個c/c++程序來解決它,然後你的解決方案就會被嚴格地檢查。如果發現了代碼中有錯誤,那麼你將被降級為「無能的c/c++程序員」。
網友精彩評論
Siddharth Kannan於2017年7月17日 19:37評論道:
你認為這可能就是為什麼我們不應該在C中編寫類似於TLS這種安全性的原因嗎? (為了避免像Heartbleed這樣的事情,最近Cloudfare發生溢出+數據泄露)
FDominicus於2017年7月17日 20:23評論道:
我從事C語言編程的時間稍微久一點。我不喜歡C++,也盡量避免使用C++。但我是Objective-C的忠實粉絲。無論如何,C語言的問題是內置的。有很多工具可以幫助解決這個問題,但是這些問題仍然存在。我認為沒有實際的方法,只要有問題,你就很容易迷失。無論如何,C語言的成功史是其它語言無法企及的。每一個類似於unix操作系統都使用它。任何Windows操作系統都可以使用。每一個嚴謹的關係型資料庫都使用它,而且支持庫的數量不計其數。幾乎是無法計量的。是的,C語言也是一個失敗的故事,但是他們不能以任何方式阻止它。
c-編譯器是最好的,而且它們不會輕易地將任何基準都釋放掉。
Janis Kovalevskis於2017年7月17日 20:57評論道:
在過去的幾年中,我還沒有看到過一個真正了解C++的人,並且真正理解了「底層」是什麼,即使他們確實做到了(在語言方面),還有下一層的編譯器實現「細節」、庫實現等等,這些都是在增加複雜性。
所以,是的,很遺憾,但是你在這一項上是110%。
Pente於2017年7月18日 09:57評論道:
安全是相對的。我懷疑任何語言都是安全的嗎?對我來說,C是最安全的,因為我的經驗。我知道這是弱點和長處。
點擊展開全文


※GitHub里的MySQL基礎架構自動化測試
※開發者應該知道的代碼審查工具,杜絕代碼bug
※九張圖帶你了解全宇宙最神秘的團體——程序員
TAG:CSDN |
※在42歲遇見25歲男生的告白,Yes or No?
※「520」-最Low的告白
※2011年以Apink主唱出道!恩地當了九年偶像坦率告白心聲
※520告白日·Max Mara讓你更有自信文末驚喜
※?Love┃【六福珠寶】告白 5 2 0---愛要大聲說出來
※2018年末,告白成功,2019年領上結婚證的星座!
※泫雅碰到對手!這個171的長腿短髮girl,是當年《告白》里的班花
※果粉告白:喜歡iPhone XSMax的8個理由
※【7.18日運】天蠍:表達需三思,金牛:適合告白
※190208 Paul Kim「無法忘記和防彈少年團相遇的瞬間……我是阿米」飯心告白
※【11.12日運】天秤:適合告白,魔羯:容易疲勞
※「TFBOYS」「新聞」190517 520神秘驚喜預告來襲,來聽超剛代言人王源的告白
※24歲秀智和37歲李棟旭相戀,6年前就曾告白,網友:暗戀的典範
※12年暗戀,731封信,現場告白
※3unshine離開《創造101》,最新單曲排名超過告白氣球
※520甜蜜獻禮|Tiffany攜手劉昊然開啟愛的告白!
※防彈少年團:RM,J-Hope,SUGA的真情告白
※520 | 我有個告白你pick一下
※520——新時代「告白日」
※天文告白:妳,來自24.4光年外的星光