摩爾定律失效了,CPU不能再快下去了。最痛苦的應(yīng)該是程序員。
2000年左右的那些時間真是程序員的黃金時代。每半年CPU的速度就翻番,半年前效率還那么不現(xiàn)實的算法,半年后就能應(yīng)用了。
那些年sun以為java可以統(tǒng)治移動設(shè)備,因為每半年速度翻番的cpu會讓大家不再在意那點虛擬機的消耗。但是現(xiàn)實是那么殘酷,如今cpu頻率止步不前,java在移動設(shè)備上的效率依然被人詬病,而sun已經(jīng)成了歷史。
硬件廠商們無法再在速度上做文章,轉(zhuǎn)向了多核。
但程序還得繼續(xù)寫下去,用戶需要越來越高的pv,越來越多的數(shù)據(jù),越來越炫的界面。但是cpu不能再快下去了,程序員之能轉(zhuǎn)而求助于多核心,協(xié)同處理。而異步程序的處理只會讓編程更加困難,項目更加復(fù)雜。
以前只會c\c++,以為它們足夠高效,足夠復(fù)雜,足以構(gòu)建出整個世界。但是真正做項目以后才發(fā)現(xiàn)靜態(tài)語言、OO在現(xiàn)實的復(fù)雜度面前是多么的蒼白無力。
直到看到了lua,python這樣的動態(tài)語言,才發(fā)現(xiàn)原來銀彈是有的,只不過太慢。
OO不過是晚綁定和高效率的不得已妥協(xié),妥協(xié)的結(jié)果是高耦合的繼承體系。在一個怪物的繼承體系中增添一個會飛的怪物,你就需要在整個體系中加上一個virtual bool CanFly()。這太蹩腳了。
真正理想的泛型是徹底的晚綁定:
obj = new Object; obj.life = 100 if(obj.life) print "obj is a creature." obj.fly = fly() if(obj.life && obj.fly()) print "obj is a bird."
這樣的語言里根本就不需要OO。但是徹底的玩綁定不夠快啊,python不夠,C#的反射也不夠。所以我們還是得OO,還是得delete。
為什么沒有銀彈?因為CPU不能再快下去了。量子計算或者別的什么足夠快的東西快來拯救程序員們吧!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
