azul zing
替代JVM的构建者Azul Systems的CTO和联合创始人Gil Tene从90年代中期开始就将基于Java的产品组合在一起。 在最初发表于4月版的《 JAX杂志》的这次采访中,他对平台的最新化身投以了难以置信的经验,并告诉我们他对Java 9路线图的看法。
JAX:您认为Java 8将带给JVM最重要的事情是什么?
泰恩:我认为Java 8有两到三个不同的重要内容–只有其中之一是Java 8平台的实际功能。 关于lambda表达式作为Java 8的功能的新增功能,可能引起了很多讨论。
我认为这对开发人员来说将是一种有吸引力的新代码编写方式,它还将推动Java 8的采用,这可能比我们自Java 5以来采用的任何以前版本的Java都要快。这主要是因为这确实是第一个Java 5以来Java的新编程功能–基本上,这确实改变了人们编写代码的方式。 在Java 5中,我们还有其他泛型,这改变了人们编写集合和其他内容代码的方式。
从那时起,我们对该平台所做的更改一直是在各处扩展库和功能以及其他内容,但是大多数情况下它们只是很小的增量。 这是一个很大的增量。 您现在使用Java Lambda表达式时编写的代码与以前不同。
所以这是我的主要功能,我相信您会和其他人提及。 Java 8带来的另一个非常重要的事情是,它是很长一段时间以来第一个按可预测的,预先宣布的时间表发布的Java。
那是一件大事。 如果您查看Java的最后三个发行版,则所需的时间比预期的时间长或比预期的时间长。 日期多次翻转,很难预测什么时候会发生……因此,任何使用Java的人(世界上大多数人)基本上都必须对何时发生过渡,何时计划项目进行教育。并展望何时会发生某些事情。 当您是IT组织时,您希望对这些事情具有一两年的可见性,以便可以进行计划。
虽然肯定有一些功能上的变化。 人们想要某些东西,并且他们计划在Java 8发行版中提供这些东西,而这些东西并没有被推出到Java 9或更高版本中。
我认为这是一件非常积极的事情,因为这是首次发布日期以及能够按计划发布具有可见性的东西的能力–我认为大约是一年前,他们说发布会在何时开始,并且已经发布了时间-令人钦佩。
您可以将Java 8定义为将于2014年3月18日发布的东西。这就是行为的改变。 到目前为止,Java版本已经完成。 在最初的几年中,这种情况很快发生了,但是在过去的七八年里,Java主要版本一直没有可预测性,这影响了每个人计划预算的方式。 我非常希望情况会一直如此。 官方计划是有一个两年的发布周期,其中Java 9从现在开始发生两年,Java 10从那时开始发生两年……并且对于那些发布火车,要包含某些功能,您将在大约一年之前看到这些功能。时间。 我认为,从长远来看,Java 8是第一次出现,这是非常非常积极的事情。
您认为对Java 8用户最大的调整是什么?
老实说 我认为最大的事情就是学习如何阅读它-因为其他人将在其中编写代码,并且您将在示例中看到库代码,因此每个人都必须学习如何阅读语法。
再一次,最后一次是在Java 5中添加泛型时。这总是伴随着新功能发生的-有一个很酷的新功能,每个人都开始将它用于所有功能。 这将是一条有趣的学习曲线,涉及哪些地方有用,哪些地方不是一个好主意,以及哪些地方不应该这样做。
我们将很快看到会有学习曲线。 最初,每个人都会因为存在lambda表单而使用它们,然后我们将拥有所有发生的错误,因为这不是一个好主意,然后我们将在它们使用的地方使用它们有道理,哪些地方是个好主意,以及在其他地方缺乏常规语法的使用。 这总是在添加新功能时发生。 我相信您有900万名Java程序员,这为学习正确的事物创造了时间。
您认为Java 8中有什么可以做得不同的事情,为什么您会这样做呢?
关于Java 8,我没有太多负面意见要说-我确实想在Java 9中完成一些工作,而且我希望看到它们有所不同。
正如我所说,我认为使用Java 8时,重点是交付,它应该已经分解成许多其他方面。 但是,我认为有几个功能和事情是未来的重要重点。
例如,我认为这些新功能-lambda表达式以及对某些功能语言功能的支持-都是很棒的东西,它们没有负面影响,但是我认为对Java 8的关注不足, d希望看到Java 9重新将注意力集中在主流性能和主流工具上,以提高未使用lambda表达式等功能的事物的性能。
我一直在研究的一个特定领域是内存访问模式,以及在Java中表达更多最佳内存访问模式的方式,这将使其能够与已经支持相同访问模式的C和C ++更好地竞争。 您可能会说,不仅从新语言中的新奇事物中学习,而且从现有语言中低速的事物中学习是我认为我们需要做的事情。
额外的是流程,这是从Oracle以外的其他外部公司向核心Java SE平台投入更多资金的一部分。 显然,我们是该社区中的公司之一,并且该流程本身存在许多问题,这使得除修复,注释和评论外,很难对流程做出任何贡献。
如果Oracle以外的公司希望将主要功能引入该平台,则目前很难,主要是因为项目的运行方式。今天,每个想要使用和交付Java 8的人都可以使用OpenJDK TCK测试,它,并且所有内容都可用,但是只有在所有版本都已完成后,才能在最终版本中使用。
这意味着到现在为止的捐款大多很小,而且是递增的。 将来,我希望看到的是早期获得社区成员的访问权,这样我们就可以进行大规模或重大更改并将其可靠地添加到平台上,而不是等到平台发布后再添加任何东西。
作为JCP的成员,您已经谈到了Oracle保持其开发开放的重要性。 您认为过去几年的成就如何? Java 8是否能很好地证明Oracle对开源的承诺?
我认为这很好地展示了开放性和过程性。 我认为Oracle在开放Java开发方面做得很好。 Oracle的实际行为已经解决了几年前人们对Oracle / Sun收购时的许多担忧,这些担忧是关于Java是否会关闭和出现问题。 我认为它在做正确的事情。
正如我提到的,我认为围绕社区做出真正的贡献是一个挑战。 相对于小规模和增量型挑战,这一挑战主要围绕促进主要贡献。
一种思考的方式是:对OpenJDK做出贡献的许多个人开发人员都不适用于Oracle –现在没有大型公司在主平台上这样做。 Oracle(Azul)和RedHat以及IBM在某种程度上可能是您希望在Oracle之外做出贡献的公司。
如果您看一下Java 8,除了Oracle和Oracle员工之外,其他公司都没有Java 8平台中的重要功能。 我认为这与一些可以改进的过程问题有关。 不过,这不是抱怨–而是对未来改进的建议。
已经有发生这种情况的迹象。 例如,RedHat在Open JDK中承担了几个项目。 外部公司已经创建了新项目,这是一个好兆头-但是它们都没有作为主要代码显示在主平台上而实现,我期待它们的结果出现在主平台上。 Java 9或Java 10。
您是否认为安全问题仍然是浏览器中Java的大问题?
我想说Java与其他具有通用功能的编程语言一样安全。 如果您查看诸如Windows平台和本机插件之类的内容,那么它们都有相似的曝光。
实际上,这是Java的替代品,它们以HTML5和JavaScript之类的形式出现在浏览器中,它们提供了本质上更安全的环境。 我认为Java的安全性不比Flash或Windows中存在的插件安全性差–只是在去年左右它受到了更多关注,因为许多漏洞可能已经存在了一段时间了裸露。
如果您看处理,您不会在浏览器中看到太多的Java进程。 就我的看法而言,它不是当前的应用程序,而是JavaFX可能是一个例外。
JavaFX – Java 8附带了一个新版本–它针对更丰富的环境以及可能通过浏览器提供的内容,因此在那种环境下,我们还没有看到人们如何从编程角度来学习它。 但是我认为安全性问题的确确实以Web漏洞的形式出现,Java恰好是媒介之一,但是还有许多其他媒介,当您删除Web浏览器的问题并着眼于企业时在桌面上的应用程序或事物上,Java往往比其他任何事物都更安全或更安全-我认为它没有任何额外的不安全因素。
您如何看待Java 8对Azul System未来路线图的影响?
这是一个有趣的问题。 您知道,当我提到Java 8的主要功能时,它的发布日期是什么? 这是一件大事,特别是对于像我们这样的公司,我们只做Java。 我们发布JVM,因此了解何时实际发生是至关重要的。
我们有一个路线图,并且Java 8突然又减少了七个月,这将对我们的产品线产生重大影响。 因此,发布并按时发布的事实是一件好事,因为这意味着我们可以遵守我们的计划。
从产品线的角度来看,这对我们意味着什么,我们从Java 4开始就发布了JVM,因此我们分别发布了5、6和8,实际上,对于我们来说,没有什么大不一样的。 我们遵循Java SE标准,发布了完全兼容,完全兼容的JVM,并且我们计划继续这样做。 这使我们能够以更可预测的方式执行此操作,因为有一个可预测的版本可以遵循。
我要说的另一件事是,在Azul,我们并没有真正将Java SE标准视为发行版。 Azul的产品具有自己的版本,当我们发布Azul产品的新版本时,我们不仅将其应用于最新和最出色的Java。
因此,获得这些功能的不仅是Java 8,还包括我们当前支持的每个Java版本-现在我们支持Java 6和Java 7,不久以后还将支持Java 8。 当我们添加功能时,所有这些版本都会显示该功能。
造成这种现象的主要原因是Java 8成为Java的主要生产时间还需要一段时间。 它刚在上个月发布,因此,人们自然决定采用这些功能,这是一个自然的采用时间,并且您将拥有比其他人更早的采用者。
我们的大多数客户仍在运行Java 6 –我期待看到Java 8的强大转变,但下周将不会发生。 这将在未来几年内发生。
即使您将产品本身的自然成熟性抛在一边,也仅存在操作问题。 人们必须迁移他们的代码库,生产设置,他们的实践,监视和知识,这需要几个月甚至几个月的时间。
因此,当我们着眼于客户群并添加一些新功能时,我们并没有处于说要使用新功能的状态,必须转向Java 8。
从我们的角度来看,您可以在Java 6、7或8上拥有新功能,而Java 9发布时也会发生同样的情况。 我们对JVM的实际支持期限是十年,因此,如果仍然有人希望从现在起十年后运行Java 7,那么我们可以。 我们认为他们可能 应该 搬家,但是如果他们出于某些运营原因,那么我们仍然会支持他们。
您真的想在Java 9中看到什么吗?
我对与主线性能有关的事情最感兴趣,并且对改进高性能和堆外访问的支持。 Java中有一个称为“不安全”的API,该API明显被标记为不安全,因此不应使用,但出于性能原因,人们最终会大量使用它。
Open JDK正在进行一项努力,旨在提供Java 9中不安全的替代方法,称为“安全不安全”。 我非常希望看到它完成,因为我们的许多客户都需要它。 我认为另一个显而易见的项目是Jigsaw项目-希望它将在一定时间内将其纳入Java 9。
我希望从头开始再次看到Java泛型的问题。 我们有Java 5中引入的Java泛型,每个人都知道并使用它,并且它的老化。我认为泛型的第二个版本将非常有用,并且有很多经验教训。 这是我希望看到的主要语言功能。
吉尔·泰恩
Gil Tene(Twitter:@giltene)是Azul Systems的首席技术官兼联合创始人。 在过去的20年中,他一直从事虚拟机技术的研究,自1995年以来,他一直在开发基于Java技术的产品。Gil率先创立了Azul的持续并发压缩收集器(C4),Java虚拟化,弹性内存以及各种托管的运行时和系统堆栈技术结合起来可提供业界最可扩展和最强大的Java平台。 Gil还代表Azul Systems担任JCP(Java社区流程)执行委员会成员。 Gil拥有以色列以色列理工学院的电子工程学士学位,并已获得28项与计算机相关技术的专利。
翻译自: https://jaxenter.com/azul-systems-cto-on-lambda-binging-and-upping-java-community-input-107885.html
azul zing