設計大型建築和設計大型軟體,哪一個更難?
歡迎知乎上的建築設計師和軟體工程師發表自己的看法。
比來比去有什麼意思呢,前陣子timeline上出現做建築和做手機哪一個更難,現在又來過來一個設計建築和設計軟體哪一個更困難,是不是今後又要來做一個建築設計和拍一部電影,造一輛汽車哪個更難了。
可是為什麼你們為什麼不問「畫一幅畫和設計一個軟體哪一個更難」這種問題?又或者「寫一首交響樂和做一部手機哪一個更難」這種問題?似乎按樓上的的定義,畫一幅畫只需要顏料和畫筆塗抹幾筆就夠了,寫交響樂也如是。
豬小寶是結構工程師,他對比的是建築的技術含量和做手機的技術含量。我認可。
如果你也只是從畫一幅畫只需要顏料盒畫筆塗抹幾筆來得出設計軟體更困難,我也只好點頭。可是這世界上不是只有0和1,還有星星和月亮,陽光和雨露。此處應有程序員最喜歡說的話:看需求
鑒於我們自己做了結合建築和軟體的跨界軟體,我們是有體會的。做建築,你是看得到你的那個孩子最後長啥樣的,最後施工出來的樣子和你設計的差別不大,是控制性的。做軟體,你是不知道自己的孩子最後會長成啥樣,還得勤勤懇懇任勞任怨,每天伺候著他,還美名其曰「迭代」,是失控性的。那你說,哪個更難呢?
設計建築是真·設計建築,幾乎不用去工地。設計軟體就不行了。
大概除了比加班,這兩件事很少有可以放在一起比較的交集。
知乎是程序員的天下,這個問題下的回答自然會傾向於程序員一方。
我來中和一下。
先是對這個問題下其他某些答案/評論的看法:
一、交通工具的控制軟體和生命安全也直接相關,因此程序崩潰造成的後果並不比建築崩潰造成的後果要小。
交通工具的控制軟體的確和生命安全直接相關,在不希望以偏概全的情況下,作為少數的例子,它並不能改變總體上而言,對建築安全要求的苛刻程度遠遠高於對程序安全的要求的事實。
二、建築設計需要用到各種軟體,因此設計程序難於設計建築。
假如這種邏輯成立,那麼同樣地我們可以說「程序設計要依靠鍵盤,因此設計鍵盤的難度大於設計程序」。
三、一個程序/網站的開發需要很長時間的後續支持服務和迭代服務,因此設計並維護程序的難度大於設計建築的難度。
任何一個程序員都明白,一個程序的一個版本的實現只是完成了一半——de未來發現的bug,未來的新需求,程序員們都要為此負責並付出更多的汗水。然而我不認為拿出來一個自己獨有的特性來證明程序設計難度大於建築設計是個好主意——按照這個邏輯,同樣可以說「心外科不會在第一次手術後再開胸關胸開胸關胸,因此心外科難度小於設計程序」。
想想心裡一緊呢。大家都是在飽和工作,程序員需要為一個軟體/網站長期的深入的維護,那麼程序員就承擔了較少的項目。建築師結構師之類的職業為之前的項目提供的維護較少,那麼他們會接到更多的項目。
在職一天,就會幹一天的活,不會存在建築師/結構師因為不用為建築提供迭代服務就可以在設計院里喝杯咖啡逛逛知乎的情況。
更何況,知乎上的建築師和結構師的數目遠少於程序員的數目,似乎說明了什麼……當然,除非你是像輪子哥那樣的在編譯的時候刷刷知乎的。
我認為以上三種想法是對「設計程序的難度大於設計建築的難度」的糟糕的證明。
下面說說我個人的想法:
作為程序員,大家都知道自己做的事情的複雜程度和難度。從偏向設計的前端說起,CSS裡面要把font-style寫成什麼樣子才能使網頁在Windows和OS X上同時擁有良好的顯示效果(拿Web Font說事那算開掛)?類似amazon首頁的分類菜單如何實現?作為後端,如何改進一個網站內容的搜索演算法?如果是移動APP開發者,如何讓自己的APP能儘可能多地兼容不同解析度的屏幕?
這背後的東西多得去,這背後的難度如登山。哼哧哼哧地,把問題解決了,把演算法優化了,把js寫得讓人拍手稱讚了——大多數用戶感覺得到嗎?當然不會。人家可懶得問這些,這個網站的菜單不反人類了,那個網站里搜索出的東西似乎靠譜了,我手機上的APP不再拉伸了,那才是人家感受到的。
你容易嗎?不容易。有人care嗎?沒有。默淚嗎?默淚個毛線。用戶用著你的產品,目的已經達到。
但如果有門外漢指著你的鼻子說:「編程是一件很簡單的事情,你的工作一定很輕鬆。」
你想揍他嗎?
他為什麼能說出來這樣的話?因為他不懂相關的知識,而且狂傲。
這是單個產品的情況吧?如果是我們需要一種實現,使得它能承載我們的產品,並且使這些產品組合起來提供更強大的服務和生產力?
當然大家知道我說的是操作系統。
Linux系統是如何管理各種設備和文件的?為什麼各種服務在Linux上可以同穩定地同時運行,並在數月甚至數年內維持穩定?這背後當然有Linus和社區成員的無數的心血——但他們是如何做到這一切的,他們付出了什麼樣的努力,我不知道哦,我會拿來順手的發行版,裝上順手的包,跑起來順手的服務,搭起一個管理起來很順手的伺服器——目的達到了。
如果有一天有個菜鳥跑到社區論壇里打開地圖炮,說Linux這麼難用這麼簡陋為什麼不去死。
估計會得到好多問候吧。
他為什麼會那樣說——因為他不僅不懂,而且狂傲。
我剛才不是也說我也不懂嗎——是哦我也不知道他們付出了什麼樣的努力,但我想這背後一定有他們的無數的汗水。
很多程序員在做著很複雜的事情,並且為之付出大量的心血。但是這些心血難以得到普通用戶的注意。這是事實。但是,如果換個領域?想想有一天你起床,洗漱,早餐,然後出門,開車,開出小區,一直到公司的底下停車場,然後乘電梯到你的樓層,進入辦公室,放下包取出TP放在座子上,轉身看身後的落地窗外,嗯,早上九點鐘的太陽。稀鬆平常。有好的城規和沒有城規的差距,大概也是那樣。
我認為「隔行相輕」,大多還是因為對另一個行業的完全不了解,或者一部分人的狂傲使然。設計程序複雜,是每一個程序員都懂得的事情。設計建築複雜,是每一個建築師/結構師/城規師都知道的事情。我不認為這兩者中有哪一個更複雜一些——就像開頭所寫,幾乎沒有可比較的交集。尊重每一個為了使生活更美好而努力的職業,尊重每一個付出勞動的人。以上です。利益相關:程序員,不懂設計不懂建築不懂城規不懂結構。
看到有人說,對於建築,人的需求基本固定,真是要笑出眼淚了。你們家是不是還住山穴啊,是不是還住里坊啊,是不是還一大家子圍在四合院啊,是不是還住在筒子樓啊。
當然,我知道,你肯定是想表示,現在的住宅就很爽,沒有別的需求了。
我跟你說,你走出去審視下你現在的居住環境。我們建築師的目標就是做一個人工牢籠,把你裝在裡面,讓你越來越孤僻。現在已經初見成效,許多人變得越來越悶騷。在以後,我們還會把更多的人工植物放進來,人工太陽弄進來,人工山水弄進來,讓你足不出戶飽覽自然風貌,美名其為綠色建築、山水城市,永遠活在我們給你精心設計的籠子里,養著。就是不讓你享受真實大自然的美妙,至於你的後代會不會出現自閉症,會不會厭世,我才不管,你又沒這需求。你看我一不小心,居然把陰謀暴露了。倒是,有一部分叛徒,竟然在主動打破目前牢籠一般的建築環境,試圖用開敞流動的空間,鼓勵人們重新回歸自然。可喜的是,他們做的都很差勁,人們習慣了孤僻,不認可走出去交流。如你所見,悶在家裡上網,擺弄手機。
不過,能冒出這種遠見,倒是好。但怎麼實現,實現之後,怎麼讓人接受,需要靈感,靈感難不難?講半天終於引出靈感一詞了。為啥我會如此調侃,因為這個問題真心糟糕極了,不比那個把建築跟手機對比的問題好多少。居然認為,設計建築,難就難在大型和複雜上。你看,一出手就把方向弄錯了。
那石家莊客運站是大型建築吧,還不是說漏水就漏水了?著名的流水別墅,同樣也漏水,但歷史就是標榜它為經典建築,而且讚嘆不已。要是讓「大型建築」石家莊客運站跟小巧的流水別墅一比,不知道要怎生自慚形穢了。在歷史長河中,大型建築,根本不值一哂,沒創意,不過是一堆材料垃圾堆砌,拆了也不可惜。所以,設計的難度是靈感、是審美、是開創性,知不知道?朗香教堂我們都說很厲害,光之教堂我們都說有情懷。然後你一出來說,還沒我家門口的萬達廣場大型複雜呢,萬達廣場難多了。。一口老血。要大型要複雜,給足錢就夠了,堆料狂魔笑而不語。但你要做出好建築,沒有靈感,沒有開創性,難啊。就算耗資上千億,哭也是哭不出的。我如果說,鳥巢和CCTV大樓加起來,也比不上光之教堂的難度,純理科生准不服氣。他們會說,你看看鳥巢的用鋼量,你瞅瞅CCTV大樓的建設難度,就光之教堂這low配置,敢不敢一起跑個分?所以我一直認為,純理科生直男癌只知道拼人數,湊配置,比參數,是弄不懂藝術的玄妙的。雖然我也是純理科生。建築設計解決功能需求是不錯,但告訴你,只要是合格的建築師,都能給你很好的解決功能上的需求。不僅是建築師,工作多年的土木工程師,難道就真玩不轉功能流線?笑話,不僅能做,而且刷刷幾筆,建築師還沒法挑剔。
但可喜的是,人是視覺動物啊。無數事例告訴我們,表白失敗的原因就是丑,不是說你缺胳膊斷腿。你視覺需求算不算?當然要算啊。視覺就牽扯到了形式,形式就扯到了藝術。解決藝術需求,這已經不是死努力和智商能解決的問題了,需要情商和藝術操守。可我還沒聽過哪個程序員自己就能把UI做好了的,還不是得請美工?想我大建築師多難做啊,做完功能,還得做美工,還得當說客,都是淚。這裡向大土木工程師、水電暖通排水工程師致敬。為什麼許多人認為,設計很簡單,可以存在免費的設計,就是因為這幫人,毫無藝術素養,不知道藝術的價值。
你跟他說,光影的微妙,說空間的曖昧,說線腳的獨到,說色澤的對比。他根本覺得不重要,不實在。也確實,這東西無法衡量。你畫出來了,他一看,沒難度啊,我也可以臨摹出來的。名家畫作,大家書法,巨匠建築,筆觸和神韻都是求不來的,就好像大詩人飲酒微熏詩意大發,頃刻間揮灑詩篇。而酒醒後,卻無法寫出同樣出彩的文章。
你真以為一幫理科思維的現代主義建築,跟套公式做邏輯推理一般出來的建築,東拼西湊外加堆料出來的建築,就是建築的代表了?建築只分流派,不分大型小型,好壞全在靈感。靈感,難之如上天,易之如翻掌。但你硬要說難度,可能也就花個數小時幾分鐘。然後就不屑一顧了:「尼瑪,你知道我碼代碼多辛苦多困難嗎巴拉巴拉」。建築確實在用各種程序和軟體優化設計,但你從何得出現代建築是用軟體設計出來的,所以建築離不開軟體。告訴你,軟體只是我們拿來利用的工具,工具懂不懂?提高生產力,輔助創造力罷了。
沒有軟體我們以前用筆和紙,三維空間我們用手工模型。不然,歷史上那一堆嘆為觀止的建築是憑空蹦出來的?高迪那想像力爆炸的建築是用的哪個軟體設計的?人家那個時代,電腦是啥都不知道呢。而且,我們還會運用各種「工具」,文化,歷史,藝術,社會,心理,哲學,科學……如你所想,都能為我所用,無所不包。這些「工具」難不難,每一項都是千錘百鍊,難極了。即便是程序,也為我所用,化作各種參數化表皮,裝點門面。所以不在同一個次元,關公戰秦瓊,一場好戲。
好吧,不該調侃的,其實我對程序員還是真愛,但這種問題,就夠了吧。瀉藥。
建築設計,難的是領會甲方要義,並且能夠創造性的發揮。大型建築在這點上未必比小型建築複雜。現在的建模技術,可以進行3D建築景觀建模,比如大型遊戲,比如虛擬復現歷史建築;可以進行有限元分析建築的抗震抗衝擊,抗海浪等等;可以深入到建築設計周期,用來管理信息,和機械工程方耦合,比如BIM-CAO系列;可以分析室內甚至城市內的風場,溫度場,比如CFD系列;可以像機械設計一樣3D列印模型,現在還不大時髦;可以大批量設計量產構件化建築,比如使用資料庫的建築工業化。甚至學生還需要PS軟體來做效果。以上可以看出,建築設計的方方面面都有藉助計算機技術,如果可以一種技術可以很大程度上有另一種技術來實現,那麼後者應該更基礎更複雜。上面提到的涉及到的大型軟體,都是非常複雜的,用過CATIA的人應該有類似的感覺。由此我認為軟體更加複雜。
上面列出的我都是略懂一二,不精通,我不是程序員,程序方面僅僅在學生時代用C++和Java,現在偶爾會用下Perl而已。
以上。首先,這是一個好問題,比起另外一個把大樓跟做手機對比的問題,這個好太多了。
我是一個建築設計師,對軟體僅僅是略有了解。以前在ETH聽過一個講座,主題大概是軟體工程與住宅,主講者是建築學院的一個教授吧。他是這麼說的,雖然建築業的歷史有幾千年,房屋也是越來越複雜,但是發展速度遠遠不及軟體,軟體才幾十年,但是複雜程度確是以指數級的增長,越往後,軟體設計的困難程度是非常巨大,而且設計團隊(非編碼工作)也比建築設計的團隊要大的多。
所以,不要小看了一款軟體背後設計人員的心血付出。
想起來以前偶然翻看過一本書,作者是:Frederick P. Brooks, Jr.大家感興趣可以看看,書名是:The Design of Design這都要看質量,在正常使用的情況下,一個永不崩潰的大型軟體肯定比一個永不坍塌的大型建築要難得多。
知乎上程序員太多,很難得到可靠答案。ps:我也是程序員,匿了
我覺得,大型軟體應該和大型設備比較,比如航母、大型客機啥的。
你以為我們是在寫代碼?
不,我們是在構造一個新世界。
用學科發展時間衡量,建築設計難於軟體設計!
/*很久前也考慮過類似問題,今天看到這個問題又思考了下,看看其它的答案,想著這個比較其實本來也沒什麼意義。後來覺得作答過程本身也是梳理思路一個途徑、並且也許能給自己一個交流增長見識的機會,於是就來試著答答。
自己從事的是建築施工行業,對建築設計並不那麼在行,對軟體設計更是憑興趣知道些皮毛都算不上,還不一定正確。當是拋磚吧。*/當然,這兩個東西實在沒什麼可比性(正是「術業有專攻」),真要比(而且還真是件超級無聊的事兒),我傾向於設計建築更難些吧。
首先我基於的幾個前提(我的知識界限?):
1. 設計更多是思想上的東西。寫代碼不能算是「設計」,畫圖紙也不能算「設計」,這些是實現設計、使設計思想具體化的一個過程。更進一步,代碼(廣義的,包括那些多媒體什麼的)寫完編譯出來就有軟體了。圖紙畫完房子仍然還是在圖紙上。2. 設計一方面是將現有的東西整合起來,講究整合的能力;另一方面是創新的能力,想出一個原本沒有的方案,誰難些呢,不好比較,所以暫時不對設計過程中的創新難度對比。也不考慮美工(有什麼更好的詞嗎?我想說的是藝術工作,美術工作??)方面的影響。3. 暫不考慮資本對設計的影響。4. 不考慮客戶表達能力,或者設計者理解能力5. 暫不考慮用戶需求變更在設計過程中的產生影響。6. 不知道多「大」的軟體才能算「大型軟體」,我就想像成這個軟體非常「大」,各種能想到的想不到的技術都多少會涉及。同樣,「大型建築」,城市綜合體?地標?交通樞紐?其實有上面第2條,「大」的程度對我回答沒影響。展開「1」來發散下。
既然是「思想」上的東西,就沒什麼難或不難的。知道就不難,不知道就難;想得到就不難,想不到就難。所以一是想的廣度,一是深度。假設有兩個天才設計團隊(或兩個天才全能設計師),在他自己的知識範圍內,他都能思考的足夠全面深刻。這樣以便消除設計失誤,盡量減少設計漏洞缺陷。(我想像能排除全部功能上的設計缺陷,幾乎所有(不用到「幾乎所有」,但比「絕大部分」多,這些詞能不能按百分百定義啊?我想像在98%以上)的安全上的設計缺陷。這點稍後展開)
我想到在寫代碼或者畫圖的時候會不斷產生新的設計思想,幸好有「天才團隊「,希望這些不斷冒出的」新方案「在設計最開始就能考慮周全。
有了天才團隊,思想深度上兩者扯平。廣度方面,我以為可以量化成知識積累的人工時間來對比。既然是天才,學東西一定快,對比也是麻煩。普通人比比吧,我也都沒學過,不了解,但願有朋友補充。---------以上12.29,累了,改天再寫,睡覺------簡單來說吧,一句話可以回答這個問題:術業有專攻,如是而已
…這真是一個無聊的問題…
《夢斷代碼》里提過一個有意思的比喻:如果工匠以程序員的方式建造房屋,來一隻啄木鳥就足以毀掉文明社會。這句話的意思是,我們的軟體里隱藏的bug之多,完全超越了建築能夠隱藏的bug。
軟體難,設計一個大型建築也就幾十人幾個月就設計完了,而大型軟體有可能上千人,維持幾年,不斷的更新。
沒有可比性,現在很多人認為比軟體比作建築是不合適的,更輕向於比作園藝,要不認那個建築擴展下功能試試,更別提重構了。
沒有什麼可比性... "大型建築物" 是多"大型"的? "大型軟體" 是多"大型"的?
如果你想做,哪個都不難。不想做,哪個都難!
推薦閱讀:
※參觀美術展需要注意哪些禮儀?
※為什麼北方的樓房設計大多數是小窗為何不用落地窗?
※能推薦幾款白天夜晚都好看的客廳燈么?
※遊戲場景概念設計對透視學知識要求有多高?
※假如有天人工智慧取代設計師做設計,最可能是怎樣一種形式?