摩尔定律失效了,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不能再快下去了。量子计算或者别的什么足够快的东西快来拯救程序员们吧!