Java 12可能会破坏原始字符串文字

对于2019年3月的升级,测试版功能尚未准备就绪

Java开发工具包(JDK)12很快就会成为发布目标的第一个功能:原始字符串文字的beta版本。

为了简化Java的开发,原始字符串文字可以跨越多行源代码而不解释转义序列。但是,这个功能的开发人员不再确信在JDK 12于2019年3月19日发布时,测试版功能已经准备就绪。因此,Oracle Java语言架构师Brian Goetz发布了删除原始字符串文字的提案。计划升级的能力。删除计划的审核期限于2018年12月18日结束。

[ 15个Java框架,为开发人员提供了帮助。• 哪些工具支持Java的新模块化功能。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
Goetz说,他不再相信开发人员在复杂性和表现力之间做出正确的权衡,或者已经有足够的探索来了解当前的设计是最好的。对提案的反馈提出了诸如将两个反引号序列混淆为空字符串的问题,即使它是一个开放分隔符。其他问题集中在不必要的不​​对称和复杂性上。

删除提案指出,现在每六个月升级一次的Java更快的发布时间表意味着错过发布的成本远低于之前的成本。在达到“永久”状态时,该功能甚至可能不会错过任何一个节拍,因为无论如何都会预测随后的beta期,因为可能会对第一个beta进行修改。

与此同时,撤销功能使开发人员有机会继续完善设计并探索更多选项。除了原始字符串文字之外,JDK 12仍然提出的其他功能包括垃圾收集的改进,JVM常量API,开关表达式和基准测试套件。

针对IoT应用程序更新了Oracle Java Card

Java Card是一种软件技术,可在安全硬件和软件服务之间提供隔离

Oracle的Java Card平台为智能卡和有限内存设备应用程序提供安全保护,增加了对3.1版物联网的支持。

Java Card是一种软件技术,可在安全硬件和软件服务之间提供隔离。使用Java Card的典型硬件平台包括嵌入式安全元件,智能卡芯片和带有通用CPU的安全系统。可以提供敏感材料,例如加密密钥。开发套件是免费的,但使用Java Card的制造商必须获得使用该技术的付费商业许可。

[阅读InfoWorld评论:亚马逊将开发人员简化为物联网。| Azure为.Net开发人员带来物联网。| 使用InfoWorld的云计算报告时事通讯了解云计算事件。]
Java Card 3.1支持开发可在各种物联网安全硬件上移植的安全服务。可扩展的I / O模型允许应用程序通过各种物理层和应用程序协议直接与连接的外围设备交换数据。新版本还引入了API和更新的加密功能,以解决物联网安全问题,并协助设计安全应用程序,包括设备证明。

Java Card 3.1的扩展文件格式简化了应用程序部署,代码升级和维护。API增强功能可提高应用程序的开发人员生产力和内存效

Java Card 3.1引入了四种安全服务:

用于管理资源受限设备的可信密钥的证书API。
密钥派生API,用于保护敏感数据。
一个单调的计数器API,以避免重播攻击。
用于时间戳的系统时间API

Java线程清理程序项目再次提出

如果获得批准,OpenJDK的工作将帮助开发人员发现HotSpot JVM和JVM工具界面中的数据竞争条件

如果提出的线程清理程序能够实现,那么Java开发人员就会在他们的项目中遇到竞争条件。

在OpenJDK社区中提出的项目Tsan将探索并孵化一个线程消毒功能,该功能将集成到HotSpot JVM和JVM工具界面中。

[ 15个Java框架,为开发人员提供了帮助。• 哪些工具支持Java的新模块化功能。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
线程清理会让Java用户看到数据竞争条件。在数据竞争中,多个线程访问共享数据并尝试同时更改它,从而导致错误和意外的行为。

该项目由谷歌的Jean Christophe Beyler提出,他说Google平台团队已经在内部开展了一个线程清理项目。项目Tsan线程消毒提案遵循以前的两个提议,也是Beyler提出的:2018年11月,他提出了 Atlantis,并于2018年7月提出了Java Thread Sanitizer。

Tsan项目将调查谷歌在线程消毒方面的努力是如何做得足够通用,以便推入主线Java项目。谷歌的努力也有可能因过于具体而被拒绝。

Java满足Kubernetes和无服务器计算

Red Hat的beta Quarkus框架旨在优化分布式应用程序架构的Java开发

Red Hat希望通过提供适用于Kubernetes和无服务器环境的工具,将Java引入更现代的计算范例。

目前处于测试阶段,Red Hat的开源Quarkus 框架针对的是容器优先的云原生世界。它使用统一的反应式和命令式编程模型来处理分布式应用程序体系结构,如微服务和无服务器。在无服务器环境中运行Java可能具有挑战性,在无服务器环境中,按需调用计算服务。

[开发人员指南:无服务器计算:AWS vs. Google Cloud与Microsoft Azure。| 然后了解 如何使用Microsoft的Azure功能以及如何使用AWS Lambda进行无服务器计算。]
红帽说Quarkus将提供:

快速启动,在几十毫秒的范围内,并自动缩放容器上的微服务。
功能即服务(FaaS)和现场执行。
低内存利用率,有助于在需要多个容器的微服务架构部署中优化容器密度。
较小的应用程序和容器映像占用空间
配置通过单个属性文件完成。Red Hat称,代码简化了80%的常用用法,并为其他20%的案例提供了灵活性。Quarkus使用的库包括Eclipse MicroProfile和Vert.x,JPA / Hibernate,JAX_RS / RestEasy和Netty。Quarkus为第三方框架作者提供了扩展框架,以扩展Quarkus。

。Quarkus使用Oracle的GraalVM虚拟机编译为本机二进制文件,与运行在JVM上的传统应用程序相比,应用程序能够以更少的RAM运行并且启动速度更快,从而有利于无服务器部署。

使用Quarkus进行开发需要Java IDE,JDK 8或更高版本,Apache Maven 3.5.3或更高版本,以及本机应用程序GraalVM。应用程序在Maven POM XML文件中定义。

SAP构建自己的Java发行版

OpenJDK的下游版本支持Windows,Linux,MacOS和Docker

SAP发布了一个名为SapMachine的开源Java“友好分支”。

该项目于2017年12月开始,作为SAP维护的OpenJDK的下游版本。SAP客户和合作伙伴可以使用它来运行他们的应用程序。OpenJDK是Java的开源版本。

[ 15个Java框架,为开发人员提供了帮助。• 哪些工具支持Java的新模块化功能。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
尽管它是另一个Java发行版,它可以与Oracle和IBM 等公司的其他Java产品竞争,但SAP坚持认为它不打算分裂Java社区。“我们要强调,这显然是’友好的分叉’。SAP致力于确保Java平台的持续成功,“该公司写道。SAP指出它在JCP(Java Community Process)执行委员会中服务,并为OpenJDK做出了贡献。

SapMachine版本与OpenJDK版本一致。目前的生产版本是SapMachine 11长期支持。接下来是SapMachine 12的发布,这是Java Development Kit(JDK)12的一个实现,将于3月19日发布。之后,将在SapMachine 13上开始工作。

Windows,Linux和MacOS支持SapMachine。Docker镜像适用于大多数版本。发行版已通过Java Compatibility Kit,用于证明与OpenJDK的兼容性。从JDK12开始,SAP将为几个Java版本维护SapMachine的活动分支。

在哪里下载SapMachine
SapMachine的生产版本可从SAP获得。

BetaJanet语言希望采用富有表现力的编程

基于C99的Lisp实现借用了Lua和Clojure,可用于IoT应用程序

Janet是一种功能性和命令式语言以及字节码解释器,正在开发作为表达代码的通用平台。该语言以电视节目The Good Place中的角色命名,由核心库,解释器,编译器和汇编器组成。

在之前的C标准C99中实现的Lisp版本,beta Janet语言采用了Lua和Clojure的功能。它可以作为脚本语言或嵌入其他程序。Janet适用于原型设计,可在Windows,MacOS和Linux上运行,并且可以移植到其他系统。

[ 函数式编程入门,包括F#中的示例。•了解F#中的新功能。•发现使用F#的14个理由。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
创作者Calvin Rose表示,虽然它适用于物联网和嵌入式开发,但它拥有大约375KB的占地面积,可用于最大的完整版本,适用于非常小的设备。

珍妮特的功能包括:

一个二进制文件,旨在提供最小的设置。
垃圾收集。
通过一个二进制文件设
Python样式的生成器,实现为普通宏。
可变和不可变的数组和字符串。
通过抽象类型和C函数与C的互操作性。
功能强大的命令式标准库。
互动环境
read-evaluate-priont循环(REPL)。
核心库中有300多个函数和宏。
在测试版中,珍妮特可以用于小型项目和“热切的黑客”,罗斯说。

计划要求增加测试覆盖率,改进文档并最终确定C API。使用此API,Janet应该更容易嵌入到其他项目中。绘图板上还有对C库的绑定,可能是多线程,也可能是外部函数接口(FFI)库。

哪里可以下载珍妮特
你可以从GitHub 下载Janet。

[ 在这个全面的12部分课程中,从初学概念到高级设计模式学习Java!]

Gluon出货JavaFX 12

Java富客户端应用程序平台的临时发布提供了一长串错误修复

移动解决方案提供商Gluon发布了JavaFX 12,这是该公司第二版Java富客户端技术,因为JavaFX与JDK(Java开发工具包)分离。

[ 15个Java框架,为开发人员提供了帮助。• 哪些工具支持Java的新模块化功能。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
JavaFX 12遵循Gluon于2018年9月发布的JavaFX 11.JavaFX 12运行时可用作特定于平台的SDK,作为JMOD归档文件,以及Maven Central存储库中的一组工件。JavaFX 12的主要功能包括:

用于子类化的新的受保护VirtualFlow方法。
实现WebView的加速组合。
在GraphicsContext中添加API以控制图像平滑。
重新引入JFR(Java Flight Recorder)脉冲记录器。
重构javafx.swing实现以删除不需要的抽象层。
使用xdg-open工具获取Linux系统上的默认Web浏览器。
支持鼠标前进和后退按钮。
JavaFX 12版本还修复了许多错误,例如Ubuntu 16.04和Debian 9上的模糊字体问题,以及MacOS X上的慢速鼠标滚动。在JavaFX 13发布之前,JavaFX 12将支持六个月.JavaFX 11是目前的长期支持发布。

JavaFX是由Sun Microsystems于2007年5月创建的富媒体技术。该项目于2010年甲骨文收购Sun时转移到Oracle。一年前,Oracle决定将JavaFX与JDK分离 ,以便更容易采用并吸引新的参与者开发。

您可以从Gluon JavaFX项目网站下载JavaFX 12。JavaFX是根据GPL v2 plus Classpath许可的。

OpenJDK提案解决了新功能关键字的匮乏问题

为了兼容性和可读性,Java增强提议包含带连字符的关键字

OpenJDK语言增强提议建议使用带连字符的关键字来表示新功能,目的是确保兼容性和可读性,因为合适的关键字令牌变得越来越稀缺。

关键字管理的Java增强提议草案指出,Java语言中的新功能通常需要新的关键字,但新的关键字可能会破坏现有程序。为了平衡可读性和兼容性,可以使用新类型的关键字,即带连字符的关键字,它是标识符和预先存在的关键字的组合。举的例子是non-final,break-with和s hort-circuit。

[新的Java即将到来!了解Jakarta EE企业Java路线图。| 新的Java版本在这里!了解你需要知道的一切有什么用Java JDK 11的新功能和什么的Java EE 8的新功能。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
关键字是一系列的ASCII字符,如class,else和int-即开发者不得在Java程序标识符来使用。Java使用一小组关键字来表示基本语言功能。关键字管理提议不提出任何新的Java语法元素或Java语法优化,以便编译器开发人员轻松实现。该提案有以下目标:

探索Java语言设计者的语法选项以表示新功能。
解决关键字令牌的“永久”问题,这些问题变得恐慌和昂贵,使语言设计者限制或破坏Java编程模型以适应可用的关键字。
向语言设计师提供适合不同功能的关键字样式。
该提案指出Java设计人员面临的挑战是,为Java 1.0功能构思的关键字很少适用于新功能。该提案确实存在风险,因为一些开发人员可能不喜欢带连字符的关键字,而其他人可能会接受这个想法,但不喜欢针对特定语言功能而出现的带连字符的建议。预计这种风险会随着时间的推移而减少。

关键字提案目前不针对包含它的特定Java版本。该提案紧随其后的另一个Java增强提议,即在Java中引入记录和密封类型。

Oracle:Eclipse不能使用Java EE商标

但Oracle仍然致力于与Jakarta EE工作组和Jakarta EE规范流程合作

Java EE(企业版)迁移到Eclipse Foundation已经遇到了一些问题,Oracle不允许基金会使用Java规范商标。然而,正如一篇博客所暗示的那样,Eclipse执行董事Mike Milinkovich坚持认为Java EE并没有死亡,甲骨文也没有将其杀死。

[ 15个Java框架,为开发人员提供了帮助。• 哪些工具支持Java的新模块化功能。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
经过数月的“诚信”谈判,Eclipse基金会和负责Java EE的Oracle一直无法就使用Java EE规范当前使用的Java商标或修改javax包命名空间的条款达成一致,上周末公告说。Oracle的Java商标是该公司的财产,Eclipse无权使用它们。Milinkovich引用了Eclipse Foundation的Jakarta EE企业Java实现的含义:

使用javax包名称空间的Jakarta EE组件规范可能会从未来的Jakarta EE平台规范中完全省略。
该javax包名称空间可雅加达EE规范内使用,但也可以使用仅“按原样”。不允许修改。继续使用javax包命名空间的Jakarta EE规范必须保持与相应Java EE规范兼容的TCK(技术兼容性工具包)。
使用javax命名空间的任何规范将继续具有与以前相同的Java EE容器和认证要求。声称使用javax命名空间符合任何版本的Jakarta EE规范的实现必须测试并分发嵌入由Oracle许可的经过认证的Java SE(标准版)实现的容器。
规范必须从“Java EE”命名约定更改为“Jakarta EE”约定,包括诸如EJB(Enterprise JavaBeans),JPA(Java Persistence API)和JAX-RS(用于RESTful Web服务的Java API)等首字母缩略词。
当被问及由于与甲骨文的分歧而产生的潜在平台不兼容性时,Minkovich说需要开发这些技术问题的解决方案。雅加达EE工作组将于本周开始与社区进行讨论。例如,二进制兼容性可以通过在构建时,部署时或运行时执行字节码修改的工具来实现和提供。

Milinkovich预计未来的Java EE工作将不会使用javax命名空间,而是使用新的命名空间,例如jakarta。尽管遭遇了挫折,但仍将继续将Java EE迁移到Eclipse。Milinkovich指出,已经取得了一些进展,例如Oracle向Eclipse 提供了GlassFish应用服务器,它已经作为Java EE参考实现。批准的雅加达规范将在Eclipse许可下提供。继续在今年晚些时候发布雅加达EE 8版本。超越雅加达EE 8,计划雅加达EE 9。

甲骨文表示,它仍然致力于与Jakarta EE工作组和Jakarta EE规范流程合作,以创建Jakarta EE平台。但该公司承认它无法达成商标和使用协议javax。Eclipse于2017年9月继承了Oracle的企业Java开发。

Dubbo Java RPC项目毕业于Apache顶级状态

高性能,轻量级RPC框架提供容错,负载平衡,运行时路由以及自动服务注册和发现

Apache Software Foundation已将其基于Java的远程过程调用(RPC)框架Apache Dubbo从孵化器升级到顶级项目状态。Dubbo包括基于接口的远程调用,容错,智能负载平衡以及自动服务注册和发现。

[ 15个Java框架,为开发人员提供了帮助。• 哪些工具支持Java的新模块化功能。| 使用InfoWorld的App Dev Report简报了解编程中的热门话题。]
与其他RPC系统一样,Dubbo基于定义服务的概念,即指定使用其参数和返回类型远程调用的方法。在服务器上,Dubbo实现接口并侦听客户端调用。在客户端上,存根提供与服务器相同的方法。Dubbo的其他特性包括:

支持多种负载均衡策略,下游服务状态用于减少延迟并提高系统吞吐量。
支持可以离线或在线检测服务的服务注册表。
微内核和插件设计,可通过第三方实现扩展到核心功能,包括协议,序列化和传输。
运行时流量路由,可以对其进行配置,以便根据规则路由流量。这支持包括数据中心路由和蓝绿部署在内的功能。蓝绿色是与AB测试类似的devops的变更管理策略。
可视化服务治理,包括查询健康状况,服务元数据和统计信息等任务的工具。
运行Dubbo的最常见方式是在Spring Framework中,尽管Dubbo也可以在API配置中运行。达博由电子商务公司阿里巴巴开源,并被包括中国人寿和中国电信在内的其他公司使用。

您可以从Apache网站下载Apache Dubbo。