The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
暫譯: 軟體的問題:為什麼聰明的工程師會寫出糟糕的程式碼 (麻省理工學院出版社)

Adam Barr

相關主題

商品描述

An industry insider explains why there is so much bad software―and why academia doesn't teach programmers what industry wants them to know.

Why is software so prone to bugs? So vulnerable to viruses? Why are software products so often delayed, or even canceled? Is software development really hard, or are software developers just not that good at it? In The Problem with Software, Adam Barr examines the proliferation of bad software, explains what causes it, and offers some suggestions on how to improve the situation.

For one thing, Barr points out, academia doesn't teach programmers what they actually need to know to do their jobs: how to work in a team to create code that works reliably and can be maintained by somebody other than the original authors. As the size and complexity of commercial software have grown, the gap between academic computer science and industry has widened. It's an open secret that there is little engineering in software engineering, which continues to rely not on codified scientific knowledge but on intuition and experience.

Barr, who worked as a programmer for more than twenty years, describes how the industry has evolved, from the era of mainframes and Fortran to today's embrace of the cloud. He explains bugs and why software has so many of them, and why today's interconnected computers offer fertile ground for viruses and worms. The difference between good and bad software can be a single line of code, and Barr includes code to illustrate the consequences of seemingly inconsequential choices by programmers. Looking to the future, Barr writes that the best prospect for improving software engineering is the move to the cloud. When software is a service and not a product, companies will have more incentive to make it good rather than “good enough to ship."

商品描述(中文翻譯)

一位業界內部人士解釋了為什麼有如此多的糟糕軟體,以及為什麼學術界不教程序員業界希望他們知道的知識。

為什麼軟體如此容易出現錯誤?如此容易受到病毒攻擊?為什麼軟體產品經常延遲,甚至被取消?軟體開發真的那麼困難,還是軟體開發者根本不擅長這項工作?在《軟體的問題》中,亞當·巴爾(Adam Barr)探討了糟糕軟體的激增,解釋了其原因,並提供了一些改善情況的建議。

首先,巴爾指出,學術界並沒有教程序員他們實際上需要知道的知識:如何在團隊中合作,創建可靠且能夠由原作者以外的人維護的代碼。隨著商業軟體的規模和複雜性不斷增長,學術計算機科學與業界之間的差距也在擴大。軟體工程中幾乎沒有工程的秘密已經不再是秘密,這一領域仍然依賴於直覺和經驗,而非經過編纂的科學知識。

巴爾在業界擔任程序員超過二十年,他描述了行業的演變,從大型主機和Fortran的時代到今天對雲端的擁抱。他解釋了錯誤的成因以及為什麼軟體會有這麼多錯誤,還有為什麼當今互聯的計算機為病毒和蠕蟲提供了肥沃的土壤。優質軟體和劣質軟體之間的差異可能只是一行代碼,巴爾還包括了代碼示例,以說明程序員看似微不足道的選擇所帶來的後果。展望未來,巴爾寫道,改善軟體工程的最佳前景是向雲端的轉變。當軟體成為服務而非產品時,公司將有更多的動力去製作優質軟體,而不是“足夠好以便發貨”。