☘️Java程序猿的2023年生态报告,关键词是【戏多】

前话

伴随着行业的不景气,无论是前端工程师还是服务端工程师都收到了不小的影响。当然,我也听说了一些有意思的梗。

  1. "前端已死"的"谣言";
  2. 大厂的"开猿节流"、"降本增笑"以及屡次的宕机的故事;
  3. Java沦落到语言排行榜第四位;
  4. 某公司对员工"先降薪"再"裁员"的骚操作,可以少付好多钱;
  5. 某公司领导带头离职后消失,帮助公司变相裁员;
  6. 某公司将正式员工转为外包人员,变相裁员;
  7. 某公司和正式员工重新签订合同,将基本工资调低,其他的算成绩效工资;
  8. 某公司......

让我想到了"群魔乱舞"这个词语。

Java能做AI项目么?

行业在变化,编程语言也在变化,只不过我们所看到的可能只有Java8和spring。

其实,在2020年,Oracle已经开源了Java机器学习库Tribuo,这是一个开源ML库。它可以从其他系统和语言部署模型,并提供了指向ONNX RuntimeTensorFlowXGBoost的接口。其中,对 onnx 模型的支持允许在 Java 中部署一些 Python 软件包(例如 pytorch)训练的模型。

当然,撼动不了python的地位。

Java版本

其实JDK21的虚拟线程还是不错的,如果激进一些,直接上JDK21也是不错的。现在用JDK8的项目也在减少了,我在新项目中使用的技术栈也很少考虑JDK8,个人常用的技术栈如下:

  1. JDK17 + Quarkus + PG;
  2. JDK17 + Quarkus Reactive + PG;
  3. JDK21(虚拟线程) + Quarkus + PG;
  4. JDK21(虚拟线程) + Vert.x + PG;

构建工具

还是以Maven为主。

IDE

以IntelliJ为主。

主流数据库

我更喜欢PG。

中国地区更喜欢MYSQL。

PHP、JAVA的程序员喜欢MYSQL。 Rust、GO的程序员更喜欢PG。

性别

程序猿远比程序媛多,这在服务端很明显。

AI 助手

AI助手已经不是一个罕见的功能了,而使用AI成为一项技能。

云开发

使用的操作系统

Window还是主流。

移动平台

代码质量管理

Java报告

读了一些行业报告,主要是关于JAVA的,主要总结出几点

  1. Java仍然是企业应用的主力军;
  2. Java应用的现代化改造是重中之重;
  3. Java应用正在往云原生迁移;
  4. 技术栈不断发展;

其中关于技术栈如下

我个人比较倾向于Quarkus、Vert.x这类技术,对于全栈的Vaadin Flow不太感兴趣,而且国内来说,其实前后端分离还是主流。

当然,我们也要晓得Vaadin Flow也是比较受国外程序喜欢的全栈框架,写法贴一下,有兴趣的可以感受下。

java 复制代码
package com.example.application.views.main;

import com.vaadin.flow.component.Key;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.checkbox.Checkbox;
import com.vaadin.flow.component.html.H1;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.router.Route;

@Route("") 
public class MainView extends VerticalLayout { 

  public MainView() {
    VerticalLayout todosList = new VerticalLayout(); 
    TextField taskField = new TextField(); 
    Button addButton = new Button("Add"); 
    addButton.addClickListener(click -> { 
      Checkbox checkbox = new Checkbox(taskField.getValue());
      todosList.add(checkbox);
    });
    addButton.addClickShortcut(Key.ENTER); 

    add( 
      new H1("Vaadin Todo"),
      todosList,
      new HorizontalLayout(
        taskField,
        addButton
      )
    );
  }
}

附录

  1. InfoQ 2023 年趋势报告:Java 篇
  2. 2023 Java 企业市场报告
  3. 2023 State of the Java Ecosystem
  4. 2023 开发者生态系统现状
相关推荐
喜欢流萤吖~1 天前
微服务架构解析:从单体到分布式
spring boot·后端
小江的记录本1 天前
【分布式】分布式核心组件——分布式锁:Redis/ZooKeeper/etcd 实现方案(附全方位对比表)、优缺点、Redlock、时钟回拨问题
java·网络·redis·分布式·后端·zookeeper·架构
好家伙VCC1 天前
**发散创新:用Rust实现基于RAFT共识算法的轻量级分布式日志系统**在分布式系统中,**一致性协议**是保障数据可靠
java·分布式·python·rust·共识算法
小江的记录本1 天前
【分布式】分布式核心组件——分布式ID生成:雪花算法、号段模式、美团Leaf、百度UidGenerator、时钟回拨解决方案
分布式·后端·算法·缓存·性能优化·架构·系统架构
HTTP帕克猴子1 天前
为什么现代网站越来越依赖“中间层架构”?
架构
晔子yy1 天前
【JAVA探索之路】从头开始讲透、实现单例模式
java·开发语言·单例模式
GetcharZp1 天前
拒绝低效!这款神器,让你的终端效率起飞 | 深度解析 fzf 终极指南
后端
chools1 天前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
懂懂tty1 天前
CRA 迁移 Rspack(实战)
前端·架构
李白你好1 天前
TongWeb EJB 反序列化生成工具(Java-Chain 插件)
java·安全