幾十年來,硬體效能翻了幾十倍,但我們的電腦並沒有變得想流暢?是不是大公司的陰謀?
你說的這個問題相信每個人都深有體會,Windows95才100多M,然後Windows98、Windows2000體積一直往上漲。到了經典的WindowsXP,安裝後佔用的空間已經達到了2G以上。這還不算什麼,現在的Windows10光安裝包就有這麼大,安裝完要佔掉10幾個G的硬碟空間。
當然這期間,硬體的速度和大小也在成倍的往上翻。處理器從以前的單核幾十MHz發展到目前的多核幾個GHz,記憶體從以前的8M發展到目前64G,硬碟從以前的幾百MB容量發展到目前的幾TB...效能的提升是幾百倍到幾千倍的增加。
然而我們感覺自己在電腦上做的事還是那麼點事,無非就是辦辦公,上上網、看看電影、打打遊戲。按道理,硬體提升了這麼多,電腦應該快的要飛起來了。然而,大多人反而覺得電腦速度變得更慢了,因為硬體提升的同時,各種軟體也迅速變得龐大臃腫起來。這難道是做硬體的公司和做軟體的公司為了加大雙方產品的銷量而搞的陰謀?
於是電腦IT界就誕生了這麼一個有趣的安迪-比爾定理 (Andy and Bill’s Law),原話是 “Andy gives, Bill takes away.(安迪提供什麼,比爾拿走什麼。)” 安迪指英特爾前CEO安迪·格魯夫,比爾指微軟前任CEO比爾·蓋茨,這句話的意思是,硬體提高的效能,很快被軟體消耗掉了。
當然這個因素有嗎?我認為是有一點的,畢竟如果軟、硬體都長期趨於穩定,大家就都沒有更換的動力了。但最主要的,我認為還是因為科技發展的原因導致的。早期的電腦,能做的事情非常有限。比如顯示圖片還只能顯示16位色的,顏色失真很嚴重。後來很快就能顯示24位、32位的真彩色了。再後來,多媒體技術發展的更快了,人們可以在電腦上看高清的視訊,玩3D的遊戲了。這種技術要處理和運算的資料量是非常之大的,對硬體的處理、儲存能力要求非常高,同時軟體的體積勢必會水漲船高,這樣看似提升了很多的硬體都被軟體輕易吃掉了。
另外,軟體開發的難度和對效率的要求也導致這個問題的加劇。功能越來越多,開發週期要求儘可能的短。程式設計師位在高壓的情況下,再也不會去對程式的儲存和執行效率斤斤計較了,反正硬體足夠用。程式效率執行效率再低,只要能按時跑起來就行了。並且很多企業在考核程式設計師的時候,都是看你前段時間內產出的程式碼行數,那麼能用1行完成的程式,我用5行甚至10行來完成,豈不是更有利嗎?
還有,軟體開發人員也是經常會換人的。新來的人員如果來維護原來程式設計師的程式碼,在龐大的系統面前,他不可能把所有程式碼都理解吃透的。這樣,如果要新增新功能,只能在原有的程式碼基礎上小心翼翼的新增新程式碼。優化?不存在的,有可能牽一髮而動千軍,導致整個系統崩潰都有可能。所以,程式就變得越來越低效,越來越臃腫了。最後變成業內所說的一座“屎山”,誰都不敢隨便去招惹它。
然而,清流還是有的。有的程式設計師有程式碼潔癖,本身水平又高,軟體又開發的全過程又可以由自己來掌控,最後就能打磨出來一套簡潔、高效的程式。比如一位西工大教授廖達雄編寫的CAD軟體,大雄機電CAD,才100M的體積。並且還是綠色免安裝的,非常好用,而新版的AutoCAD軟體體積是它的十幾倍。
你說的這個問題相信每個人都深有體會,Windows95才100多M,然後Windows98、Windows2000體積一直往上漲。到了經典的WindowsXP,安裝後佔用的空間已經達到了2G以上。這還不算什麼,現在的Windows10光安裝包就有這麼大,安裝完要佔掉10幾個G的硬碟空間。
當然這期間,硬體的速度和大小也在成倍的往上翻。處理器從以前的單核幾十MHz發展到目前的多核幾個GHz,記憶體從以前的8M發展到目前64G,硬碟從以前的幾百MB容量發展到目前的幾TB...效能的提升是幾百倍到幾千倍的增加。
然而我們感覺自己在電腦上做的事還是那麼點事,無非就是辦辦公,上上網、看看電影、打打遊戲。按道理,硬體提升了這麼多,電腦應該快的要飛起來了。然而,大多人反而覺得電腦速度變得更慢了,因為硬體提升的同時,各種軟體也迅速變得龐大臃腫起來。這難道是做硬體的公司和做軟體的公司為了加大雙方產品的銷量而搞的陰謀?
於是電腦IT界就誕生了這麼一個有趣的安迪-比爾定理 (Andy and Bill’s Law),原話是 “Andy gives, Bill takes away.(安迪提供什麼,比爾拿走什麼。)” 安迪指英特爾前CEO安迪·格魯夫,比爾指微軟前任CEO比爾·蓋茨,這句話的意思是,硬體提高的效能,很快被軟體消耗掉了。
當然這個因素有嗎?我認為是有一點的,畢竟如果軟、硬體都長期趨於穩定,大家就都沒有更換的動力了。但最主要的,我認為還是因為科技發展的原因導致的。早期的電腦,能做的事情非常有限。比如顯示圖片還只能顯示16位色的,顏色失真很嚴重。後來很快就能顯示24位、32位的真彩色了。再後來,多媒體技術發展的更快了,人們可以在電腦上看高清的視訊,玩3D的遊戲了。這種技術要處理和運算的資料量是非常之大的,對硬體的處理、儲存能力要求非常高,同時軟體的體積勢必會水漲船高,這樣看似提升了很多的硬體都被軟體輕易吃掉了。
另外,軟體開發的難度和對效率的要求也導致這個問題的加劇。功能越來越多,開發週期要求儘可能的短。程式設計師位在高壓的情況下,再也不會去對程式的儲存和執行效率斤斤計較了,反正硬體足夠用。程式效率執行效率再低,只要能按時跑起來就行了。並且很多企業在考核程式設計師的時候,都是看你前段時間內產出的程式碼行數,那麼能用1行完成的程式,我用5行甚至10行來完成,豈不是更有利嗎?
還有,軟體開發人員也是經常會換人的。新來的人員如果來維護原來程式設計師的程式碼,在龐大的系統面前,他不可能把所有程式碼都理解吃透的。這樣,如果要新增新功能,只能在原有的程式碼基礎上小心翼翼的新增新程式碼。優化?不存在的,有可能牽一髮而動千軍,導致整個系統崩潰都有可能。所以,程式就變得越來越低效,越來越臃腫了。最後變成業內所說的一座“屎山”,誰都不敢隨便去招惹它。
然而,清流還是有的。有的程式設計師有程式碼潔癖,本身水平又高,軟體又開發的全過程又可以由自己來掌控,最後就能打磨出來一套簡潔、高效的程式。比如一位西工大教授廖達雄編寫的CAD軟體,大雄機電CAD,才100M的體積。並且還是綠色免安裝的,非常好用,而新版的AutoCAD軟體體積是它的十幾倍。