Java最大的优势真的在于跨平台吗?

以下讨论只针对PC端和移动端。

Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。

有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Linux用户,这时候如果不想多投入成本对各个平台进行适配,那么Java所谓的”Write
once, run
everywhere”就显得异常光彩。然而今天,整个软件世界都在向B/S应用倾倒(嵌入式除外),即使要做客户端跨平台,QT等第三方框架远远比Swing更强大,Java在桌面应用领域基本被淘汰已经是不争的事实了,而当初Java引以为豪的Applet也早已销声匿迹。如果说客户端Java还有一点优秀的话,那只有Android了。Android最初确实靠JVM屏蔽了不同硬件设备之间的区别并取得了巨大的成功,但在今天,Android

L中ART模式的出现也即将颠覆这一情况,况且Google还可能会想用自家的Go语言取代Java成为Android平台的第一语言。所以在客户端,Java几乎完败。

服务端应用不需要跨平台。做一个Web服务器,我想没有哪家公司今天用Linux,下个月就换Windows吧?如果仅仅是更换Linux发行版,如从Debian到Fedora,本质上讲其Linux内核是不变的,因此像C++这样纯编译类型的语言已经没什么问题。如果做游戏服务器,我想几乎都会选择Linux而不是Win平台。Java的跨平台优势的实用性其实已经被大大弱化了,可以说在实际应用中并不明显,在一般情况下几乎感知不出Java还能跨平台这个特性。作为三大商用JVM之一的JRockets是只有编译器的JVM,即应用启动时会将字节码全部编译为本地机器码,这其实就很大程度上摒弃了跨平台,而追求性能。

今天,Java最大的优势在于其庞大而完善的生态系统。 一门编程语言是否能流行,主要是由其生态系统决定的。Java生态系统的完善性主要体现在以下几个方面:

Java拥有世界上数量最多的程序员。你说他们是农民也好,但数量放在那里,最明显的效果就是公司招人的时候会比较容易地招到Java程序员。试想如果你想要做一套软件,你有一个很棒的技术方案需要用C++,Scala或Ruby等语言实现,但招不到足够的人手,那么计划多半泡汤。这时候你的应用Java也能做到,并且很轻松就能招到足够的人,那么你选择Java的可能性就要大一些。
Java拥有大量的第三方类库。假如你想解析HTML,用C/C++这类语言恐怕多半只能自己编写解析算法库了,而如果是Java,你可以非常轻松地在Github上找到JSoup,使用Maven导入依赖后分分钟就搞定HTML。为此还有一句讽刺Java的话是:“我们不生产代码,我们只是Github的搬运工。”这句话从字面上看是很有道理的,但却忽略了对软件生产效率的提升所带来的巨大价值。对于软件的开发,公司的唯一成本其实就是“人头费”,每减少一个月开发时间,就能帮助公司节省几十万几千万的研发成本。
Java拥有功能强大的IDE。
Eclipse,通过插件几乎可以满足你开发的任何需求。它虽然有些慢,但你可以通过JVM调优来提高程序的流畅度,千万不要使用默认的JVM参数。不过,IntelliJ

Idea已经完全超越Eclipse了,Idea的智能程度几乎可以媲美Win平台下的VS。我是那类离了Vim就活不下去的人,在这两款IDE中都有Vim插件从而让我愉快地存活下去。
Java拥有很多杀手级应用。 不必多说,Spring, Struts, Hibernate, Hadoop, Tomcat, JBoss等等。
Java的语法特性很少。对,这也是一项优点。C++相比C添加了大量特性,学起来费事不说,用起来还会降低代码可读性,其实是费了工夫不讨好。当今世界对编程语言的要求是语法简单,代码可读,对性能已经是退而求其次了,因此才诞生了Python,

Ruby这样的编程语言。有很多人批评Java语法写起来很臃肿,我承认这一点,但事实是,编程语言从来都不是因为语法臃肿而被淘汰的,决定其生死的是生态系统。对于批评者,引用知乎的一句话:”动态类型一时爽,代码重构火葬场”

Java的性能已经足够高了。 Sun/Oracle的HotSpot
JVM内置的JIT编译器在运行时对字节码已经做出了非常大的优化努力,服务端应用启动后对JVM进行足够的”预热”,并给出合理的启动参数即可。如果不是对性能十分敏感的系统类应用,Java已经足够快了。有一种简单可行的方法可以形象地看出这点,在JVM启动参数中添加+XX:PrintCompilation可以看到JIT编译器的忙碌。当今世界对软件的需求量越来越大,在性能可接受的情况下,开发效率才是第一位的,这也是Python这类动态脚本语言流行的主要原因。

以上仅做客观分析,并不想引起语言战争。毕竟,没有最好的语言,只有最适合某种项目的语言。引用黑格尔的一句话:”存在即合理。”

作者:neosmith

来源:51CTO

时间: 2024-09-20 19:19:03

Java最大的优势真的在于跨平台吗?的相关文章

Java关键字 final,真的有这么神奇的作用嘛?

问题描述 http://www.cs.umd.edu/users/pugh/java/memoryModel/jsr-133-faq.html#finalRight这是 JSR-133 关于 final 的说明.其中,第一个例子 FinalFieldExample 如下:class FinalFieldExample {final int x;int y;static FinalFieldExample f;public FinalFieldExample() {x = 3;y = 4;}sta

Java开发者一个月开发出跨平台开源办公软件

Java开发者Anthony Goubard用了一个月的时间开发出一个简单的跨平台开源办公套件,可运行http://www.aliyun.com/zixun/aggregation/32995.html">在Windows.Mac OS X.Linux和浏览器上.这个办公软件被称为 Joeffice,包含了非常基础的字处理器.电子表格.幻灯演示程序和数据库软件,Goubard称,软件用NetBeans构建,使用了大量流行的Java开源库,因此他才能在30天内完成开发. 他将自己每天的开发过

资深的网页设计师主要优势还是在于细心

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 很多的网页设计师在工作了几年后,感觉自己在技术上已经十分完美,在工作上也表现出了兢兢业业的态度,可是设计出的作品很难打动同仁和客户,缺乏艺 术上的魅力和完全贯彻客户思路的执行力,这导致他们很少有机会被考虑升职或加薪,并不被视为"资深设计师",这是什么原因呢?实际上,他们离"资深"设计 师的距离只有一步之

网站优势就是在于简单实在

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 网站做到极致就是简单.可用性与易浏览.百度,GOOGLE,只有一个输入框,在输入框里面输入不同的关键字,产生不同的效果和结果.其给网民体验的方式就是网民通过思想通过键盘输入所需要要查询的东西加上一个机械性的动作:点击按钮,就可以查询到你想要查询的资料与数据,极其简单的操作,无论网民电脑知识多低,操作有多笨,均可以很快适应和应心使用.这

JAVA的四大优势

一般的电视情节,主人公通常会说"这很容易--简直是太容易了",然后所有的事情都开始翻盘了.而当我开始测试市场上的Java云计算时,我却发现这一剧情正在我的身上上演. 与其它相比,企业研发人员需要对这些可能性更加的担忧.当云计算中出现了让生活变得更容易的全新方案时,一般的计算机用户会感到非常的兴奋.他们通常会采用基于云的电子邮件,如果电子邮件丢失,他们只能无奈了,因为电子邮件经常丢失,而且也难以找回. 企业研发人员不能如此乐观.每一个能够让我们进行一键配置的选择都会让我们永远的被禁锢在其

2017 物联网编程语言趋势:C、Java 各具优势 !

物联网的快速发展也意味着该领域总是在变化.Eclipse IoT 工作组.IEEE IoT.AGILE IoT 和 IoT 委员会在今年第一季度进行了一项"2017 物联网开发者调查",旨在找出该领域的趋势,了解开发人员如何构建 IoT 解决方案. 该调查还公布了物联网领域编程语言的相关趋势: 调查发现这些主要编程语言之间其实存在很高的共性. Java 和 Python 通常用于 Constrained Device.IoT 网关和 IoT 云平台.同时,C 和 C ++ 也在 Con

从字节码层面看“HelloWorld” (转)

一.HelloWorld 字节码生成 众所周知,Java 程序是在 JVM 上运行的,不过 JVM 运行的其实不是 Java 语言本身,而是 Java 程序编译成的字节码文件.可能一开始 JVM 是为 Java 语言服务的,不过随着编译技术和 JVM 自身的不断发展和成熟,JVM 已经不仅仅只运行 Java 程序.任何能编译成为符合 JVM 字节码规范的语言都可以在 JVM 上运行,比较常见的 Scala.Groove.JRuby等.今天,我就从大家最熟悉的程序"HelloWorld"

Android One智能机最大优势在于成熟完善的Android生态系统

摘要: 这也是一部卖1999的手机,但是单位是卢比,约合人民币200元.这就是阿尔卡特(其实就是)的Onetouch Fire C智能机,上周末在印度首发.这部手机基于展讯推出的25美元智能手机方案SC6 这也是一部卖1999的手机,但是单位是卢比,约合人民币200元.这就是阿尔卡特(其实就是)的Onetouch Fire C智能机,上周末在印度首发.这部手机基于展讯推出的25美元智能手机方案--SC6821芯片组,搭载Firefox OS系统. 这可能是中国硬件厂商对于谷歌在印度推出Andro

iPhone吸引广大消费者的一个优势在于能快速上手

众所周知,iPhone吸引广大消费者的一个优势就在于即使没有详细阅读使用说明书,也能上快速上手使用iPhone手机.但其实,iPhone有着很多"不为人知"的使用技巧,如果能够掌握运用的话,相信iPhone手机会为您的生活带来更多的方便.iPhone手机用户经常感叹,iPhone的电池寿命很短,在购买更换新电池方面的开支很大,对此,各大网站都为iPhone用户介绍了很多延长电池寿命的方法.但这次将为介绍的并非是延长电池寿命,而是如何给iPhone手机快速充电的小技巧.相信许多iPhon