我们看到“Java死了吗?”这个问题,年年都被抛出来,然而至今为止,从所有的第三方统计来看,Java不仅活的很好,还在保持增长。虽然不断有新的语言面世,TIOBE仍将Java评选为年度最热门语言,目前显示它相比年,用户增加了5%,高于其他所有编程语言。
不仅如此,PYPLIndex(一个基于谷歌搜索中教程搜索频度对语言进行评估的站点)的数据显示,Java以.9%的搜索量遥遥领先。
虽然有很多阶段性因素令Java在过去年迎来复兴(android开发的爆发,Java8的发布,Spring社区的发展,尤其是SpringBoot),但是市场的主导地位只可能来源于优秀的产品。以下是一些我们认为Java不会很快衰落原因。
JVM和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允许用户运行低可信的应用,所有应用都运行在虚拟机中可以减小这种风险。换言之,如果APP要利用系统内核漏洞,唯一的途径是利用VM实现的缺陷,好在VM被设计的足够紧凑,并且通过定义良好的安全接口保护系统安全。
Java在大规模产品中的应用Amazon,Google,eBay以及其他很多大型电子商务品牌,都使用Java作为他们的业务后台。它们选择Java,是由于Java久经考验,并且有良好的扩展性。任何语言、任何后台都可以或多或少的管理一些用户,但是Java能可靠的应对至少亿用户。我们来看一些突出的例子。
HadoopApacheHadoop是一个运行在大型硬件集群上的Java框架应用。在设计之初,它便具有高吞吐能力,应用于处理或者操作海量数据集合的应用场景。如今,Hadoop被很多像Facebook,Amazon,IBM,Joost,以及Yahoo这样的大型公司应用于数据处理、分析、报表等方面。
Hadoop的创始人DougCutting曾说过:“Java在开发者的生产率和运行效率之间取得很好的权衡。开发者可以使用广泛存在的高质量类库,切身受益于这种简洁、功能强大、类型安全的语言。”换言之:没有Hadoop就不存在大数据,没有Java就没有Hadoop。
TwitterTwitter最近为Java和Oracle团队,赢得一场令人瞩目的胜利。Twitter原本基于RubyonRails开发,伴随着Twitter的快速流行,Twitter的经历非常清楚的暴露了RoR在扩展性方面的缺陷。“失败的鲸鱼”(Twitter的网络不堪重负时的提示)出现的越来越频繁,直到Twitter于01年开始向Java迁移才有所改善。今天,Twitter基于Java+Scala运行,那条“失败的鲸鱼”便绝迹了。
MinecraftMinecraft是一款异常成功的游戏。早在年被出售给微软之前,该游戏就早已为其开发者挣了数百万美元。而Minecraft就运行在Java上。
在广阔的Java社区的帮助下,Minecrafe被传播给成千上万的潜在建模爱好者。同时,Minecraft也将Java介绍给新一代的开发者。只要简单的Google一下“在Minecraft中建模”,你会得到超过65万条记录,其中很多是面向1岁以下群体的编程教学资源。
Java的未来去年,Oracle宣布Java9即将到来,定于年9月发布。这次升级主要是将语言中众多的功能拆分为较小的组件,希望通过这一变化,使Java更快、更易用。Oracle的整体投资(经常受到批评)最终还是保证Java可以继续支持众多依赖它的企业,同时保持着对开发新趋势的响应。
Java和物联网“我确信Java的未来在物联网。我很希望Oracle及其伙伴们,会将注意力集中到为Java提供彻底的端到端的存储解决方案上:从终端设备开始,穿过网关,直至企业后端。构造这样一个故事,并且将其运作成功,这将有助于巩固Java未来0年里的地位。这不仅仅对整个产业蕴含着巨大的机会,而且我认为Java可以在这方面做得很好。”MikeMilinkovich(Eclipse基金会执行董事)如此说道。
Oracle对此表示赞同,前研发副总裁GeorgesSaab说:“Java是物联网时代最佳的技术。物联网遇到的很多挑战,都是0世纪90年代Java在桌面和客户端领域面对过的。你已经有了大量不同的硬件系统。你希望开发者们可以看清系统的细枝末节,深入理解它,并逐步向它迁移。Java是少数允许你实现以上想法的技术。”
Java+Stormpath也许有一些对Java批评的声音,而且有些观点也是合理的,但是瑕不掩瑜,比如:它提供杰出的开发、性能分析工具;JVM;海量的库等等等等。在Stormpath中,我们从诞生之初,后台就完全由Java实现,最近我们又升级到了SpringBoot。Java万岁!!