大家好!我是你们热爱的Java,2019年过去了,按照惯例,我要做一下年终总结,说说这一年来发生在我身上的大事。
首先我高兴地向大家宣布,我继续在语言排行榜霸占第一的位置 !连续好几年了,真是高处不胜寒啊。
你说别的排行榜上Python是第一?抱歉,我只看Tiobe排行榜,别拿别的榜来烦我,我不看我不看。
第二件事,2019年我又发布了两个版本, JDK12 和 JDK 13。
它们增加了各种各样让人激动的新特性,相信你会喜欢的,比如switch表达式的增强,比如重新实现Socket API, 多行字符串等等。
- int numLetters = switch (day) {
- case MONDAY, FRIDAY, SUNDAY -> 6;
- case TUESDAY -> 7;
- case THURSDAY, SATURDAY -> 8;
- case WEDNESDAY -> 9;
- };
- String html = """
- <html>
- <body>
- <p>Hello, %s</p>
- </body>
- </html>""";
是不是很酷?都2020年了,可以考虑升级你那老掉牙的JDK8了啊!
什么?这些特性没啥用?JDK 12, 13是短期支持版本? 那你可以考虑下长期支持的JDK 11,要么就等2021年的JDK 17了。
第三件事, 美国高等法院终于同意在2020年审理Oracle和Google的世纪诉讼了,我的API应不应该收到保护?你是支持Google还是Oracle,还是支持我呢?
这场扯了10年的官司终于要有一个了结了。 他们俩怎么不和解呢?不管如何,广大Java程序员应该不会收到太大影响,IT产业的继续发展的隆隆车轮不是谁都能阻挡的。
第四, Microsoft Love Linux, Micorsoft Love Java 。曾经想扼杀Java 的微软居然加入了OpenJDK社区!
虽然出乎意料,但也是在情理之中。因为最近几年,微软转型云计算,拥抱开源, 云端的服务器要运行Linux,Linux上还要跑Java应用,作为一个基础设施提供商,必须得对Linux和Java有更深入的理解和掌控才可以。
微软的云服务Azure 发展势头极好,2019年击败亚马逊,赢得了一份五角大楼价值100亿美元合同,在这种大背景下,将来一定会基于OpenJDK为自己的Azure定制一个JDK, 就像亚马逊的Corretto, Azul Zulu那样,让我们拭目以待。
与此形成鲜明对比的是,蓝色巨人IBM似乎和Java渐行渐远,这个企业级Java的最大玩家,Eclipse IDE的发明者,几乎所有产品线都基于Java技术的公司,要向云和AI做转型了。
第五,Java EE正式宣告死亡,注意我说的是仅仅是名字,因为被Oracle抛弃以后,Java EE投入到Eclipse的怀抱,摇身一变,成为了Jakarta EE。
可是让人遗憾的是:“邪恶”的Oracle后爹居然不让Jakarta EE使用javax这样的包名!因为Java是他们的注册商标。但是,为了保持我们Java一直以来的好名声:向后兼容性。
Oracle后爹同意:
1. 现在的javax相关的包还可以使用,但是不能做任何扩展和修改
2. 但是,新的功能需要放在新的包(例如jakarta)下面。
不过,对于程序员来讲,影响似乎不大,因为Java EE那一套规范用得越来越少了,大家做个吃瓜群众就好。
第六,JCP二十岁了! 实际上JCP成立于1998年的12月, 2018年12就年满20岁了,整个2019年都有一系列的庆祝活动。
我对这个掌管着Java特性开发的组织是又爱又恨,一方面,所有的Java特性必须通过JSR的方式提交到JCP,讨论,投票以后才能成为真正的规范。
另一方面,这个组织基本上被大公司所掌控,来自开源和个人的声音很小,行动迟缓,JSR经过缓慢的流程以后,往往会和市场需求脱节,这和开源软件的开发形成了极为鲜明的对比。
不过现在也算是有所改变,你看我每年都能发两个JDK版本了!
2019年过去了,我一点儿都不怀念它!
祝大家2020一切顺利!