軟體是藝術科學的結合

banq發表於2010-04-26
Jason Gorman對剛剛成立的SEMAT組織有自己的思考,SEMAT是軟體工程方法和理論Software Engineering Method and Theory,試圖統一目前混亂的軟體工程領域。作者認為任何將軟體只和工程 "engineering"和"科學"掛鉤的說法都是有失偏頗的,作者認為:軟體應該是科學和藝術的結合。

原文:Software Is Both Art & Science. Can We Move On Now?

這個觀點我相當認可,正是因為對軟體開發這個事物基本定位存在爭論,所以才誕生各種混亂,而試圖統一這種混亂的SEMAT組織如果對這個基本問題都沒有定論,相信其權威性是缺乏認同的,雖然都是由一些大牌推動的,最後又成為學術院牆中看上去很美的蠟槍頭了。

如果軟體是藝術科學結合,那麼軟體工程專業就不應該只能是理科生報考,也許文理分科是造成國內軟體陽痿的罪魁禍首。同時,這些以科學思維強姦軟體,並且獲得所謂成功地位以後,再反覆加深對這種誤解,這應該是目前中國軟體行業最大的畸形。

為什麼我認同軟體是藝術和科學結合,原文因為本人水平有限,沒有完全理解,但是從個人經驗來看,軟體很多方面都散發著依賴個人感覺和素質的地方,比如重構中的壞味道,雖然我們可以靠一些工具找出BUG,但是誤報漏報還是經常出現,而如果你有深刻設計模式背景,有很強的OO經驗,你對壞味道的辨別能力就比別人強,別人聞不到的你可以發現,你甚至可以依靠職業直覺發現一些潛在設計問題。

我們知道軟體分析設計是一個創造性工作,而創造性是不可以被科學的,創造性是科學發展的動力,但不屬於科學範疇;同樣,軟體設計是一個追求巧妙設計的過程,大道至簡,如何去繁複簡呢?需求是那麼複雜,如何抽象呢?除了演算法數學之道以外,還有一個巧妙之道。

我們經常講“數學之美”, 而美屬於藝術範疇,數學屬於科學範疇,最後,數學科學不也是在追求藝術中一種美的極致嗎?

軟體應該是科學和藝術的結合,它應該是哲學,至少是一種方法論,如果不能從這個角度來認識軟體,恐怕就會發生盲人摸象的笑話,做了一輩子軟體,居然軟體是什麼都無法準確定位,這應該是一種恥辱吧。

轉貼一句,對於軟體開發同樣需要:止而後有定,定而後能靜,靜而後能安,安而後能慮,慮而後能得!

相關:

關於設計模式的心裡話

[該貼被admin於2010-04-27 09:18修改過]

相關文章