在2017年即将结束之际,我们最好停下脚步来看看过去十二个月Java的发展情况。本文,笔者盘点了IT168企业级一年来对Java的跟踪报道。

这一年对Java来说是不容易的,从Java 9一再延期备受争议,再到拿下所有权威排行榜的前三名,Java今年发生了太多事情,饱受了很多争论。

风平浪静的一月

2017年开始之际,Jeff Luszcz解释了使用“免费”Java软件的一些陷阱以及开发者希望在Java 10中看到哪些功能。

由于一些语言服务器协议,Eclipse Che 5.0支持Java。

尚未遭遇变故的二月

我们在2月份拿到了很多顶级技术列表,主要集中在针对重要编程语言,顶尖编程语言和IT最热门工作的调查结果。对Java 9特性的持续报道继续介绍了JDK 9的早期访问文档。

本月,Google的Cloud Spanner测试版发布,完全支持Java。Oracle与谷歌的诉讼持续升温,双方继续争夺Java API。

登上最值得被学习榜单的三月

本月,Java被列为2017年最值得学习的编程语言之一。IntelliJ IDEA 2017.1加入了对Java 8的支持。另外,Stephen Colebourne解释了为什么需要利用Java 8的优势。

Angualr抢走关注点的四月

四月发生了什么? 本月,我们了解了Angular 4的顶级功能。

我们看了2017年的微服务趋势,Java消亡的预测以及Java是否对初学者不利(斯坦福大学将入门编程语言从Java换成了Python)。仔细研究了Stack Overflow调查报告,发现Java从版本9到5是非常流行的。

开始出现下滑迹象的五月

本月,主要关注TIOBE指数,榜单显示Java正在走向下滑。

其他消息包括Java的父亲詹姆斯·高斯林(James Gosling)加入与AWS合资的公司。在Eclipse中,对Eclipse Oxygen的早期观察表明,这一切都意味着Sirius更好的可用性和工作流程。

Java 9延迟消息被曝出的六月

本月是Java 9延迟消息最先发布的时候,OpenJDK管理委员会主席和甲骨文Java平台组开发副总裁Georges Saab解释了这其中的原因,由于委员会投票未通过导致这一结果。同时,他也表示Java 9不会在没有Jigsaw的情况下独自上线。

本月,Eclipse Oxygen终于发布!

为广大Java程序员打了一剂强心针,Java虽然一直被唱衰,但不会死亡,毕竟它有其自身的独特优势。(《Java不被看好,前景堪忧?程序员怎么看?》)

敲定最终发布日期却遭遇信任危机的七月

本月,Java 9终于敲定最终发布日期为9月21号,对于Java 9的一再延期,外媒采访了圈内比较知名的Java开发大神,这十位开发者对这一事件的看法各不相同,有的认为Java 9仍然是值得期待的,有的认为根本没想到Java 9可以通过委员会的投票,根本就不会有人使用Java 9.(《Java 9状况百出,Java程序员大神们都忍不住发声了!》

本月,Java 9公布了前九大改进和功能,对由于资金问题无法出现在Java 9中的JSON API进行了说明。

Java 9新一轮解读开始的八月

由于Java 9的一再延期,多数开发者对此项目充满了不信任。Monica Beckwith是一名Java/JVM 性能咨询专家,他在接受访问时表示,Java 9的亮点不是一个Jigsaw就可以概括的。Java 9加入了很多新特性,在性能等方面也有很大改进。

Java EE 8发布新功能,简化的同时扩展了平台范围,以适应当前云和web开发中的新兴技术。

在本月公布的IDE搜索排行榜中,Eclipse位居榜首,与Visual Studio、Android Studio一起成为了开发者搜索最多的IDE之一。

本月的TIOBE榜单中,Java的指数为12.961%,比去年同期下降了6个百分点,创下历史新低。

本月新发布的CheerpJ可以轻松将Java应用转换为javaScript。

Java 9终于到来但让开发者有些失望的九月

所有的延迟都是值得的,因为Java 9终于到来了,这是本月的最大事件。

9月21日,一再延期的Java 9终于正式发布。宣传最热的Jigsaw似乎并没有迅速赢得开发者的心。基于Project Jigsaw的模块化功能引起了广大程序开发人员的争议,Java商店对于模块化功能并没有立即更新,而是保守的决定等模块化成熟后再进行更新。

Azul Systems营销副总裁Howard Green在采访中表示,鉴于JDK 8的广泛采用,他怀疑Oracle可能会延长它的寿命,特别是JDK9的采用速度远不及JDK 8那么快时。

经历了Java 9延期事件,Oracle的Java平台组首席架构师Mark Reinhold提出,Java SE平台和JDK将转变为严格的基于时间模式,每六个月增加一个新功能,每季度更新一次,每三年发布一次长期支持。

此外,一组葡萄牙的研究人员在本月公布了编程语言与节能效率之间的关系,整个过程主要考虑了三个变量:执行时间、内存消耗和能耗。最终,Java成为最节能的编程语言之一。

据国外顾问机构约翰·库克博士的预测,到2039年,Java将死亡。Java被列为21世纪即将死亡的编程语言之一。

Java EE本月正式移交给了Eclipse基金会。

Kotlin虎视眈眈喧宾夺主的十月

本月对Java来说,可谓是厄运缠身。Python与Kotlin对Java的冲击显然不小。这场战争最先由Realm引爆,Realm是一家实时移动平台提供商,在本月发布了针对10万多名程序员的调查结果。数据显示,过去的四个月中,使用Java构建的Android应用程序数量下降了6.1%,该机构预测到2018年12月,Kotlin在Android领域将超越Java,这就好像Swift一步步打败了Objective-C。(《Java被抛弃?大量安卓程序员涌向Kotlin!》)

不久后,在GitHub发布的年度报告中,Python又成功挤掉了Java上升至第二位。好在Oracle及时宣布了JDK 18.3计划,才让Java扳回一城。Oracle在声明中表示,JDK9的下一个版本将更名为JDK18.3。

此外,阿里巴巴李三红在一场公开演讲中表示,阿里开发的所有Java应用程序都在运行AJDK,阿里巴巴基于丰富的Java开源定制了大部分软件生态系统。

前三季度盘点Java稳坐前三名的十一月

11月份,大家对Java 9的关注似乎有所减少(可能是因为转向了最新的Angular和Kotlin 1.2)。Kotlin 1.2最新版本的发布可能会进一步侵占Java的市场。

此外,作为加速发布周期举措的一部分,Oracle宣布“大多数版本发布应至少包含一个或两个重要功能”。为了让Java保持相关性和现代化,Oracle为Java添加了许多新特性,同时弃用了一部分特性。(《Oracle的不断改进使Java成为一门更完美的语言》)

本月还发布了针对Kotlin和Java用户的轻量级Web框架Javalin,以及在开发过程中花费了大量时间的Apache Kafka。

在本月发布的针对编程语言2017年前三季度盘点中,我们总结了前三季度发布的所有权威排行榜,无论按照流行度、易用性、主流编程语言等各项指标排名,Java都是不变的前三名。(《2017年编程语言前三季度盘点:综合所有权威排行榜及调研结果!》)

当选2018年市场需求最旺盛编程语言首位的十二月

今年即将结束,只剩下几个故事可以讲述,比如下一个Java版本将被正式称为JDK 10。

本月,Coding Dojo发布了程序员最应意识到的前七大工作机会最多的编程语言。简而言之,这是对2017年市场需求最旺盛的编程语言的总结,也是对2018年的预测。根据数据显示,Java是2017年最受欢迎的编程语言,拥有6.8万个工作机会,但是这一数字将在2018年下降至6.2万。即便下降,该编程语言同样是市场需求最旺盛的。(相关文章:《2018市场需求最旺盛编程语言:Java、Python、JavaScript!》)

同时,本月也重申了Java在数据科学领域的地位。由于数据科学家的高需求,Python和R语言被认为是直接受益者,其实,Java在数据科学领域同样可以发挥巨大作用。另外,Buildship 2.2现在支持Java 9。(《强心针:Java在数据科学领域同样是王者!》)

展望未来

Java在未来一年还有哪些值得期待的事情呢?根据Oracle的计划,2018年3月底或4月初,Java 10似乎将准备就绪。新版Java最有可能包含的特性是目前处于目标状态或建议目标状态的JEP。主要涉及以下功能:

·局部变量类型推断

·将JDKForest 合并到单个存储库中

·垃圾收集器接口

·G1的并行完整GC

·应用程序类数据共享

·Thread-Local Handshakes

然而,未来一年到底会发生什么显然不是可预测的。对Java来说,2017年是伟大的一年,让我们共同期待接下来会发生什么吧!

java学习群669823128

年终盘点:Java今年的大事记都在这里!的更多相关文章

  1. 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。附小文:招.NET开发,结果他转JAVA了,一切都是为了生活

    参考文章: 1.SuperIO通讯框架介绍,含通信本质 2.C#跨平台物联网通讯框架ServerSuperIO(SSIO) 一.感慨 上大学的时候,没有学过C#,花了5块钱在地坛书市买了一本教程,也就 ...

  2. 2.JAVA编程思想——一切都是对象

    一切都是对象 欢迎转载.转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040221 虽然以C++为基础,但 Java 是一种更纯粹的面 ...

  3. java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

    java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

  4. List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedList Set有两个实现类:HashSet和LinkedHashSet AbstractSet实现了Set

    List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedListSet有两个实现类:HashSet和LinkedHashSetAbstractS ...

  5. 【性能优化】面试官:Java中的对象都是在堆上分配的吗?

    写在前面 从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:"Jav ...

  6. 盘点 Java 开发 2020 年发生的几件大事,你必须得知道!

    2021 年了,在过去的一年 Java 软件开发行业都发生了哪些重大事件呢? 这篇栈长带大家回顾一下,其实在元旦的<滚蛋吧,2020>也略有介绍,这篇就更加详细的总结一下. 1.Java ...

  7. 不藏了,这些Java反射用法总结都告诉你们

    摘要:Java反射是一种非常强大的机制,它可以在同一个系统中去检测内部的类的字段.方法和构造函数.它非常多的Java框架中,都大量应用了反射技术,如Hibernate和Spring.可以说,反射机制的 ...

  8. 盘点 6 个被淘汰的 Java 技术,它们都曾经风光过!

    大家好啊,今天栈长给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架,有些我甚至都没有用过,但我知道它曾经风光过. 废话不多说,下面我要开始吹了-- 1.Swing 下面这个是用 swing ...

  9. <转>年终盘点!2017年超有价值的Golang文章

    马上就要进入2018年了,作为年终的盘点,本文列出了一些2017年的关于Go编程的一些文章,并加上简短的介绍. 文章排名不分先后, 文章也不一定完全按照日期来排列.我按照文章的大致内容分了类,便于查找 ...

随机推荐

  1. Windows工作区目录创建

    Windows工作区目录创建批处理脚本,目的是养成工作区目录规范的好习惯. @echo off echo 'Create Jingyu Workshop!' rem Author: Alfred Zh ...

  2. Spring.Net依赖注入(属性注入)

    一.前言: Spring.Net是Java开源框架迁移过来的,主要分为 1)依赖注入 2)面向方面编程 3)数据访问抽象 4)Asp.Net扩展 四个模块功能,这里只是简单介绍依赖注入模块功能. 对于 ...

  3. Canvas:橡皮筋线条绘制

    Canvas:橡皮筋线条绘制 效果演示 实现要点 事件监听 [说明]: 在Canvas中检测鼠标事件是非常简单的,可以在canvas中添加一个事件监听器,当事件发生时,浏览器就会调用这个监听器. 我们 ...

  4. 表单向controller传值如果没填controller取到的是null

    jsp前端表单,向controller传数据,如果没有值,后台传入的是null,比如checkbox未选中,后台设置的Integer[] ids,接收到的ids=null,hidden标签如果没有值, ...

  5. pytharm提示过期 License Activation 解决办法

    遇到如下问题: 打开网站:  http://idea.lanyus.com/   next next ok    

  6. cdoj1328卿学姐与诡异村庄

    地址:http://acm.uestc.edu.cn/#/problem/show/1328 题目: 卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others)    ...

  7. 2018 Multi-University Training Contest 1 - B Balanced Sequence (贪心)

    题意:对N个由(,)组成的字符串,求拼接后得到的最大的balance序列的长度.balance序列:空串/ A+B(A,B都是b序列)/ (+A+),A为b序列.此三种情况. 分析:在读入N每个字符串 ...

  8. c语言的按位运算符

    & 按位与 | 按位或 ^ 按位异或 1. 按位与运算 按位与运算符"&"是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果 ...

  9. JavaWeb Filter

    1. 过滤器概述 1.1. 什么是过滤器 Filter译为过滤器,是JavaWeb的三大组件之一,用于在Servlet之外对Request或者Response进行修改.对于Web应用程序来说,过滤器是 ...

  10. object c中@property 的使用

    assign:  对基础的数据类型,比如NSInteger和C数据类型(int,float,char)等 copy: 针对NSString retail:   针对NSObject及其子类 nonat ...