回顾2014 Java发生的5件大事

1、2月1日:RedMonk分析师确认并宣布Java是最受欢迎和多样化的语言!

2014年,Java生态圈伴随着引擎的轰鸣起步,随着FOSDEM年会的Free Java会议一路飙升。除此之外,还有很多颇有深度的OpenJDK优秀技术演讲,以及(RedMonk分析师)Steve O’Grady带来的令人吃惊的业内相关主题演讲。 Steve给出了2014年初Java受欢迎程度及领域排名领先数据。分析中指出的Java的使用范围,在RedMonk的博客中 也被反复提到。Java位列编程语言前两名已不足为奇,但其他的一些议题让我们这些身处Java生态圈的相关人事也感到惊讶。Steve在演讲中清 晰地指出Java呈现了非常明显的多元化。除了大家通常认为的企业级应用,在社交媒体、消息通讯、游戏、移动领域、虚拟化、构建系统等许多方面也表现突 出。Steve还指出,Java在(在所有行业的)新项目中被广泛采用。这个事实彻底粉碎了Java已成为遗留企业平台的迷思。

(译者注:FOSEM 自由和开源软件欧洲大会)。

2、3月18日:Java 8到来

Java 8的到来迎来了新的函数式与面向对象混合语言。对Java而言是一次“新生”。Java 8发布后,使用新版本的比率令人难以置信(可参阅Typesafe的完整报告)。毫无疑问,这是Java开发者翘首期盼的一次发布。

下面是关于这次发布亮点一些额外的思考:

Lambdas(JSR 335):在这次发布前,关于Lambda这个主题已经有很多优秀的书籍和教程预热了。在我看来,Lambda给开发者带来的最明显的好处就是,他们可以 摆脱所有强加在身上的命令式、面向对象的冗余代码,通过集合清晰地表达行为的正确意图。归结到那句老话“在计算机科学中只有3个问题,缓存失效、命名和差 一错误”。新的Collection Stream API与Lambda一起可以解决后面2个问题! Nashorn 项目(JSR 223、JEP 174):这个JavaScript运行时允许开发者将JavaScript代码嵌入到他们的Java应用程序中。尽管我个人不会很快使用,但是这个新特性有力地促进了JVM作为一线动态类型语言平台的地位。期待这个趋势继续保持下去! 日期和时间API(JSR 310、JEP 150):这是类似生活必需品的API,对于像Java这样的蓝领语言需要将它恢复正常。这一次(第3次)终于做到了!除了终于让时区设置可以正常工作,这次还将特意将Immutable First作为Java语言中新API的设计决定。

3、七月:移植到ARM 64(AArch64)

RedHat主导了在ARMv8 64位架构上支持Java的开发工作。这是让Java真正成为“可以在任何地方运行”的重要一步,同时SAP开始移植Java到PowerPC、AIX的工作,之前这两项工作由OpenJDK中非Oracle参与者负责。如果你希望加入这项工作,可在项目主页看到详细信息。

在嵌入式领域,Java要成为主要的参与者还有很长的路要走。然而,2014年出现的种种迹象令人鼓舞,Java SE嵌入式功能在Raspberry Pi上被频繁使用,Java ME嵌入式增加了实际要求的新特性,与Java SE API互相呼应。

4、9月、10月:JCP复兴并举行15周年庆典

Java社区流程(JCP)是决定Java SE、Java EE和Java ME新加入功能的标准主体。在2013年基础上,JCP将自己重新定义为更加开放的开源社区,在2014年持续改进,遏止了成员流失的势头。最重要的是——现在的JCP真正代表了Java生态圈的多样性。你可以从现在的执行委员会组成结构上看到,像Java用户组这样的组织与业界及重量级用户IBM、Twitter和高盛并肩坐在了一起。

5、社区协作空前高涨,微软加入OpenJDK

OpenJDK的新成员超过以往(参见Mani的优秀文章)。OpenJDK现在成为了主要技术公司的巨大熔炉,其中包括Red Hat、IBM、Oracle、Twitter以及今年新加入的微软。微软的加入着实让人大吃一惊。

JSR和OpenJDK方案的采纳越来越多地让日常工作的开发者加入。除了组织工作坊引导各个API的未来开发,现在会在全球范围内测试新的API以及新的想法,并尽早将反馈传递给OpenJDK和Java EE规范的设计工作。

社区会议及Java用户组的数量持续增加,尤其是最近的JavaOne令人映像深刻。令人欣喜是,很多社区帮助儿童课外和周末时间学习编码,比如Devoxx for Kids。

2015会发生什么?

在我的预期中,2015年Java语言核心的变化会相对减少。Java EE和Java ME的新特性发布也会减少,因为他们的主要发布节点都设在2016。在社区方面,我期待看到Java开发者坚定地拥抱Web、UI技术,比如 AngularJS、更多系统和Devops工具链,比如Docker、AWS、Puppet等。当然,还有迁移到Java 8享受函数式带来的好处!我敢肯定,社区肯定会继续茁壮成长,飘忽不定的IoT(物联网)将会开始进入主流。Java开发者将会继续等待,直到Java 9真正成为嵌入式开发的主流平台。但是,尝鲜者会在2015年开始尝试早期发布的版本。Java、JVM应用程序将会因为可移动组件以及分布式系统变得愈 加复杂。可怜的开发者会经常耗费数周修复产品的问题。为了应对这种情况,将会出现一波有意思的分析工具,用来分析基于Java、JVM的应用程序。同时还 会有部署工具。Oracle的Mission Control是一款非常强大的工具,可以深入JVM了解其中的信息。其他工具比如ZeroTurnaround的Xrebel,jClarity’的Censum。Illuminate下 一步会把机器学习中的分析应用到原始数据。最后我想强调的是。Jigsaw项目是Java 9模块化招牌,它会给工具开发商以及日常开发者带来巨大的影响。社区需要你的帮助来测试Java 9早期构建版本,以此来帮助OpenJDK开发者及工具开发商确保IDE、构建工具和应用程序为这个重大的改变做好准备。你可以加入OpenJDK采纳小 组:http://adoptopenjdk.java.net。希望大家都能度过一个很棒的新年假期——期待2015年能够看到Twitter消息和 GitHub提交越来越多。

原文链接: javacodegeeks 翻译: ImportNew.com - 唐尤华 译文链接: ImportNew

回顾2014 Java发生的5件大事的更多相关文章

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

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

  2. Java学习-008-判断文件类型实例

    此文源码主要为应用 Java 如何判断文件类型的源码及其测试源码.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-2-2 23:02:00,请知悉. Java 判断文件类型源码如 ...

  3. Java语法进阶13-文件、IO流

    File File是文件和目录路径名的抽象表示形式,即File类是文件或目录的路径,而不是文件本身,因此File类不能直接访问文件内容本身,如果需要访问文件内容本身,则需要使用输入/输出流. File ...

  4. Java甘特图控件swing版免费下载地址

    FlexGantt 控件是现在Java 平台下最先进的甘特图解决方案,使用一个很高的抽象层次,能适用于多种不同的域,例如 ERP 系统.生产计划和日程安排.制造流程系统或项目公文管理程序等.这些使得 ...

  5. java基础知识回顾之java集合类-Properties集合

    /** java.lang.Object   |--java.util.Dictionary<K,V>      |--java.util.Hashtable<Object,Obje ...

  6. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  7. Java眼中的XML--------文件读取

     XML 的初次邂逅 初次邂逅XML 如何进行XML文件解析前的准备工作 在Java程序中如何获取xml文件的内容 在Java程序中读取xml文件的过程也成为----解析xml文件 解析的目的:获取节 ...

  8. java 随意控制控件的位置

    package chat1; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class chat1{ ...

  9. JAVA反编工具件安装 JD-eclipse

    想看Android  API源码,但是只有class文件,于是找了个反编译工具Java Decompiler,免费的反编译工具.eclipse插件:JD-eclipse. 安装步骤: 1.确保计算机上 ...

随机推荐

  1. 活学活用,CSS清除浮动的4种方法

    清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近. CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受. 1.结尾处加空div标签 ...

  2. 简单的多对一传输ns2仿真

    实验名称:简单的多对一传输仿真 实验目的:1.研究怎么实现多对一传输. 实验步骤: 1.写c++代码并注册报文头. 先说一下多对一传输的方式.最开始,接收端发送控制报文给所有的发送端,告诉他们要发送多 ...

  3. 【AtCoder】ARC095 E - Symmetric Grid 模拟

    [题目]E - Symmetric Grid [题意]给定n*m的小写字母矩阵,求是否能通过若干行互换和列互换使得矩阵中心对称.n,m<=12. [算法]模拟 [题解]首先行列操作独立,如果已确 ...

  4. 一个MMORPG的常规技能系统

    广义的的说,和战斗结算相关的内容都算技能系统,包括技能信息管理.技能调用接口.技能目标查找.技能表现.技能结算.技能创生体(buff/法术场/弹道)管理,此外还涉及的模块包括:AI模块(技能调用者). ...

  5. shell作业后台执行的方法

    来思考几种场景: 1.某个脚本需要执行时间比较长,无人值守,可能执行过程中因ssh会话超时而中断? 2.某次测试一段代码,需要临时放入后台运行? 3.放入后台运行的脚本,需要在一段时间后重新调到前台? ...

  6. Eureka简介

    Eureka是Spring Cloud Netfix 的一个子模块,也是核心模块之一,用于云端服务发现.一个基于RestFul的服务,用于定位服务,以实现云端中间层服务发现和中间层转移. 服务注册与发 ...

  7. 容斥原理&&莫比乌斯专题

    A题:A - Eddy's爱好   HDU - 2204 具体思路:如果是求n中,为平方数的有多少个,那么答案肯定是sqrt(n),同理,如果是三次根号的话,那么答案肯定是n的三分之一次方.然后继续按 ...

  8. VUE项目用hbuilder 打包为手机APP

    一.测试项目是否可以正确运行    指令:npm run dev 首先我们先建立一个vue的项目,本人用的是vue-cli随便建立的,然后运行项目 不必非得是像我这样的,这一步的目的只是测试一下咱们的 ...

  9. 最短路径—Floyd算法

    Floyd算法 所有顶点对之间的最短路径问题是:对于给定的有向网络G=(V,E),要对G中任意两个顶点v,w(v不等于w),找出v到w的最短路径.当然我们可以n次执行DIJKSTRA算法,用FLOYD ...

  10. 二十、springboot之jpa开发@MappedSuperclass 注解说明

    @MappedSuperclass使用条件: 当我们进行开发项目时,我们经常会用到实体映射到数据库表的操作,此时我们经常会发现在我们需要映射的几个实体类中,有几个共同的属性,例如编号ID,创建者,创建 ...