写点什么

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:006079
用户头像

发布了 322 篇内容, 共 142.5 次阅读, 收获喜欢 147 次。

关注

评论

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

系统困境与软件复杂度,为什么我们的系统会如此复杂

阿里巴巴终端技术

软件 系统设计 软件开发

云安全是什么样子的?其工作原理是什么?

wljslmz

云安全 6月月更

转转统一权限系统的设计与实现(前端实现篇)

转转技术团队

前端开发 umijs 权限设计

【6.10-6.16】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

Neat Syntax Design of an ETL Language (Part 1)

Bright

数据开发 ETL 大数据开发 EasySQL

InfoQ 极客传媒 15 周年庆征文|跨平台应用开发进阶(二十二) :uni-app Android APP上线准备工作汇总

No Silver Bullet

前端 签名 安全检测 6月月更 InfoQ极客传媒15周年庆

帮助中心应该怎样设计?

小炮

探索质量外延 - 质量安全故事

QualityFocus

质量管理 软件质量与安全

【LeetCode】多个数组求交集Java题解

Albert

LeetCode 6月月更

如何使用物联网低代码平台进行数据分析?

AIRIOT

物联网 低代码开发

科创人·酷渲科技创始人华少:用双赢思维做产品、连生态,实现规模化发展

科创人

java程序员培训 | 10年后程序员的薪资会怎么样

@零度

JAVA开发

Mysql数据库查询好慢,除了索引,还能因为什么?

C++后台开发

MySQL 数据库 中间件 后端开发 C++后台开发

Javascript API自动代码生成需求征集

百家饭隐私计算平台创业者

JavaScript OpenAPI axios

web前端培训如何提高React界面性能

@零度

前端开发 React

java就业培训 | 面试官如何判断应聘者能力的,这一篇就够了

@零度

JAVA开发

Linux系统与Windows系统之间的文件上传与下载

龙空白白

Linux Windows系统

技能速成!教你10分钟内在电脑上配置运行Hive Metastore和Presto

Alluxio

presto 技能 Alluxio hive metastore 初学者

Vue-12-条件渲染(可重复元素)

Python研究所

6月月更

个推CTO趣谈元宇宙:从概念、成因到核心技术

个推

数据智能 元宇宙

人才一站式服务平台开发,高层次人才管理系统

a13823115807

个推TechDay直播预告 | 6月22日,开启大数据降本提效的破局之道!

个推

大数据 分布式计算 分布式存储 标签

多年亿级流量下的高并发经验总结,我毫无保留的写在了这本书中

冰河

并发编程 多线程 高并发 异步编程 6月月更

网络安全实战从0到1彻底掌握XXE

网络安全学海

黑客 网络安全 安全 渗透测试 WEB安全

特定MPC问题包含哪些常见技术,有什么作用,什么场景需要用到?

Jessica@数牍

隐私计算 安全多方计算 特定mpc问题

易观分析《计算机视觉市场研究,2022》研究报告正式启动

易观分析

人工智能

编程技巧│浏览器 Notification 桌面推送通知

可视化 6月月更 Notification 实时通知

BI与SaaS碰撞,让数据处理更加轻松(下)

葡萄城技术团队

数据分析 SaaS BI

IntelliJ IDEA常见快捷键

龙空白白

IntelliJ IDEA

阿里云CIPU下笔惊雷,方寸间书写中国算力故事

脑极体

2023年广州美博会-2023年春季广州美博会

Geek_0b38bb

美博会 2023年广州美博会 春季广州美博会 3月份广州美博会

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