当前位置: 首页 > 科技观察

Java20周年:荣耀、低谷与未来

时间:2023-03-22 10:44:17 科技观察

OracleJava副总裁回顾J2EE、OpenJDK、安全问题,以及Java7推出的波折。虽然Java语言是由SunMicrosystems创建的,但Oracle一直自2010年收购Sun以来一直是平台的守护者。在此期间,甲骨文推出了Java7和Java8,其第9版将于明年与开发者见面。现在是Java诞生20周年,借此机会与甲骨文Java平台部软件开发副总裁GeorgesSaab直接交流,回顾过去,点评现在,展望未来未来。记者:甲骨文接管Java不到五年半。那么Java诞生20周年对甲骨文意味着什么呢?GeorgesSaabGeorgesSaab,OracleJava平台部门软件开发副总裁Saab:我们一直在努力确保Java社区继续充满活力、积极主动并推动技术向前发展。当然,Oracle本身就是Java的大用户,所以我们兴奋而高兴地庆祝这个20周年里程碑。二十岁对于人类来说只是青春,我们期待Java继续迎来充满活力的下一个二十年。Java的重大里程碑记者:您认为Java在过去的二十年中迎来了哪些重大的里程碑?Saab:我们可以回过头来看看Java的每个主要版本。很明显,Java与我们今天所知道的它最初发布时的样子和它的样子相去甚远。事实上,Java最初的设计思想是运行在机顶盒等各种嵌入式设备上。在起步阶段,Java的类库等机制可以说是体积小但同时具有很大的可扩展性,所以很快就在Web领域积累了强大的人气,并开始以新的方式使用——比如就像在浏览器中一样。——全面崛起。从库的不断成熟和扩充到现在的模样,真正改变Java面貌的变化是从1.2版本开始的。而在这之后,我想说一下EE(也就是EnterpriseEdition),这也是Java发展的一个重大里程碑。Java将何去何从?记者:Java未来会走向何方?我们在Java8中已经具备函数式编程能力,而Java9将带来模块化。Java路线图上有什么我们还不知道的吗?Saab:你可以去OpenJDKJEP(JDKEnhancementProposal,JDKEnhancementProgram)进程页面,里面列出了所有正在讨论的程序想法。许多JEP被提出来为内存中的Java对象提供更理想的布局机制。基本上,我们建立了一个名为Valhalla的有趣项目,它所做的是审查Java的值类型。本质上,该项目在Java主体和Java对象之间寻找。记者:未来几年,Java会给餐桌带来哪些变化?Saab:另一套有前途的解决方案是新版本的JavaNativeInterface,它可以在Java和本地代码(如C或C++)之间共享数据结构,从而显着简化不同语言之间的调用过程。记者:您认为Java在未来五年、十年甚至二十年内会发生怎样的变化?Saab:我们对物联网概念带来的各种前景感到非常兴奋。Java在这方面有很多优势。它不仅具有处理这些相当分散的碎片化设备的能力,还可以让开发者使用他们所知道的语言更容易地参与进来。而且从很多角度来看,Java目前所面临的挑战和环境与Java刚诞生并逐渐发展起来的时候非常相似。我们在端到端系统领域有更多的挑战,因为这里我们需要使用设备、网关和某种后端云服务来应对所有可能的情况。出于这个原因,Java是为数不多的能够在此环境中顺利处理所有事情的技术成就之一,并承诺让人们可以轻松地使用单一解决方案上手。Java发展的最低点记者:过去二十年,Java最令人失望的情况是什么?Saab:JDK6是一个相当有挑战的时期,我们在这个阶段度过了很长时间,直到Java7出来这种情况才有所改变。某种程度上,我们可以将这归咎于公司当时面临的一些经济问题,但投入的时间和精力并没有白费。经过艰苦的探索,我们终于构建了JDK6的代码库,然后打开它——这就是后来的OpenJDK。从这个意义上说,我们花了这么长时间才交付Java的下一个主要版本,这有点令人失望。但归根结底,这一切都成为了OpenJDK社区诞生的过程,也正是因为如此,才有了今天的Java7和Java8。记者:甲骨文在Java中遇到了很多安全问题。那么Oracle主动出击了,还是说安全性仍然是Java发展的一大障碍?Saab:我们一直很重视安全问题,这是一个需要时刻保持警惕的老对手。鉴于我们的能力和问题的严重性,我认为我们做得很好。而我们一直在积极主动地解决问题,希望能够保证Java项目有一个良好的安全改进过程,让我们开发的新特性有一个理想的安全落脚点,最终以最好的状态与用户见面。我们也在努力确保使用Java语言开发软件的用户拥有必要的API,如果使用得当,这些API将真正帮助他们的应用程序达到更理想的安全级别。如果您关注我们按时发布的关键补丁更新的季度记录,您会发现其中包含的错误修复数量相当惊人。在最近的几个版本中,修复的错误数量开始下降——不是因为我们疏忽大意,而是因为我们实际上已经修复了大部分安全问题。Java如何应对来自其他语言的挑战记者:Java如何应对来自其他新编程语言的挑战——比如JavaScript、GoogleGo、GoogleDart,或者其他时兴的解决方案?JVM本身能够承载多种语言类型。有这么多编程语言可供选择,Java如何才能牢牢抓住开发人员的心?Saab:我们很高兴看到编程语言的蓬勃发展。需要强调的是,作为Java语言的维护者,我们也是该语言的最大用户之一,在我们的内部环境中有大量使用Java编写的活跃应用程序。因此,我们对Java的光明未来负有双重责任。不可能试验或启动不会产生良好结果的开发。对于Java来说,不需要尝试很多不同类型的新特性,这样就可以夸耀自己永远走在时代的最前沿。相反,我们概述的计划是确保我们提出的新进展和技术能够应用于尽可能多的用户,并且必须对这些结果进行严格测试,以确保它们优雅、易于理解、易于使用。使用,并且可以在一定程度上进行扩展。我们已经有了类似的实例,例如Java8中的lambda。当然,我们很高兴看到这么多语言运行在JVM上,我认为这些语言的用户之间将会有很好的意见交流——我们对JVM的多样性和健康感到非常兴奋那。原标题:Java20:它的成功、失败和未来