QCon北京 2019 Java专题

| March 15, 2019

By Jeff Zhang

2018年QCon上海站时我负责了Java专题的出品,非常高兴得到组委会颁发的优秀出品人称号。

从“苦劳”方面,我的确做了很多工作,但也有不少遗憾,比如几位拟邀请的国外讲师都是因为时间冲突无法成行,以及整个专题的系统性没有达到我的预期等等。所以后来当Kitty邀请我继续担任QCon北京的Java专题出品人时,我就愉快的接受了邀请。今年又正好是QCon进入中国10周年,我想再出品一次Java专题,给国内开发者带来一些Java技术的高质量演讲。

历时4个多月的沟通和协调,Java专题终于全面就绪,上线待发了。

下面我按照确认参会的时间顺序,介绍各位技术专家和演讲的内容。

议题一 Jakarta EE 和 MicroProfile 的明天会怎样?

蒋丰慧(Emily Jiang)

蒋老师来自IBM,担任Microprofile和CDI首席架构师。对于Microprofile技术规范制定,开发实现做了非常多的工作。蒋老师今年初获得JavaChampion的称号,她应该是首位获得这个Java社区最高荣誉的华人,我衷心的为她感到高兴。从另外一个方面来说,也是Java社区对JakartaEE和Microprofile技术继续发展的一种赞许。

JakartaEE是JavaEE技术的继任者,去年Eclipse组织从Oracle中接手了JavaEE,并进行技术和知识产权的移交。前段时间Glassfish发布了5.1版,其中包含的所有API都已经是Eclipse开源协议定义的,也说明JavaEE到JakartaEE的演变已经完成最主要的部分。而Microprofile,最近也发布了2.2版,更好的和EE协作来实现微服务技术。

有人会说国内都用Spring全家桶,不用JavaEE,而且国外唱空EE技术的报告和文章也很多。作为一名多年的中间件技术从业者,我想说,JavaEE技术范畴内,比如应用服务器作为商业产品是正在失去市场份额,就如同过去编译器快速从现金牛产品变成全面免费一样。但JavaEE技术本身还是现代软件架构的重要组成部分,而且Spring也是基于JavaEE技术的,也就是说大多数服务端Java开发者,每天都在使用JavaEE范畴内的技术在编程。

我们再把目光移向行业企业的业务系统,那里更需要标准的技术,稳定成熟的API。比起快速迭代的需求和软件版本,良好的测试,稳定的发行版本,和原先行业系统软件保持一致的使用方法是更重要的。JavaEE和继任者JakartaEE还是企业级应用系统良好的选择。

即使是面向互联网的应用,采用微服务架构,Microprofile也是很好的技术选择。我们还可以选用不断正在成熟的native开发框架,如我上一篇文章谈到的Quarkus项目,Java语言也能完美适应云原生的应用程序技术需求。欢迎各位朋友到时来Java专题,和蒋老师或者我进行JavaEE技术发展的深入探讨。

议题二 Shenandoah: 属于你的下一代垃圾收集器

古政宇

古老师是红帽OpenJDK团队的资深软件工程师,也是Shenandoah GC核心开发者。

谈及Java语言最神秘高深的技术,就是Java虚拟机中GC了。垃圾收集器已经成为现代语言的标配,但毫无疑问Java的GC是是主流语言中最成熟的。 Java开发应用的主要优势就是大内存的常驻服务程序,这样如何对内存进行管理,资源分配,回收重利用就成为主要的技术重点。

几代Java一直在推出各种各样的GC实现,串型,并行,CMS,G1等等,GC性能指标一直不断提升。 Shenandoah GC就是面向大堆的短停顿开源GC实现。

红帽公司的OpenJDK团队开发了Shenandoah GC实现。大家可能不知道的是,OpenJDK之前的版本,6,7,包括8都是红帽团队在维护着的。主流的Linux平台上,包管理的默认Java安装包就是OpenJDK,如果要使用Oracle Java需要手动下载或者用oracle-jdk包。而在红帽Linux服务器RHEL和较新的Fedora之上,Shenandoah GC已经成为可以选用的垃圾收集器使用。

Shenandoah GC之前也已经合并进入OpenJDK主干代码仓库,会出现在很快发布的OpenJDK12中,也就是说将会正式成为Java开发工具中可选用的GC之一。 这个专题中,古老师会给我们详细讲述Shenandoah GC的特点,优势和实现细节。

议题三 Java SE 的 API 曾经遇到的困境和当前进展

范学雷

范老师是Oracle公司资深软件工程师,是若干个JEP(JDK Enhancement Proposals)项目的领导者,比如Java11中加入的TLS1.3 Java实现。范老师是多年的JDK代码贡献者,资深Java安全专家。

他这次的话题,会对Java语言中的API设计进行探讨。无论是开发者还是架构设计师,软件开发中,最考验功力的就是API的设计了。 当你打开Javadoc文档,读到某一个类的注释上写着since 1.1或者1.0时,是否有一种肃然致敬的感觉。这里说明这个类已经存在20多年了,当时使用这个类编译的class机器码,用最新的JVM应该是能直接跑起来的,而纯粹使用这些“老旧”类写成的代码,也是大概率可以编译运行的。

然而在这种兼容性背后,凝聚了多少开发者的智慧和辛苦工作。当你用着最新的golang并发通信语法很爽,或者面对python3和python2不兼容懊恼,被js回调陷阱弄晕时,再看看Java语言保持着的一致性,以及为了加入lamdba等所做的努力,可以为Java语言鼓掌而欢呼吧,老当益壮,不断蜕变化蝶。

学雷老师在QCon北京还有一个深度培训专题,也是对Java语言的更深入的技术分享。

上面三位老师正好来自Java语言最有影响力的三家公司,在和QCon编辑沟通时,我们笑称“Java三巨头”。可以说是实至名归,它们都有自己的JDK发行版,具有Java语言发行授权,TCK测试授权,也都位列Java代码贡献前列,同时都有完备的Java中间件软件产品。确实是当前对Java语言最有影响力的三家公司。

议题四 Fescar 在微服务一致性中的探索

季敏(清铭)

季老师来自阿里中间件团队,是Fescar开源项目的负责人。 Fescar是分布式事务中间件,如果Fescar这个名字比较陌生的话,GTS,TXC知道不?如果还是不太了解技术词汇,那么支付宝,淘宝交易呢? 没错,事务中间件就是网上交易的核心技术。

事务能力是绝大多数行业应用软件的核心,也是企业级中间件技术,比如JavaEE最关键的技术。进入到微服务多主机节点的互联网软件时代,事务性变得更重要了。中国电商承载了超过美国互联网公司的业务交易笔数,是实至名归的软件“明珠”。

恰好阿里事务中间件不久前开源,我很荣幸请到季老师来Java主题分享Fescar技术,为国内开发者带来中国顶级Java开源项目的演讲。

阿里也是我国目前唯一进入Java EC(Executive Committee执行委员会)的公司,也是我认为目前国内Java运用最佳的公司,所以可以称得上是“四巨头”同台。

感谢四位老师的答应我的邀请,有机会为中国软件带来一场Java技术大餐。Java专题链接