技术分享

JAVA要死了吗?不!我来告诉你为什么!

我们看到“Java 死了吗?” 这个问题,年年都被抛出来,然而至今为止,从所有的第三方统计来看,Java 不仅活的很好,还在保持增长。虽然不断有新的语言面世,TIOBE 仍将 Java 评选为 2015 年度最热门语言,目前显示它相比 2014 年,用户增加了 5%,高于其他所有编程语言。


不仅如此, PYPL Index(一个基于谷歌搜索中教程搜索频度对语言进行评估的站点)的数据显示, Java 以 23.9% 的搜索量遥遥领先。

虽然有很多阶段性因素令 Java 在过去 2 年迎来复兴( android 开发的爆发,Java 8 的发布,Spring 社区的发展,尤其是 Spring Boot),但是市场的主导地位只可能来源于优秀的产品。以下是一些我们认为 Java 不会很快衰落原因。

JVM 和 Java 生态

Java 虚拟机(JVM)将代码编译为字节码,并在 JVM 中解释执行。由于 JVM 运行在特定的硬件和系统平台之上,这使得 Java 得以在任何设备上运行,无论是 Windows 设备、Mac,或是某个不为人知的 Linux版本。

JVM 的最大优势是它增强了兼容性和稳定性。因为你的应用运行在虚拟机而非直接运行在实体机上,你只用编写一次某个程序,就可以确保在所有的 Java 虚拟机实现上,都可以很好的运行。这一原则是 Java 的核心理念的基础:“一次编写,处处运行。” 该技术使得 Java 应用对底层环境的变化具备很好的弹性。

安全性 & 交互能力

Java + Android

Android 环境是研究 Java 原生安全性和通用性很好的素材。Android 占据全球移动市场89% 份额,基于 Java 运行。由于 Java 允许操作系统运行在虚拟机中,因此不需要为每台设备分别编译,这就提高了系统的稳定性和易用性。

Android 完美的展示出了 Java 的另一个优势, 它与其他基于 JVM 的程序语言之间的交互能力,比如 Scala, Groovy, Clojure, JRuby 等等。当你用“更加动态”的语言构建你的应用,依然需要使用 Java 以获得强大的功能!

巨大的 Android 市场,依然不可避免的存在漏洞利用的风险。 Android + Java 允许用户运行低可信的应用,所有应用都运行在虚拟机中可以减小这种风险。换言之,如果 APP 要利用系统内核漏洞,唯一的途径是利用 VM 实现的缺陷,好在 VM 被设计的足够紧凑,并且通过定义良好的安全接口保护系统安全。

Java在大规模产品中的应用

Amazon, Google, eBay 以及其他很多大型电子商务品牌,都使用Java作为他们的业务后台。它们选择 Java,是由于 Java 久经考验,并且有良好的扩展性。任何语言、任何后台都可以或多或少的管理一些用户,但是 Java 能可靠的应对至少 2 亿用户。我们来看一些突出的例子。

Hadoop

Apache Hadoop 是一个运行在大型硬件集群上的 Java 框架应用。 在设计之初,它便具有高吞吐能力,应用于处理或者操作海量数据集合的应用场景。 如今, Hadoop 被很多像 Facebook, Amazon, IBM, Joost, 以及 Yahoo 这样的大型公司应用于数据处理、分析、报表等方面。

Hadoop 的创始人 Doug Cutting 曾说过:“ Java 在开发者的生产率和运行效率之间取得很好的权衡。开发者可以使用广泛存在的高质量类库,切身受益于这种简洁、功能强大、类型安全的语言。“ 换言之: 没有 Hadoop 就不存在大数据,没有 Java 就没有 Hadoop。

Twitter

Twitter + Java

Twitter 最近为 Java 和 Oracle 团队,赢得一场令人瞩目的胜利。Twitter 原本基于 Ruby on Rails 开发, 伴随着 Twitter 的快速流行, Twitter 的经历非常清楚的暴露了 RoR 在扩展性方面的缺陷。”失败的鲸鱼“(Twitter 的网络不堪重负时的提示)出现的越来越频繁,直到 Twitter 于 2012 年开始向 Java 迁移才有所改善。今天,Twitter 基于 Java + Scala 运行,那条 ”失败的鲸鱼“ 便绝迹了。

Minecraft

Minecraft + Java

Minecraft 是一款异常成功的游戏。早在 2014 年被出售给微软之前,该游戏就早已为其开发者挣了数百万美元。而 Minecraft 就运行在 Java 上。

在广阔的 Java 社区的帮助下,Minecrafe 被传播给成千上万的潜在建模爱好者。同时,Minecraft 也将 Java 介绍给新一代的开发者。只要简单的 Google 一下 “在 Minecraft 中建模”,你会得到超过 65 万条记录,其中很多是面向 12 岁以下群体的编程教学资源。

Java 的未来

去年,Oracle 宣布 Java 9 即将到来,定于 2016 年 9 月发布。这次升级主要是将语言中众多的功能拆分为较小的组件,希望通过这一变化,使 Java 更快、更易用。Oracle 的整体投资(经常受到批评)最终还是保证 Java 可以继续支持众多依赖它的企业,同时保持着对开发新趋势的响应。

Java 和 物联网

“我确信 Java 的未来在物联网。我很希望 Oracle 及其伙伴们,会将注意力集中到为 Java 提供彻底的端到端的存储解决方案上:从终端设备开始,穿过网关,直至企业后端。构造这样一个故事,并且将其运作成功,这将有助于巩固 Java 未来 20 年里的地位。这不仅仅对整个产业蕴含着巨大的机会,而且我认为 Java 可以在这方面做得很好。”Mike Milinkovich (Eclipse 基金会执行董事)如此说道。

Oracle 对此表示赞同,前研发副总裁 Georges Saab 说:“ Java 是物联网时代最佳的技术。物联网遇到的很多挑战,都是20世纪90年代 Java 在桌面和客户端领域面对过的。你已经有了大量不同的硬件系统。你希望开发者们可以看清系统的细枝末节,深入理解它,并逐步向它迁移。Java 是少数允许你实现以上想法的技术。 ”

Java + Stormpath

也许有一些对 Java 批评的声音,而且有些观点也是合理的,但是瑕不掩瑜,比如:它提供杰出的开发、性能分析工具;JVM;海量的库等等等等。在 Stormpath 中,我们从诞生之初,后台就完全由 Java 实现,最近我们又升级到了 Spring Boot。Java 万岁!!