當摩爾定律不在那麼有效的時候, 我們是依然靜觀其變,還是努力的尋找解決辦法? 多數人當然會說後者, 可實際上絕大部分還是安分守己的選擇前者, 不光是傳統的編程思想易學, 更重要的還是考慮成本的問題, 多數公司不太希望在創新上浪費太多的錢, 更多的願意選擇使用經過別人發佈測試好的程序. 在工程上來講這確實可取, 畢竟可靠穩定是第一因素, 其次纔是性能. 不過時代確實改變了..... 處理器的發展速度朝着截然不同的方向前進, 鴕鳥算法不再適用的時代, 爲什麼還有這麼多人爭先恐後的爭當鴕鳥.... 確實讓我很不解.... .....
話說, 今天頭疼... 可能是忽冷忽熱的地鐵讓我很不適應... 這兩天研究並改進一套算法, 雖然有些地方還沒能自己實現下, 但好在的是思路更加開闊了.... 有時候看到一個人每天寫了好幾百行甚至上千行程序.... 暫且不說質量如何... 我是真的不敢恭維這樣的速度.... 估計他要花上數週的時間來重構幾次.... 最終下來的程序或許只有100行不到.... 多核時代帶給我們的不僅僅是挑戰,也是機遇... 將舊有的程序改成高性能的並行程序並非一件易事, 這需要一個人的知識儲備量達到一定數量級才能做到... 不過編寫一個穩定程序的難度要遠高於編寫一個高性能的程序.... 這中間又涉及到很多取捨問題....
一個優秀的程序員可以做到在恰當的場合使用恰當的語言, 而非對一門語言有過於嚴重的依賴.有些公司使用C/C++這類編譯型語言來寫邏輯, 當然並不是說這樣不可以, 對於追求極致性能的產品還是可以的, 但如果產品追求的更高的穩定性,更強的容錯性, 再用這類語言只會讓你每天忙於各種BUG的修復.... 通常這類BUG都是可以導致程序掛掉的.... 因爲並沒有辦法阻止程序員犯錯... (人都會犯錯... 包括大牛們). 這時候腳本語言這種簡單易學,容錯性高的語言就可以很好的派上用場了.更適合做服務器和客戶端的邏輯層開發. 對於一些長久不變且對性能有嚴格要求的地方,比如服務器引擎,客戶端引擎這類的框架通常還是C/C++配合適當的彙編來完成更加合適.
同樣一段程序,可能每個程序員的實現都或多或少會有不同,但真正能寫出優美代碼的人畢竟還是少數, 這樣的程序融合了大師級的設計思想,無論從程序結構上,穩定性, 效率等方面都是優異的, 或許你現在還對此並不在意, 當你維護一個讓你每天都崩潰無數次的程序時, 或許你會翻然醒悟優美代碼的好處 :) 編寫那樣的代碼絕對不是在浪費時間....
希望有一天,我能帶給大家的不僅僅是啓示,而是深思....