Java语言现状 (21年初20年底)

2023-11-08 09:48

本文主要是介绍Java语言现状 (21年初20年底),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IntelliJ IDEA 发布了一项最新调查,中国有 51% 的程序员使用 Java ,这个比例全球最高,同时还有一些其他有趣的数据

今年,Java 达到了一个令人难以置信的里程碑,并达到了 25 岁的高龄

他们在哪里?

第一个问题是:“大多数 Java 开发人员都在哪里?”

根据市场研究和分析团队评估,当今世界上有大约 520 万将 Java 作为主要开发语言的专业 Java 开发人员

但是如果包括把 Java 作为副语言的开发者,这个数字可能接近 680 万

Java 开发人员最多的地方是亚洲,大约有 250 万的开发人员使用 Java 作为他们的主要编程语言

北美和欧洲的数字远不及亚洲,你可能会问“为什么呢?”

我们也有同样的想法,所以更深入地研究了这些区域,看看这些数字究竟是从哪里来的

具体在哪里

再深入一步,我们研究了 Java 开发人员最多的各个国家,调查了为什么这些国家在特别青睐 Java 而不是其他语言

下图显示了每个国家 / 地区使用 Java 作为主要开发语言的人员占比,中国韩国最高,分别约为 51%和 50%

数据取自《2020 年开发商生态系统状况调查》

专家分析

Java 在前 6 个国家中如此受欢迎

可能是因为:Java 的免费使用,政府支持和开源

中国西班牙巴西尤其如此

它是在中国印度进行 Android 移动开发的基础,用 Java 构建手机应用程序非常普遍,这可能是在印度使用率高的原因

德国也非常高,这可能归因于 Java 是德国最受工程师欢迎的语言,因为它被用于为许多行业构建常用的应用程序

大多数企业服务都依赖 Java 来开发应用程序,这些程序用于支持业务的日常运行,比如工资单、库存管理、报告等等

德国还有一个很大的金融系统,大量使用 Java 开发本国技术,比如交易机器人、零售银行系统和其他金融行业需要的应用程序

与之相比,美国没有那么高比例的 Java 用户,这也有道理

他们仍有大量的技术栈可供选择,往往会选择可以用来快速创建和测试应用的语言,所以可能不需要 Java 的强大功能和稳定性

行业见解

根据 2020 年开发者生态调查,超过三分之一的专业开发者使用 Java 作为主要语言

Java 仍然是仅次于 JavaScript 的专业开发者的第二大主要语言

专家分析

JavaScript 和 Java 占据主导地位并不令人惊讶,Java 开发者经常用 JavaScript 编写前端或者任何脚本文件

Python 排名第三可能是由于机器学习的普及

web 是开发者生态的重要组成部分,因此 JavaScript、HTML 和 CSS 以及 PHP 将永远有稳固的地位

SQL 也将一直存在,因为没有多少东西不需要数据库

c++ 是一种可靠的语言,被用于许多嵌入式应用程序,所以它会在排行榜存在很长时间

然而 c# 似乎正在失去优势,它和 Java 此消彼长,因为它们在功能方面非常相似

至于为什么认为 Java 的地位如此之高 —— 大多数企业的业务服务都依赖 Java 来运行

不只是 It 部门 —— 几乎每个公司,无论是销售、制造还是银行,都将 It 服务作为其基础设施的一部分

而这些服务 (如工资单或库存管理) 通常在后端使用 Java 构建,所以 Java 才这么常用

用 Java 开发的软件类型

根据《开发者生态 2020 》调查的结果,Web 服务是 Java 最流行的领域,占 52%

专家分析

令人惊讶的是,Java 在智能商务 / 数据科学 / 机器学习中也如此流行

其他的不足为奇,因为 web 服务中的后端通常是 Java 的,当他们需要后端和数据库一起工作时,他们常常会选择 Java

使用 Java 的热门行业

Java 程序员主要在 IT 服务(42%)和金融与金融科技(44%)中工作,但这并不是说 Java 不用于其他行业

Java 工具

Java 版本

Java 8 仍然是最受欢迎的版本,有 75%的 Java 开发者正在使用它

有几个因素导致 Java 8 如此流行:首先,它具有 Java 开发者需要的一切,它具有 lambda 和 streams,并且是一个易于使用的好版本

而且,大家不太情愿迁移到 Java 9。Java9 引入了一些重大的架构变化,人们担心这些变化会破坏他们用 Java 8 构建的应用程序

最重要的是,Oracle 推出了每两年发行一次的制度,因此并非所有版本都长期受支持,Java 9,Java 10,Java 12 和 Java 13 仅受 6 个月支持,这可能就是它们都只有这么少用户的原因

Java 13 之所以也很高,是因为调查时,它是最新版本,这个数字可能会在几个月后下降

Java 11 于 2018 年问世,它是最近一个被长期支持的版本。许多企业仍未迁移到它,因为他们担心超越 Java 9(随着体系结构的更改)会破坏一切

而且Java 11 引入了新的许可和订阅,如果你使用了错误的版本,以错误的方式,Oracle 还会罚款

导致许多开发人员不升级 Java 11 的最后一个重要因素是,Java 11 没有太多令人兴奋的新特性,升级的风险大过新版本的功能

Java 17 将是下一个长期支持的版本,它带来了大量的新特性,但是直接从 Java 8 更新到 Java 17 也会有问题

我的预测是,下一个长期版本 Java 17 将比上一个 LTS (长期支持版本) Java 11 更受欢迎。如果你在为 Java 17 做准备工作

我建议先将你的代码库更新到 Java 11,然后再更新到 Java 17,以避免大问题

流行的服务器应用

在过去的三年中,Apache Tomcat 仍然是最受欢迎的服务器应用

而 JBoss EAP 和 WildFly 的使用者减少了一半。

专家分析
Jetty 位居第二,确实低得令人惊讶

可能是某些正在使用 Spring Boot 和其他微服务框架的开发人员没有意识到他们在不知不觉中使用到了 Tomcat 或 Jetty

前五名 Web 框架

2018 年和 Spring MVC 一样流行的 Spring Boot,到 2020 年变得更加流行

前 5 名 IDE / 编辑器

IntelliJ IDEA 的市场份额从 2018 年的 55% 上升到 2020 年的 72%

而其他 4 个的使用量则有所下降,这是开发者生态系统调查 (2018 年和 2020 年) 报告的结果

转自作者Valeriia Karpenko

传智無彦祖(修改)

这篇关于Java语言现状 (21年初20年底)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/369070

相关文章

Spring IOC的三种实现方式详解

《SpringIOC的三种实现方式详解》:本文主要介绍SpringIOC的三种实现方式,在Spring框架中,IOC通过依赖注入来实现,而依赖注入主要有三种实现方式,构造器注入、Setter注入... 目录1. 构造器注入(Cons编程tructor Injection)2. Setter注入(Setter

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添