您的位置:首页 > 其它

为什么没有银弹?因为CPU不能再快下去了

2011-09-10 15:14 447 查看
摩尔定律失效了,CPU不能再快下去了。最痛苦的应该是程序员。

2000年左右的那些时间真是程序员的黄金时代。每半年CPU的速度就翻番,半年前效率还那么不现实的算法,半年后就能应用了。

那些年sun以为java可以统治移动设备,因为每半年速度翻番的cpu会让大家不再在意那点虚拟机的消耗。但是现实是那么残酷,如今cpu频率止步不前,java在移动设备上的效率依然被人诟病,而sun已经成了历史。

硬件厂商们无法再在速度上做文章,转向了多核。

但程序还得继续写下去,用户需要越来越高的pv,越来越多的数据,越来越炫的界面。但是cpu不能再快下去了,程序员之能转而求助于多核心,协同处理。而异步程序的处理只会让编程更加困难,项目更加复杂。

以前只会c\c++,以为它们足够高效,足够复杂,足以构建出整个世界。但是真正做项目以后才发现静态语言、OO在现实的复杂度面前是多么的苍白无力。

直到看到了lua,python这样的动态语言,才发现原来银弹是有的,只不过太慢。

OO不过是晚绑定和高效率的不得已妥协,妥协的结果是高耦合的继承体系。在一个怪物的继承体系中增添一个会飞的怪物,你就需要在整个体系中加上一个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不能再快下去了。量子计算或者别的什么足够快的东西快来拯救程序员们吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐