战神4 幕后花絮 概念艺术

找出Java幕后发生的事情,以及新功能如何实现

在上一篇文章中,我们介绍了即将发布的Java 9版本的新功能和尚待解决的功能,并简要提到了将新功能添加到下一个版本之前要经历的过程。 由于此过程几乎影响了所有Java开发人员,但大多数人对此知之甚少,因此本文将重点介绍内部人员对Java的看法(以及如何建议您一直想要的新功能)。 我们认为了解新功能如何生活的最佳方法是询问负责将其实现的人。

我们与2位Java执行委员会成员Gil Tene和Werner Keil以及伦敦Java社区成员Richard Warburton进行了交谈,并向他们询问了Java的新功能以及他们希望将来看到什么样的新功能。 这篇文章将涵盖面试的第一部分。

但在此之前,以下是主要参与者,这些成员将参与创建新功能并对其进行投票:

–在广泛的主题或特定的代码主体方面具有共同利益的个人和组织。 安全,网络,Swing和HotSpot是一些示例。

项目 –产生大量代码,文档或其他努力的工作。 必须由至少一个团体赞助。 最近的示例是Lambda项目,Jigsaw项目和Sumatra项目。

JDK增强提案 ( JEP )–当需要进一步探索时,允许在JCP之前或与之并行地非正式地推广新规范。 与JSR不同,它可能还包含没有规范级可见性的功能(例如,新的垃圾收集器或JIT实现)。 接受的JEP成为JDK路线图的一部分,并分配一个版本号。

Java规范请求 ( JSR )–该功能的实际规范在此阶段发生,可以通过组/项目,JEP或来自单个JCP(Java社区过程)成员来进行。 通常会为每个Java版本打开一个伞式JSR(也称为平台JSR),Java 9尚未实现。社区的每个成员也可以提出新的Java规范请求。

新功能如何进入Java?

Warburton: “真正的答案是有人想要该功能。 该人可以是大型供应商的内部工程师或项目经理,也可以是社区的外部成员。 无论哪种方式,都需要满足严格的标准:

  • 严重的用户需求:这必须是对整个社区的共识。 示例:Java SE 8添加了lambdas-这项功能已经争论了很多年,并且已经被人们要求。
  • 经过试验和测试:标准必须持续很长时间,并且修改已经建立的标准是非常困难且昂贵的过程。 结果是JCP(Java社区流程)并不是最前沿。 一旦技术为企业采用做好了准备,那么它就是一个去处。
  • 并非每个供应商都独有:标准必须适合所有供应商。 例如:弱/软/幻像引用与垃圾收集器交互,因此以一种试图最小化它们对GC设计的限制的方式指定了它们。

“一旦确定您的功能是一个好主意,就需要开始标准化过程。 这涉及到提出一个JSR(Java规范请求),它是更改Java的基本单元。 JSR需要多次投票。 首先,批准在此主题上启动JSR是一个好主意。 每当进行公共审核时,都要反复进行迭代,以确保JSR朝着正确的方向前进。 最终是时候批准标准了。

Tene: “ Java长期以来一直在仔细和有意识地进行增强。 在历史上,仍然使Java比几乎所有其他编程语言和环境更成功的事情之一是,它在避免Swift采用“最新的有趣事物”方面取得了相对的成功,以及它作为平台的相对一致性。 在整个平台(Java SE,EE等)整个平台上都是如此,但在Java SE平台(我将大部分精力集中在Java SE平台上)中,可能最清楚地遵循了这一点。 集合,NIO,泛型,平台优化的并发实用程序,MethodHandles以及最新的Lambda表达式和流库支持都是很好的示例,这些功能随着时间的流逝而被添加并被广泛采用,显示了它们对平台的真正价值及其重要性。不只是短暂的时尚。”

“ JCP(Java社区流程)负责通过JSR捕获新功能。 成功的独立JSR可以标准化一组特定功能或行为的语义。 但是,当功能成为平台JSR的必需部分并由此成为Java SE或Java EE平台的组成部分时,通常会证明该功能的最终成功和采用。 自从创建OpenJDK以来,我们已经看到Java SE中有关功能的早期阶段的许多工作已经从在JSR中开发到在JEP中开发(JDK增强建议)。 它们最终仍然像以前一样经过规范和完成,并且也成为Platform JSR的一部分,但是我们看到了更多的开放开发,以及更多的试验(不一定要成为JSR)。”

Keil: “ 3个竞争的JSON库,一个用于Java EE,另一个是Oracle专有的,与Java ME 8捆绑在一起,而另一个基于JEP的独立的Java SE 9方法可能是最好的例子之一,这可能会出错并且与用户的使用相悖。开发人员的需求或为Java设置一个标准的目标。 另一个可能是Java SE 8(JavaFX + JSR 310)引入的重叠和很大程度上不兼容的日期/时间API,而“ java.util”下以前存在另外两个库。 Java架构师提供了输入和建议,但是从日期/时间API的角度来看,只有他们或其他人(包括一些执行委员会成员)指出的最糟糕的问题得以解决,而其他问题则被消除了。”

您能否分享您在Java社区流程中的个人经历?

Keil: “前一段时间,我本人和共同规范负责人Antoine Sabot-Durand提出了一种JSR,用于标准化的基于CDI的社交媒体连接器,以及类似的基于JSON,REST或OAuth等安全标准的类似API。 JSR被8:5的绝大多数拒绝。 鉴于Seam Social和Red Hat的整个Seam生态系统都被新项目取代了,就像整个JBoss服务器在那个时候获得一个新的名称和品牌(WildFly)一样,由此产生的开源项目Agorava很自然地替代了Seam我们为JSR 357提出的社交和许多想法。”

社交媒体API执行委员会投票结果

Tene: 作为JCP执行委员会的一部分,我不得不考虑批准新的JSR。 在不止一个案例中,我投票拒绝了我认为不属于该平台的JSR(并主张其他人也这样做),但是大多数自然适合Java生态系统的JSR的门槛并不高。只要JSR负责人签署就可以完成所涉及的详细工作和流程。

Warburton: “我对日期和时间库有所帮助。 我认为这使我对需要完善功能或方法签名的每个单元的详细程度有了更多的了解。 人们投入大量时间尽最大努力使这些API正确无误。”

翻译自: https://www.javacodegeeks.com/2014/10/java-9-behind-the-scenes-where-do-new-features-come-from.html

战神4 幕后花絮 概念艺术

战神4 幕后花絮 概念艺术_Java 9幕后花絮:新功能从何而来?相关推荐

  1. 战神4 幕后花絮 概念艺术_Java 9的幕后花絮–如何制作新功能

    战神4 幕后花絮 概念艺术 这篇文章最初发布在Takipi博客上 -Java和Scala异常分析和性能监控. 在上一篇文章中,我们介绍了即将发布的Java 9版本的新功能和尚待解决的功能,并简要提到了 ...

  2. 战神4 幕后花絮 概念艺术_幕后花絮:品牌更新的背后

    战神4 幕后花絮 概念艺术 Under the Hood gives you an inside look at different parts of Waze - straight from the ...

  3. 战神4 幕后花絮 概念艺术_幕后花絮介绍了锻炼技巧,以提高编码技能

    战神4 幕后花絮 概念艺术 在我们最近的文章中 ,我们讨论了Exercism,这是一个开放源代码项目,旨在通过数十种不同编程语言的练习来帮助人们提高其编程技能. 从业人员完成每项练习,然后收到有关其响 ...

  4. java ee 7 新_Java EE 7:新功能???

    java ee 7 新 我有点"晚点",可以这么说--就Java EE 7的 "博客"而言. 自2013年6月发布以来,已经差不多10个月了 ,但是它仍然相对较 ...

  5. 英雄联盟新英雄Sylas(塞拉斯)的概念艺术设计

    随着我们最新发布的最新英雄Sylas以及对我们心爱的双胞胎姐妹二人组Kayle(天使)和Morgan(莫甘娜)的更新,2019年第一季度真的令人惊叹. 今天,你会看到Sylas创造的幕后花絮,即Uns ...

  6. 激战2:逐火之路-概念艺术设计

    在ArenaNet,我们热爱我们的工作.从创新的游戏设计师到优秀的程序员,我与一些最热情,最忠诚,最谦逊的专业人士合作.但是我最关心和最亲爱的球队是ArenaNet艺术团队.许多不同的艺术学科必须聚集 ...

  7. 概念艺术绘画学习教程 Schoolism – Foolproof Concept Painting with Airi Pan

    Schoolism--万无一失的概念绘画潘 大小解压后:3.19G 含课程素材文件 1920X1080 .mp4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 信息: 万无一失的概念绘画潘 本课 ...

  8. 地平线:黎明时分 - 概念艺术

    自从地平线:黎明时分发布以来.人们已经真正接受了我们的新知识产权,正如我们在社交媒体上收到的赞美和美丽的粉丝艺术一样. 今天,我们正在庆祝Guerrilla自己的艺术家和艺术团队的艺术.展示他们令人难 ...

  9. AI 作画《Concept Art概念艺术》| 用stable diffusion生成

    前言 "Concept Art"是一个艺术门类,即所谓"概念艺术"."概念设计",也称为"初步设计".一般常见于影视或游 ...

最新文章

  1. 第十五篇:依存语法Dependency Grammar
  2. maven(5)--依赖特性
  3. 图像处理-PCA人脸识别
  4. mysql场景测试_【干货】不同场景下 如何进行MySQL迁移
  5. springCloud入门学习(六):使用Ribbon实现负载均衡
  6. C++二进制文件读写操作
  7. Visual Studio 2017 UTF-8 无 BOM 一站式解决办法
  8. Python新手常见错误汇总|附代码检查清单
  9. Laravel-Action 对代码的改造
  10. 带你理清 Java 混乱的日志体系 - log4j、logback、log4j2、jcl、SLFJ 究竟是啥关系?
  11. linux监听端口无响应,linux – tomcat运行,但是8080端口没有响应
  12. Java 算法 约数个数
  13. 2.5 结构化程序设计的方法
  14. 使用libxml2库生成和解析文件
  15. JPG图片比较大如何压缩,图片压缩的简单方法
  16. Gradle编译时,assets文件未打包进apk
  17. 自己封装工具类Jar包
  18. 路由器恢复出厂设置后dns服务器未响应,路由器恢复出厂设置后连不上网怎么办?...
  19. Cheapest Flights Within K Stops
  20. 地脚螺钉直径系列_地脚螺钉的作用,地脚螺钉直径规格!

热门文章

  1. P2444-[POI2000]病毒【AC自动机】
  2. P5020-货币系统【背包】
  3. jzoj4252-QYQ的图【dfs】
  4. P1494-[国家集训队]小Z的袜子【分块优化莫队】
  5. 【模板】最大流之上下界可行流
  6. 【LCT】网络(luogu 2173/ZJOI2011)
  7. Hadoop入门(十六)Mapreduce的单表关联程序
  8. 隐马尔科夫模型-前向算法
  9. 两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践
  10. java反射 修改静态方法的值 setAccessible