首页 > 编程语言 >2023.5 Java 2022趋势

2023.5 Java 2022趋势

时间:2023-02-05 10:55:05浏览次数:120  
标签:创新 Java 2022 Spring 2023.5 市场 MicroProfile

InfoQ Java 编辑团队做的2022年Java 领域内的新型技术采用趋势如下:

将所有 OpenJDK 的下游发行版放到一个标签中,即 Java Community JDK,并将它们放到早期大众阶段。这个清单包括:Amazon CorrettoAzul ZuluOpenJDK的微软构建版本BellSoft Liberica JDKEclipse TemurinIBM Semeru阿里巴巴龙井

Java 17 已经进入了早期采用者阶段,因为一些框架,尤其是 Spring,已经将 Java 17 作为基线。 

Spring Native 被移除,取而代之的是更通用的原生 Java。这是因为最初于 2020 年推出并休眠了两年的Leyden项目于 2022 年 5 月重新启动,VMware 决定用 GraalVM 取代Spring Native项目来支持生成原生镜像。

经过一年多的开发,Spring Framework 6.0 和 Spring Boot 3.0 都于 2022 年 11 月发布,采用了 Java 17+和 Jakarta EE 9 基线。这些版本还通过Micrometer内嵌了可观察性。

Jakarta EE 10于 2022 年 9 月 22 日向 Java 社区发布,对 20 多个规范进行了更新,并增加了一个新的Core Profile,作为现有平台Web Profile的补充。

无反射框架成为一个新趋势,通过消除反射来缩短应用程序启动时间和减少内存消耗。Quarkus、Micronaut、Spring Native 和 Jakarta CDI Lite 等框架就是这方面的例子。

云是所有解决方案的新目标。我们看到了向各种环境的迁移,不仅是基础设施即服务(IaaS),还包括任何能够提升 Java 开发者效率并为操作层提供更多抽象的解决方案。

从软件开发者的角度来看,无服务器带来了可伸缩性和简单性。为了利用这些优势,我们可以看到一些解决方案转向了原生。

在 JavaOne 2022 上宣布将 Graal JIT 编译器和原生镜像合并到 OpenJDK 中,GraalVM 的许多技术都很激动人心,但对于许多 Java 开发者来说它们很难使用。将这些关键特性合并到 OpenJDK 中可以让 Java 开发者更容易地使用它们!

来源: https://www.infoq.cn/article/vl9UfPTm6oOPAUgYpN5c

Micronaut是比较新的全栈微服务框架,由Grails框架的创建者于2018年引入。

Micronaut提供了构建功能全面的微服务应用程序所需的所有工具。同时,它旨在提供快速启动并减少内存占用。通过使用Java注解处理器执行DI,创建面向切面的代理(而不是运行时)配置应用程序,可以实现此目标。

Micronaut中的许多API均受Spring和Grails的启发。这无可厚非,毕竟这样有助于快速吸引Spring及Grails的开发人员。Micronaut提供了诸如Micronaut HTTP,数据,安全性和各种其他技术的连接器之类的模块。但是,这些库的成熟度仍落后于Spring的同类库。


Quarkus是Red Hat在2019年引入的Kubernetes原生Java框架。它基于MicroProfile,Vert.x,Netty和Hibernate等标准构建。

Quarkus的目标是通过在容器编排平台中允许更快的启动,较低的内存消耗和近乎即时的扩展来使Java成为Kubernetes中的领先平台。Quarkus通过使用自定义的Maven插件在编译时而不是在构建时执行尽可能多的工作来达到此目的(在Quarkus中,这也称为编译时启动)。


MicroProfile项目立项于2016年,与其前身JEE一样,MicroProfile是可以由各种供应商实施的规范。到目前为止,MicroProfile规范已经提出了多种实现方式,最著名的是Payara Micro和Helidon MP。

Payara是从GlassFish派生的Jakarte EE服务器,而Payara Micro是其MicroProfile实现。Helidon是Oracle在2018年启动的运行时,提供了自己的MicroProfile规范实现。

由于它们是从JEE派生的,因此MicroProfile规范已经很成熟并且有据可查。但是,缺少用于现代技术的连接器或替代诸如Spring Data和Spring Security之类的库的方法。


Geoffrey A. Moore(杰弗里.摩尔)的Crossing the Chasm(跨越鸿沟)是一本讨论高科技创新的经典书籍,有3个版本(1991,1999,2014),后面版本主要是修订了一些案例,基本理论框架不变。书中提出非连续性创新(discontinous innovations)是指需要最终用户改变行为的创新(和创新的技术复杂性、难度无关),这是颠覆市场的创新,能够带来巨大商业价值。比如摩拜单车改变了我们短距离出行的习惯,但技术并不复杂;比如LED技术可以得到诺贝尔奖,但终端用户使用灯时并没有太大改变,是连续性创新。非连续性创新和连续性创新不是绝对的,有时候它们之间是渐变的。 鸿沟是非连续性创新在走向实用主义消费者时,由于用户的风险偏好不同而产生的。市场中用户(可以是企业用户,也可以是个人用户)对非连续创新(即要求他自身进行改变的创新)风险接受程度不同导致了非连续创新的不同发展阶段,也直接导致了鸿沟的产生(这个理论来源于社会学在上世纪60年代的研究)。 

在《跨域鸿沟》一书中,将技术采用生命周期分为 5 个阶段:

  • 阶段 1 :早期市场(发明家)
  • 阶段 2:早期市场(技术发烧友)
  • 阶段 3:早期主流市场(实用主义者)
  • 阶段 4:后期主流市场(保守主义者)
  • 阶段 5:滞后使用者(怀疑主义者)

对于任何一家公司而言,进入主流市场意味着更大的市场份额,更高的利润,然而在早期接受者和早期大众市场之间,存在一条让无数高科技公司泯灭的「鸿沟」,如下图所示。

对比早期市场(技术发烧友)和主流市场(实用主义者),不仅仅是用户本身对技术偏好或掌握的差别,而是两个市场的根本性差别。对于早期市场的技术发烧友而言,他们并不需要完整的解决方案。而对于实用主义者而言恰恰相反,他们不只关注完整的解决方案,还关注完整解决方案的成功案例。

找准某组用户的「痛点」,切割出细分市场。用「big fish, small pond」的策略,去成为细分市场的领导者。

在找寻细分市场的时候,不要去关注细分市场的用户规模,而是关注细分市场下原有用户的痛苦程度,越痛苦,越好。

在细分市场中,找到最重要的标杆客户,将他作为你诺曼底登陆的登陆点和大本营,解决标杆客户真正痛苦的问题。而随着某个特定领域细分市场的占据,借助市场的「保龄球效应」,我们能够占据相邻的细分市场,获得梦寐以求的高速增长和大市场。


标签:创新,Java,2022,Spring,2023.5,市场,MicroProfile
From: https://www.cnblogs.com/doit8791/p/17093025.html

相关文章

  • java如何全局捕获异常
    提问: java在进行全局捕获异常时,总是不起作用,无法正常捕获异常,这个如此处理?具体代码如下全局捕获异常的类ExceptionHandlerAdvicepackagecom.xjc.common.handler;im......
  • 读Java实战(第二版)笔记01_Java的变化
    1. 语言的演变1.1. C和C++仍然是构建操作系统和各种嵌入式系统的流行工具1.2. Java和C#等安全型语言在诸多运行资源不太紧张的应用中已经取代了C和C++1.3. Java可......
  • Hello 2022
    “YeahIt'son.”tLLWtG的Blog开通了。看技术实现2022年,tLLWtG总算有个地方可以好好写点东西了。戳这里==>tLLWtGBlog正文接下来说说搭建这个博客的......
  • javascript-cnblog
    1.原型和原型链1.1原型js中,函数可以有属性,每个函数都有一个特殊的属性叫做原型prototype(原型)1.2原型链当我们访问某个对象的属性时,如果该对象本身没有,就会到对象......
  • Forest – 开源的 Java HTTP 客户端框架
    什么是Forest?Forest是一个开源的JavaHTTP客户端框架,它能够将HTTP的所有请求信息(包括URL、Header以及Body等信息)绑定到您自定义的Interface方法上,能够通过调......
  • 如何用k8s运行、部署Java项目
    k8s的常用命令  kubectlgetingress-nprodkubectlgetdeployment-nprodkubectlgetpod-nprodkubectlgetservice-nprodkubectllogs-f-nprod......
  • 打包JavaScript的代码 (ES67891011 转为 ES5)
    NodeJS安装必要的工具包#初始化项目npminit-yes##安装babelbrowserify等包npmibabel-clibabel-preset-envbrowserify-D使用##babel转换指定文件夹下的代......
  • 2022game总结
    游戏总结-对马岛之魂 9/10-战神410/10-战神5   9/10-地平线2西之绝境   10/10-stray 8/10-银河护卫队 8/10![GhostofTsushima_20220311234141](......
  • Java 实例 - int数组转化成List简便的方法
    如下:@Testpublicvoidtest5(){int[]array={1,2,5,5,5,5,6,6,7,2,9,2};/*int[]转list*///方法一:需要导入apacheco......
  • JavaScript学习笔记—DOM:通过属性读取样式
    读取的样式都是只读,无法修改获取元素内部的宽度和高度(包括内容区和内边距)element.clientHeightelement.clientWidth获取元素的可见框的大小(包括内容区、内边距和边框)......