这个是我刚才在开源中国上看到的!
一个API的实现, 需要两个层面,一个是芯片级别,另外一个是软件.
java的bycode不是根据芯片特点设计的, 这意味着,必须需要一个虚拟机, 要么在芯片里面放一个,要么在软件上放一个. 不管放哪里, 都有很大的代价. 这个代价我们可以用trouble来表达, 就是说, 麻烦从来不会消失,不是在这里,就是在那里.
这里可以有另外一个反例, directx, 这个就是将芯片实现的算法,用api形式在操作系统层面完美表达的一个例子. 这种东西,必须 合服 芯片以及软件两方面的工程设计,才能达到. 而java的bycode,是完全脱离芯片的工程设计来做,就意味着, java芯片必定失败. 芯片不会向java妥协,不是因为强势,而是因为工程上无法实现. 这也同时是directx可以比opengl更成功的一个例子.
反观C的指针,就可以在任何芯片上游刃有余啊, 编译后, 可以无缝和芯片逻辑连接.
|