诞生于1991年的Java如今已经成为世界范围内应用最为广泛的编程语言之一。在今天的文章中,我们将共同了解Java所拥有的七大关键新特性,展望其如何在未来的超级计算、大数据以及物联网等领域继续发挥核心作用。
Java的主要优势在于其作出的WORA:即一次编写(Write Once)、随处运行(Run Anywhere)。简单来讲,这意味着开发团队能够利用Java编写一款应用程序,并将其编译为可执行形式,而后将其运行在任何支持Java的平台之上。这显然能够极大提高编程工作的实际效率,但实现这样的效率也确实需要我们付出一点成本。
此类主要成本之一就是在访问低级机器硬件时,WORA的起效会带来一系列限制条件。通用兼容性需要抽象机制的支持,而抽象机制会给应用性能造成一定影响。正因为Java与硬件之间存在一定差距,因此C++才得以继续充当主要开发语言之一,且往往与Java配合起效。不过这还仅仅是成本的一种表现。其它更为高昂的成本甚至有可能阻碍Java的未来发展。
Java应用程序通常运行在浏览器窗口当中,对浏览器界面的熟知正是很多企业开发人员乐于利用Java创建应用程序的主要原因之一。不过问题在于,Java是通过插件架构接入浏览器并成为其组成部分的,但这一架构目前正逐渐消失。新的微软Edge浏览器不允许使用任何插件。Chrome浏览器目前也对插件作出了诸多限制。其它浏览器似乎也会遵循同样的转变思路。那么这是否意味着Java将因此而逐渐淡出我们的视野?
不,Java并不会就此终结。Java应用程序仍将继续以独立而特别的方式保持运转。大量现有Java代码的存在意味着重视成本问题的开发人员(及开发经理)将在长远的未来继续使用Java。有鉴于此,我们需要了解与Java相关的哪些事实?
软件开发与编程语言本身一直在不断发展。Java当然也投身于这场经年累月的持续演进。下面我们就来一同了解Java的几大相关重点,看看其发展方向会给我们的未来开发带来怎样的影响。
Java已不再局限于浏览器
Java。作为与万维网共同发展成长的编程工具,几乎没有任何一种其它语言能够像它这样从始至终对Web应用程序作出定义。自1991年诞生于Sun Microsystems公司(现已被甲骨文公司收购)以来,由James Gosling、Mike Sheridan以及Patrick Naughton共同设计而成的Java语言已经成为众多企业级应用程序方案当中的核心组成部分。而在近25年的发展演变之后,Java还能否在我们的未来开发规划当中继续占据一席之地呢?
Java主要作为基于浏览器的应用程序开发语言的历史角色已经发生了转变。在步入Windows 10时代之后,我们将迎来新的Edge浏览器并在这里彻底告别Java——因为这款新型浏览器不再支持插件机制。
现在,我要向大家分享一点小秘密:如果您出于某种考量而需要继续使用基于浏览器的Java应用,完全没问题。Windows 10当中同时提供IE 11浏览器,这套传统浏览方案乐于迎接包括Java在内的各种插件方案。这虽然也意味着大家仍然需要重视由插件引发的安全问题,但至少我们多了一种选择。
不过面向未来,大家应当制定计划,逐步将自己的Java应用程序转移到桌面平台之上。它们将在这里迎来新的发展空间,而用户们也将逐渐适应在浏览器窗口之外与Java应用顺畅协作。
JavaScript将一直存在
Java与JavaScript是完全不同的两种事物:Java是一款由Sun Microsystems公司开发的编译编程语言,而JavaScript则是由Netscape公司推出的解释型脚本语言。Java应用程序可以运行在浏览器当中(利用插件架构),同时亦可以独立程序形式存在。而JavaScript则必须立足于浏览器窗口之内——单凭自身并不能够独立运行。
着眼于未来,JavaScript仍将在浏览器领导保持至关重要的地位。它能够与HTML 5携手合作,共同为用户提供丰富的交互式浏览器使用体验。如果您是一位拥有丰富JavaScript使用经验的开发人员,那么您的发展前景可谓相当光明。
如果您是一位开发工作经理,那么在规划当中利用HTML 5以及JavaScript进行应用开发也相当明智。二者相结合能够为企业Web以及移动Web应用提供非常理想的支撑,从而应对未来很长一段时间内的实际需求。
Java阵营的各类组件正逐渐汇聚
甲骨文公司正持续开发Java项目,并计划于2016年年内推出Java 9版本。其宏观图景是将Jigsaw项目正式交付给开发人员,并使Java具备更出色的模块化特性。这意味着届时将有多种“接入并起效”架构供我们选择,从而进一步拓展Java的传统编程模式。
开发人员已经为Jigsaw项目制定了一系列发展目标,我们可以将其归结为两大门类:性能与可扩展能力。模块的出现能够对结构进行进一步简化,而总体来讲结构精简就代表着代码规模更小、执行速度更快。轻松将模块纳入及移出整体应用程序的能力会使Java代码得以在不同规模的各类平台之上顺畅运作,从规模巨大的工程技术工作站到小巧的嵌入式物联网处理器皆涵盖于其中。
Java将成为物联网的温床
在刚刚诞生之时,Java原本是作为我们如今称为物联网装置上应用程序的编程语言存在。该语言的早期开发者们希望针对互联网电视机打造一款编程语言。不过问题在于,1991年时的嵌入式处理器根本无法同时支持Java框架及其应用程序。时至今日,情况已经发生了彻底转变。
Java Platform, Micro Edition(简称JPME)为甲骨文公司针对嵌入式及移动平台所打造的解决方案,同时面向电视机以及媒体中心等特殊平台。在物联网领域当中,“一次编写,随处起效”原则的存在带来了显著的成本节约效果。更加值得一提的是,企业能够借此引导开发人员打造出商用Java编程成果,并将其分配至物联网任务当中。
将上述能力汇总起来,Java语言将成为成功的企业级物联网发展战略当中不可或缺的重要一环。
Java向移动领域进发
让Java在物联网领域得以大显示身手的Java Platform,Micro Edition同时也能够在移动应用程序开发工作中扮演重要角色。必须强调的是,Java在iOS领域面临着巨大的竞争压力。苹果公司的Swift语言已经成为希望让自己的应用成果顺利进入App Store货架的开发者们的首选编程环境。不过如果大家的主要目标市场为Android,那么Java仍然是一款极为强大的开发工具,同时也能为我们带来理想的跨平台能力。
Java能够支撑超级计算机设备
当我们思考适用于高性能计算(简称HPC)的编程语言时,首先想到的几乎不可能是Java。但实际情况是,世界上相当一部分高性能计算项目都在利用Java负责背后的流体分析(或者天文观测)任务。Java的基础架构看起来并不适用于高性能计算,但它所具备的多种特性却足以保证其在高性能应用程序当中占据一席之地。
Java当中的一大关键性高性能计算能力在于其原生支持多线程执行机制。另一大要点则在于,Java允许开发人员轻松编写出网络应用程序。虽然Java难于使用多核心处理器的弊端在一定程度上抵消了上述优势,不过出于某些特殊高性能计算目标的科学项目仍然乐于将Java作为其中的重要组成部分。
没错,Java不太可能在高性能计算领域彻底取代C++,但其肯定要比早已老朽不堪的FORTRAN更具活力。如果您的编程团队中包含多位刚刚毕业且熟知Java开发知识的新人,那么它绝对是您不可错过的首选编程语言。
Java,大数据技术领域的一匹黑马
等等,Java能够在大数据领域有所建树?没错,真是这样,因为它能够以现代高性能计算(简称HPC)体系为核心,将多数强大的大数据组件结合在一起。就在去年,IBM公司展示了一套实验性项目,其中的一套Hadoop实例就运行在利用Tesla图形处理单元(即GPU)构建的系统当中。这是一套极为强大的组合,能够轻松完成大多数极为复杂的数据集分析任务。
GPU已经成为目前大多数速度最快的超级计算设备所不可或缺的处理器选项。而Java的“一次编写,随处起效”架构意味着技术团队能够在工作站上开发自己的软件,而后将其移植到这些强劲的系统当中。当这些系统运行有Hadoop等大数据数据库管理工具时,其结果绝对令人印象深刻。
那么,您是如何开发自己的高性能应用程序的?您是否会使用同样的编程语言开发物联网解决方案或者是基于浏览器的新型企业工作流应用?请大家在评论栏中分享您对于Java当前与未来发展图景的看法。而其中最重要的问题在于:您是否会建议刚刚进入企业的新手将Java作为其掌握的基础性编程语言之一?我们期待着您的答案——这对于下一代程序员们非常重要。