Java 消亡了?不!原因在这…

年复一年,关于”Java消亡了?”的疑问频繁涌现,然而,通过所有外部表现来看,Java仍活着,并且在发展。尽管许多新语言各领风骚,开发语言排行榜(TIOBE)上Java在2015年仍居榜首,并比2014年增长了5%的使用量,远远超过其他语言。

另一方面,PYPL index根据Google搜索频率为编程语言排名,展示Java以总搜索量的23.9%遥遥领先。

近两年有很多Java死灰复燃的原因(Android开发的爆炸式增长,Java 8的发布,Spring社区的活跃,尤其是Spring Boot),市场优势来自于伟大的产品。这就是为什么我们认为Java并不会消亡的原因。

Java虚拟机和Java生态环境

Java虚拟机,或称JVM,将程序编译成字节码,稍后被JVM解析执行。因为JVM根植于你的特定硬件和系统,它允许Java在各处运行,Windows、Mac或各种Linux。

JVM带来的巨大优势就是它提供的强大兼容性和稳定性。因为你的应用运行在虚拟机上而不是直接运行在硬件上,你可以编写一次应用并运行在每个有Java虚拟机的设备上。这也是Java核心原则:“一次编写,到处运行”。这也让Java应用面对环境变化时有更大弹性。

安全性和互操作性

Android环境就是Java安全性和互操作性的典型代表。Android占全球手机市场89%,运行基于Java。因为Java允许操作系统运行在虚拟机中,并不需要在每台设备上编译,提高了系统的稳定性和易用性。

Android展现出的Java另一个优点就是与其他基于JVM语言的互操作,比如Scala、Groovy、Clojure、JRuby等等。你可以选择使用这些“更加动态”的语言来构建你的应用,并在需要更多性能的时候重拾Java。

巨大的Android市场在内部开发中也存在危险。Android+Java允许用户运行不受信任的应用,并通过虚拟机来运行所有应用来缓解这种危险。因此,应用充分利用操作系统核心的唯一方式就是放弃虚拟机的实现,也就是那个非常小的、被安全层紧紧保护的虚拟机。

Java的实际应用规模

Amazon、Google、eBay和许多其他大型电商使用Java作为它们的后台。它们使用Java是因为Java久经考验并且可伸缩。任何语言的后台只能支撑少量用户,但Java可以处理200m或等多。让我们看几个典型例子:

Hadoop

Apache Hadoop是支持在大规模硬件集群上运行应用的的Java框架。它被设计用来为那些操作和处理大数据的应用提供高吞吐量。如今Hadoop被许多公司,如Facebook、Amazon、IBM、Joost和Yahoo来处理数据、分析或生成记录。

Hadoop的创造者Doug Cutting说过:”Java协调了开发者开发效率和程序执行效率。开发者受益于这种简单、强大、类型安全的语言和丰富的高质量库。”简而言之:大数据离不开Hadoop,Hadoop离不开Java。

Twitter

对于Oracle团队和Java来说,Twitter是近几年众人皆知的巨大成功。最初由Ruby on Rails构建,Twitter流行度急速上升,同时RoR框架可伸缩性的缺陷也清晰暴露出来。“Fail Whales(失败鲸)”(Twitter宕机时的标志画面)也频繁出现,直到Twitter在2012年转向Java。如今Twitter运行在Java+Scala之上,Fail Whales(失败鲸)也不复存在。

Minecraft

Minecraft是款不可思议的成功游戏。开发团队通过它赚了上百万美元,然后以25亿美元价格卖给微软。Minecraft运行在Java之上。

庞大的的Java社区帮助Minecraft蔓延到成千上万的游戏mod。同时Minecraft向新一代开发者推荐Java。Google上搜索”Minecraft mod制作”会返回65.3万的结果,其中大多是教12岁以下人群如何编程。

其中一款开源工具是Eureka,人们用它来跟踪用户登录Netflix所使用的设备,并交叉校验动作和最近活动,来确保当前账户是安全的。

Java的未来

去年,Oracle宣布Java 9预计在2016年9月到来。这次更新把语言中众多函数拆分成许多小组件,意在让Java更加快速和易用。Oracle的巨大投入(虽然总被黑)帮助Java一方面可以继续支持企业依赖,另一方面也可以有所新的发展。

Java和物联网(Internet of Things)

“我认为Java的未来就在物联网(IoT)之中。我很想看到Oracle和合作伙伴致力于完善Java端对端的存储解决方案,从设备通过网关到达企业后台。如果能梦想成真并取得成功,将巩固Java在未来20年中的地位。这对于行业来说是巨大的挑战,我相信Java能够胜任。”Eclipse基金会执行董事Mike Milinkovich这样说。

Oracle赞同这点。Development Georges Saab副总裁说:“Java对于物联网(IoT)来说是很棒的技术。物联网很多挑战是桌面和客户端的挑战,上世纪90年代Java已经解决。现在有很多不同的硬件设备。你想让开发者关注系统的各个层面,理解并运用。Java是少数能让你这样做的技术之一。”

Java + Stormpath

有不少批评Java的人,他们部分争论的焦点或许有一些说服力,但这也是好事,比如优秀的部署工具、性能分析、Java虚拟机、庞大的库等等。在Stormpath,我们的后端完全用Java开发,并且我们升级到了Spring Boot。Java万岁。

原文发布于微信公众号 - java一日一条(mjx_java)

原文发表时间:2016-08-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java社区

这也许是史上最有趣的破解软件合集

2432
来自专栏飞雪无情的博客

飞雪无情的博客Go语言、Android相关的十大热门文章

对于很多人来说,可能不明白我为什么写博客,写博客对于我来说,可能就像大家看电影一样,有时间就看看(写写)。对于我自己也是一些东西的总结,有时候通过写,才能加深理...

991
来自专栏BestSDK

Java 9正式发布:这次Jigsaw终于来了

在历经多次跳票之后,Java 9 终于在千呼万唤中正式发布。从这个版本开始,Java 将每半年发布一个版本。作为霸占编程语言排行榜鳌头多年的老牌语言,Java ...

3815
来自专栏Java架构师进阶

如何成为高级java程序员

给一个刚出社会的程序员新生一个建议,想成为一个优秀的程序员,高级程序员,不能眼高手低,不能认为开发新项目,技术研发才学到东西,不能看不起维护系统,不要以为自己懂...

772
来自专栏技术翻译

8种方法来改善您的数据可视化

使用数据集时,务必确保在遵循数据可视化的最佳实践的同时正确有效地向您的受众呈现数据。您可以在可视化中使用许多不同的功能和技巧,以确保它是可理解的,简洁的和信息性...

1072
来自专栏PPV课数据科学社区

【学习】切勿妄谈Hadoop,以及4个数据管道打造实践

时至今日,大数据这个概念已充斥了整个IT界,各种“搭载”了大数据技术的产品,各种用于处理大数据工具更如雨后的春笋触目皆是。同时,如果某个产品还没抱...

2987
来自专栏jessetalks

初探领域驱动设计(1)为复杂业务而生

概述   领域驱动设计也就是3D(Domain-Driven Design)已经有了10年的历史,我相信很多人或多或少都听说过这个名词,但是有多少人真正懂得如何...

3576
来自专栏SDNLAB

P4:真正的SDN还遥远吗?

OpenFlow协议作为SDN最流行的南向协议,得到了很多的关注,目前发展也良好,但OpenFlow并不完美,OpeFlow交换机还不能提供更好的可编程能力。P...

3669
来自专栏大数据挖掘DT机器学习

如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析

甩锅の声明 1.本数据节选自新浪热门微博评论,不代表本人任何观点 2.本人不接受任何非技术交流类批评指责(夸我可以) 3.本次分析结果因技术问题存在一定误差(...

7905
来自专栏维恩的派VNPIE

2018年vn.py项目计划(下)

2017年完成了大部分计划中的上层应用模块开发,剩余部分将在今年上半年加速推进,争取早日发布v2.0稳定版,为量化交易员提供一套完整成熟的交易系统解决方案。 D...

4598

扫码关注云+社区