Java跨平台这个事情要分成很多个方面来讨论。
首先是Java是不是能够跨平台,显然是能够跨平台的。但是为什么说鸡肋呢?是因为别的东西也能跨平台,甚至有些东西比Java跨的还好。比如说python之类。
但是,Java和python在性能上应该有很大的差距。
可那是以前,现在一则性能越来越过剩而不成为问题,二则JS引擎越来越猛,差距在不断地缩短。
所以在目前这个情况下,Java可以跨平台,但也有很多东西都可以跨平台,跨平台不是Java的专利。而且Java处于一个比较尴尬的位置,他的功能太多,功能太多就使得这货并不是所有的功能都能无缝的跨平台,譬如GUI这玩意儿。
那么为什么要单拎出来讲Java的跨平台是个鸡肋呢?为什么不说python跨平台,node.js跨平台,Hybird跨平台(HTML+本地引擎)什么的是鸡肋呢?
根源还是出在Java,因为这货吹牛逼,吹的每个人都知道了。一次编译,到处运行。
而实际上呢?我们发现真的可以不加修改到处运行的,不是Java,而是JavaScript。
事实上Java在一定程度上是个烈士,很多东西它去尝试过了,证明了是一条走得通的路,结果大家都跟进了。但还有很多东西它去尝试了一下,发现这条路是走不通的,最后成了Java的包袱。
最后就成了今天这样的情况,流行的语言都有自己的跨平台的方案,这些方案里面,或多或少都有Java探出来的路子。但是,Java本身,相称之下反而显得没啥亮点了。
再来看Java的起源, 发明的初衷, 最开始Java是为了机顶盒开发的, 机顶盒用的CPU不是x86架构的intel CPU而是单片机, 而单片机的发展是很迅速的, 你花了半年为某种单片机开发了程序, 等程序出来了可能这个型号的单片机已经没人用了, Sun当时是为了解决这个问题, 提出了程序只用写一遍编译一遍, 然后让JVM来适应单片机型号的不同.
该铭记Java为跨平台做出的不朽的贡献,但是时至今日,如果Java还是把跨平台老挂在嘴上,那就只能说是乏善可陈了。 |