写点什么

SpringOne 2017 第二日:Juergen Hoeller 的演讲

  • 2017 年 12 月 12 日
  • 本文字数:2984 字

    阅读完需:约 10 分钟

SpringOne 开发者大会第二天的活动充满了惊喜,其中就包括 Spring 框架的领头人 Juergen Hoeller 和微软杰出工程师 Erich Gamma 博士(“四人帮”之一)的演讲。

2002 年,Hoeller 创建了 Spring,据说他是在圣诞节期间阅读了 Rod Johnson 的一本书而受到了启发。

Hoeller 的演讲充满了激情,提及了技术生态圈和整个社区的通力合作让 Spring 框架光芒四射,让各方利益相关者获益不浅。

以下是 Hoeller 的演讲摘选。

关于 Spring 在肩负行业责任方面所面临的挑战:

这么多年来,我很荣幸能够领导 Spring 框架的迭代开发。现在我们身处 2017 年,并向 2018 年迈进。我们再次面临同样的境遇,我们仍然面临很多挑战。Spring 框架从来都不只是个孤岛,它向生态系统敞开怀抱,拥抱变化,拥抱 JVM 生态系统的基础设施。

关于如何赶上 Java 每六个月发布一次的节奏:

在这一时刻,我们正经历着 Java 生态系统最有趣的变化。我们有了最新的 JDK 9,虽然它早在 9 月份就已发布。我们以后每半年就会拥有一个新的 JDK。我们真的需要去拥抱这种变化。我们过去习惯了三年才获得一个新版本 JDK,甚至是三年半,而现在时间缩短到了半年。不过新特性的发布频率并没有变,我们都是凡人,所以说这种节奏更快了。JDK 10 将在 2018 年 3 月发布,而 JDK 11 将在 2018 年 9 月发布。它们可能只是小的特性发布版本,但却使用了大版本进行发行,每一次发布都提升了字节码版本。它们更像是 9.2 版本,不过它们确实带来了新的语言特性。以 JDK 10 为例,它将会带来新的本地变量声明方式,往 JDK 核心库中增加新特性就有了不一样的模式,它总是能够在合适的时间推出新特性。每半年就会有一个新 JDK 版本发布,所以我们等待新特性发布的时间不会超过半年。不过事情总是有它的两面性。每次新版本发布都会带来新的字节码版本,相关的工具需要为此做好准备。这或许会是一个挑战,会给 Java 生态系统带来混乱。很多工具都是基于字节码版本实现的,比如 ASM、CGLib、ByteBuddy 等,它们原本不需要因新的 JDK 发布而做出什么修改,但现在它们只能被限定在特定的 JDK 版本上,每次新 JDK 发布它们也要做出修改。我们不得不改变我们的思维,我们不得不改变我们的基础设施,改变我们的字节码处理方式,以便适应 JDK 的版本变化。现在 JDK 10 正在开发当中,我们将拥抱它,我们还会有 JDK 11,我们安装好它,并用它运行我们的基础设施、已有的框架、已有的软件包,一切安好。我们只需要在思维方面做些改变。但要注意,并不是所有的 JDK 都有长期支持版本,我更关心的是长期支持版本。在生产环境,我们只会使用具有长期支持的 JDK 和 JVM,而根据当前计划,我们每三年才能获得一个长期支持版本。但也许这也会发生变化,变化无处不在,但从目前来看,JDK 9 并不是一个长期支持版本,JDK 10 也不是。JDK 11 有可能是,它将在明年的 9 月份发布。所以说,JDK 8 是目前的长期支持版本,下一个会是 JDK 11。这对于我们来说会是一个挑战,我们的 Spring 5 是基于 Java 8 版本开发的,这在 Java 生态系统里已经很常见了,很多软件包都是基于 Java 8 的。它们可以用在后续的 JDK 版本上,对于软件包、框架和生产环境来说,Java 8 是一个参考点,而使用新版本 JDK 会是锦上添花。

从 Spring 框架来看,我们已经准备好采用新的运行时环境。所以,Spring 5 应用程序在 JDK 9 上运行是没有问题的,它甚至都能在 JDK 10 上运行,当然也能够在 JDK 11 上运行。JDK 8 是最好的,JDK 9 也不错,等 JDK 10 和 JDK 11 正式发布后也可以使用它们。

关于技术合作:

除了 OpenJDK 以及其他创造性的改进,还有其他很多有意思的东西,我们也参与其中。我们与 JetBrains 的 Kotlin 小组保持着良好的关系,我们很高兴能够与他们合作。我们的合作是双赢的,Spring 5 的很多东西是受到了 Kotlin 的启发而开发的。不仅仅是基于 Kotlin 的应用,我们把很多来自 Kotlin 的设计点子融入到 Spring 5 当中,Kotlin 的很多语法可以被很好地映射到 Java 生态系统中。Kotlin 中有很多重要的模式,尽管 Spring 5 已经包含了很多内容,但 Kotlin 的这些模式仍然给我们带来很多启发,我们将会把它们应用到 Spring 5 当中。如果大家选择 Kotlin 来实现 Spring 应用,Spring 框架和 API 也已经为此做好了准备。我们在支持 Kotlin 方面已经走得很远。这是一种良性的关系,我们发现问题,他们来修复,我们可以达成我们想要的一切,这就是我们在技术合作方面最好的例子。

另一个合作领域是关于反应式流——Reactor 项目是基于响应式流的,是响应式流生态系统的一部分。我们与 RxJava 团队和 Lightbend 的响应式流团队也有着密切的合作关系。我们有共同的语言词汇表、技术术语、语义以及运行时契约。但事情太多了,我们努力达成最大程度的一致,让现有的 RxJava 能够适用于使用了 Reactor 的应用程序上。

最近发布了 EE4J,我们看到了 Java EE 的终结,而 EE4J 是 JCP 的新贵,在我们看来它就是 Java EE。Servlet 规范、JPA、Bean Validation 都捐献给了 Eclipse 基金会,处于 EE4J 的庇护之下。这是我们参与规范工作的最好时机。我们已经在 Servlet 规范上投入了很多,我们已经成为 JPA 专家组成员很长一段时间了,我们也集成 Bean Validation 好几年了。我们最近开始拥抱 JSON Binding API——谷歌 Gson 的替代品。我们正在参与好几个规范,只等 Eclipse 基金会这边开始流程。我们极有可能看到更多小版本的规范出现,可能是 JPA 2.3、Servlet 4.1,不一定要再等 4 年,有可能是明年或 2019 年,只要所有的利益相关者同意发布。如果 Tomcat 和 Jetty 同意 Servlet 4 需要做一些 API 重构,那么它们就会在 Servlet 4.1 中发布,这会在某个合适的时间发生。

我们参与了这么多的项目,很多实际的例子证实我们已经带来了很大的价值,而在 2018 年会有更大的价值得到体现。Kotlin 1.3 协程模型,我们将会在适当的时机拥抱它,或许是在 2018 年或 2019 年。

关于 Spring 核心框架的路线图:

从 Spring 框架角度来看,我们已经准备好开始新任务。Spring 5 已经包含了很多东西,新的函数式 API 设计、反应式架构、反应式 Web 技术栈、将 Kotlin 作为另一个首选的 JVM 语言。它们都很健壮,可以长期存在。我们的使命尚未结束,我们已经开启了新一代框架,我们正在迭代,从人们那里收集反馈——每一个利益相关者、Kotlin 团队成员、Reactor 团队成员。除了这些,在 2018 年,我们有两个主要迭代计划,都是在核心框架层面。我们计划在 2018 年 5 月或 6 月初推出 Spring 5.1。我们的 JIRA 待办目录中有很多东西需要做,如果大家想知道明年 Spring 框架会发生什么变化,可以参看 JIRA 的 5.x 目录。那里有差不多 200 个待办事项,如果大家关心其中某些项目,可以给它们投票,或者给出评论,表达你们的想法,我们会依此决定明年的优先级。如果有些东西无法在 5.1 中交付,我们会另找机会,随着新 JDK 的发布,或许可以放在下一年年底的 Spring 5.2 中发布。将依赖项更新到最新版,采用最新的 Kotlin,反应式流的新进展,反应式 JDBC 集成 API,这些东西都有可能包含在后续的 5.1、5.2 甚至是 2019 年的 5.3 版本当中。

我们野心勃勃,同时几个项目齐头并进,我们希望为大家带来更多东西,2018 年将是激动人心的一年,我个人非常期待我们将给大家带来的惊喜。

查看英文原文 SpringOne 2017 - Day 2 - Juergen Hoeller on Spring’s Mission

2017 年 12 月 12 日 18:005675
用户头像

发布了 321 篇内容, 共 118.7 次阅读, 收获喜欢 125 次。

关注

评论

发布
暂无评论
发现更多内容

用Python绘制专业的K线图【含源代码】

恒生LIGHT云社区

手把手教你使用Studio Lite + Digtal car!助力智能汽车场景、轻应用开发更轻松!

SOA开发者

5G三年成厦,泛在千兆为应用造榫卯

脑极体

linux线上CPU100%排查

入门小站

Linux

如何让文件共享 SDK 支持使用 Uri 上传文件

ZEGO即构

文件存储 分区存储 文件共享

JVM g1 gc 学习笔记二

六维

GC 9月日更

002云原生之架构定义

穿过生命散发芬芳

云原生 9月日更

一文了解「模块化」 区块链的当前形势:执行、安全性及数据可用性

CECBC

浪潮云洲荣获两项工业自动化及数字化行业年度大奖 inspur浪潮云 昨天

浪潮云

云计算

打造“大国重器”高性能计算,联想与英特尔如何携手点亮数字经济加速度?

脑极体

北鲲云超算平台如何将云计算与高性能计算结合

北鲲云

提高工作效率的三种方法

石云升

团队管理 管理 引航计划 内容合集 9月日更

互斥锁、自旋锁、读写锁...理清它们的区别和应用

云原生开发者社区

云计算 编程 开发 应用

通俗易懂!306页图解计算机网络,涵盖所有基础知识

Java 架构 面试 程序人生 编程语言

金九银十不要怕!有了腾讯这本2021年最新Java面试手册,offer手到擒来!

Java 程序员 架构 面试 后端

在线GIF图片帧修改工具

入门小站

工具

Docker OOM Killer

小翁牌坦克

Docker JVM trouble shooting

超十年渗透专家总结出636页渗透测试全笔记,100课时一次讲清

Java 架构 面试 程序人生 编程语言

【新品尝鲜】OCR磅单识别上线邀测,为货运物流提速增效

百度大脑

人工智能 OCR

音视频终端引擎优化实践

百度开发者中心

最佳实践 音视频 实践案例 智能视频 行业深度

华为大牛总结的超全Linux学习笔记,看这一篇就够了!

Java 架构 面试 程序人生 编程语言

强烈推荐!88页《Redis学习文档》完整版,PDF开放下载

Java 架构 面试 程序人生 编程语言

拥抱开源,共建生态 - 开源生态与效能提升专场 | CIF 精彩看点

CODING DevOps

DevOps 研发效能 腾讯云 CIF 峰会 开源生态

重磅来袭,虚拟化技术分类

hanaper

FunTester框架Redis性能测试之map & INCR

FunTester

redis 性能测试 测试框架 测试开发 FunTester

CTF压轴题解题思路和过程

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

史上最全Java高频面试合集,命中率高达95%

Java 程序员 架构 面试 后端

AlibabaP9力荐!最新出品1297页JDK源码+并发核心原理解析小册

Java 架构 面试 程序人生 编程语言

智能网联汽车行业信息安全现状与威胁

SOA开发者

行云创新:云原生技术助力企业数字化转型

云原生开发者社区

技术 云原生 转型 数字化 平台

西门子低代码:探讨应用程序开发的下一步演进方向

西门子低代码:探讨应用程序开发的下一步演进方向

SpringOne 2017第二日:Juergen Hoeller的演讲_Java_Victor Grazi_InfoQ精选文章