JetBrains2023年度报告,编程领域的风向标

前言

JetBrains是一家位于捷克的软件开发公司,有很多知名的开发IDE都是他们家的,比如IntelliJ IDEA、CLion、PyCharm、WebStorm等等,还有Kotlin编程语言也是JetBrains开发的,后来成为Android官方开发语言。

自2017年JetBrains发布第一个年度报告以来,各种指标也备受开发人员关注,是编程领域的风向标。

2023年度报告是JetBrains汇集了来自全球 26,348 位开发者的洞察,其中也有我的一份。

这份报告涵盖的主题也很多,包括编程语言、工具、技术等等,甚至包括年龄和收入,并增加了人工智能发展趋势,包括开发者对于AI的接受度和顾虑等。

下面一起来看看这份2023年度报告中有哪些值得我们关注和有趣的地方。

原文:https://www.jetbrains.com/zh-cn/lp/devecosystem-2023/?map=2&map=2

编程语言

编程语言是开发者的工具箱,不同的工具用来处理完成不同的工作,而什么样的编程语言更出色,也一直是广大开发者讨论的一个热门话题。
image.png

Objective-C 客观来讲已经退休了

过去六年,Objective-C 失去了三分之二的用户,似乎即将走到生命的尽头。在过去一年中,只有不到 2% 的程序员至少使用过一次,只有 11 名调查参与者报告说该语言是他们的主要语言。Objective-C 使用率的下降速度甚至超过了 COBOL 和 Perl。

这种语言自 1984 年推出以来一直发展良好,直到 Apple 于 2014 年发布其继承者 Swift。由于存在其他跨平台语言,例如 Kotlin、Dart 等,iOS 开发者的选择余地很大,几乎没有理由继续使用 Objective-C。

而iOS开发者在国内的处境也越来越难了啊…

对 Rust 的信任:成长的故事

Rust 是今年唯一创下受欢迎程度新纪录的常用语言。Rust 立志以其严格的安全性和内存所有权机制取代 C++,最初可能会击败 Go,因为六分之一的 Go 用户在考虑采用 Rust。Rust 与 Scala 一样,是最少程序员想要迁出的语言。

Rust YYDS。

JavaScript 的受欢迎程度略有下降

去年,排名前三的语言在受欢迎程度方面不相上下。今年,它们之间仍然没有太多差距,Java 重夺第一名宝座,JavaScript 在下降三个百分点后跌至第三。

似乎一些最初将 TypeScript 与另一种语言结合使用的程序员正在逐渐过渡到只使用该语言。2020 年,有 47% 的 TypeScript 用户将它与 JavaScript 一起使用;今年,这一数字下降到 38%。可以合理地假设,未来 JavaScript 的份额将进一步下降几个百分点。

在 JavaScript 用户中,想要学习另一种语言的程序员比例要高于其他语言的程序员。这也增大了用户流失的几率,而 TypeScript 将从用户迁移中获益。
image.png

最少想要迁出的语言

呈上,Scala 和 Rust 是最少程序员想要迁出的语言,Kotlin排在第6位,Java排在第15位,有点意思。image.png

按主要语言的高薪员工比例

更有意思的是,使用Kotin的高薪员工比例排在第3位,总所周知,使用Kotlin的基本都是Android开发者,那么看来其他地区的Android开发者要比国内挣的更多啊…
image.png

受众特征

就业情况

image.png

职位占比

image.png

年龄段

image.png
年龄结合职位来看,取交集,年轻高潜在哪都是香饽饽啊…

30 岁以下开发者比例

image.png
日本最少?特意查了下,因为老龄化和少子化原因,IT行业平均年龄在40岁左右…

教育水平

image.png

公司规模

image.png

工资

image.png
image.png

性别分布

近三年,女性开发者比例一直没变,但是男性比例降了,这就有点微妙了啊…
image.png

AI

看法

很多人有顾虑,但是“顾虑归顾虑,不影响我使用啊”。
image.png

使用AI编码频率

开发者使用 AI 助手的最常见方式是使用自然语言询问软件开发相关一般问题。
image.png

AI对代码生成的影响

image.png
虽然五分之三的受访者认为 AI 编码工具将从根本上改变软件开发就业市场,但只有 13% 相信 AI 将完全取代开发者编写代码。尽管如此,大约三分之一的人相信软件工程一定会变成提示工程。

总体看来,开发者相当乐观,相信 AI 将成为协助编写代码的新工具,而不是开发者被 AI 所取代。

使用的AI工具比例

image.png
看来大家还是使用ChatGPT和Copilot比较多,更倾向于文本类生成和代码生成。

AI处理工作比例

前提:假设 AI 助手的表现与人类相似。
image.png
emmm,主要还是用来完成一些不太重要的活,代码还是要自己来写,从心理学上讲,这可能是在自我保护啊😆

虽然现阶段AI编写的代码确实还达不到百分百信任,但是未来肯定是可以达到的,然后AI再相互review,好像就没我什么事了啊…(完犊子)

测试

测试类型

image.png
无的这一部分不就是线上测试吗🐶
image.png

测试技术

image.png

测试和开发比例

image.png

生活方式

为什么选择成为一名软件开发者?

image.png
这一项在国内偏差很多…

找工作

image.png
还是内推靠谱啊…

工作中哪些比较重要

image.png
我悟了…如何让公司也悟下这条…

学习的编程语言比例

image.png
Python yyds,但是TypeScript的势头也很猛。

学习动机

image.png
不适用国内。

学习途径

image.png
你悟了吗?

日常

开始一天的工作时,最先打开的

先摸一会是吧,看来大家都是一样的😆
image.png

当 IDE 死机时,我心里会想

先摸一会。
image.png

周末卷吗

image.png

开发设备

image.png

显示器数量

image.png

设备内存

image.png
怎么还有人不知道的…

操作系统

image.png

玩游戏吗

image.png

开发

开发类型

image.png

是否开发跨平台

image.png

跨哪些平台

桌面应用程序:
image.png
移动应用程序:
image.png

移动开发比例

image.png
大多数从事移动开发的开发者在开发 Android 应用,超过半数参与 iOS 开发。

跨平台框架

image.png

保持高质量代码的最大障碍

image.png
想起来某脉上说,为什么大厂也有屎山,高赞回答:

  1. 因为只允许有写一遍就成的时间
  2. 因为能用就行,需求都排不过来

最后

JetBrains2023年度报告就介绍到这里,我希望大家不只是看乐子,还能从这份报告中有一些自己的认知和思考。

比如:

  • Kotlin和Swift正在移动开发领域大杀特杀;
  • 学习TypeScript和Rust的人越来越多;
  • 大部分人都是在中小公司工作;
  • 一天的工作从先摸鱼开始;
  • 接受并学习跨平台;
  • 积极去拥抱AI;
  • 如何学习;
  • 等等;

这份报告有非常多的结论,这些结论的背后原因是值得我们去思考的,甚至代表着机会。

加油吧各位——yechaoa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/219304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM之jmap java内存映射工具

jmap java内存映射工具 1、jmap jdk安装后会自带一些小工具,jmap命令(Memory Map for Java)是其中之一。主要用于打印指定Java进程(或核 心文件、远程调试服务器)的共享对象内存映射或堆内存细节。 jmap命令可以获得运行中的jvm的堆的快照,从而可以离…

使用 Timm 库替换 YOLOv8 主干网络 | 1000+ 主干融合YOLOv8

文章目录 前言版本差异说明替换方法parse_moedl( ) 方法_predict_once( ) 方法修改 yaml ,加载主干论文引用timm 是一个包含最先进计算机视觉模型、层、工具、优化器、调度器、数据加载器、数据增强和训练/评估脚本的库。 该库内置了 700 多个预训练模型,并且设计灵活易用。…

经典策略筛选-20231213

策略1: 龙头战法只做最强:国企改革 ----四川金顶 1、十日交易内出现 涨停或 (涨幅大于7个点且量比大于3) 2、JDK MACD RSI OBV LWR MTM 六指标共振 3、均线多头 4、 筹码峰 (锁仓) 5、现价> 五日均…

OkHttp: 拦截器和事件监听器

文章目录 1. 拦截器1. 拦截器链2. 实际案例1. 注册为应用拦截器2. 注册为网络拦截器 3. 如何选择用哪种拦截器1. 应用拦截器2. 网络层拦截器3. 重写请求4. 重写响应 4. 可用性 2. 事件监听器1. 请求的生命周期2. EventListener使用案例3. EventListener.Factory4. 调用失败的请…

【LeetCode】28. 找出字符串中第一个匹配项的下标 【字符串单模匹配:KMP算法】

题目链接 Python3 直觉解法 class Solution:def strStr(self, haystack: str, needle: str) -> int:pn, ph 0, 0n len(needle) h len(haystack)while ph < h:if haystack[ph] needle[pn]:if pn n-1: # 1234 123return ph - len(needle) 1else: pn 1ph 1else:…

【LeetCode刷题】-- 163.缺失的区间

163.缺失的区间 class Solution {public List<List<Integer>> findMissingRanges(int[] nums, int lower, int upper) {List<List<Integer>> res new ArrayList<>();for(int num : nums){if(lower < num){res.add(Arrays.asList(lower,num -…

c语言函数与指针

//本文有待补充。 一、函数 1.函数的定义 如果程序的逻辑比较复杂、代码量比较大&#xff0c;或者重复性功能比较多&#xff0c;那么全部写在主函数里就会显得十分冗长和杂乱。为了使代码更加简洁、思路更加清晰&#xff0c;C语言提供了”函数“。函数是一个实现一定功能的语…

dockerfile创建镜像 lNMP+wordpress

dockerfile创建镜像 lNMPwordpress nginx dockernginx mysql dockermysql php dockerphp nginx vim nginx.conf vim Dockerfile docker network create --subnet172.17.0.0/16 --opt "com.docker.network.bridge.name""docker1" mynetwork docker buil…

最新Applestore建立其他地区账号简单快捷一看就会

1、首先打开创建appleid网站 2、点击创建你的Apple ID开始创建&#xff08;这里以美国为例&#xff09; 电话号码可以填大陆手机号即可 这两个选项建议不要勾选 3、更改付款方式 3.1点击付款与配送 3.2添加付款方式&#xff0c;这里是最重要的一步&#xff0c;传统方法已经无法…

Mac电脑投屏AirServer 2024怎么下载安装激活许可期限

对于那些想要将 iPhone、iPad 或其他 iOS 设备上的小屏幕镜像到计算机上的大屏幕的人来说&#xff0c;AirPlay 是一个很好的工具。 基于此&#xff0c;AirServer 非常需要将您的 Mac 或 PC 变成 AirPlay 设备。 但是如何使用计算机上的设置对 iPhone 等 iOS 设备进行屏幕镜像&a…

Ubuntu 22安装PHP环境

参考博客为《练习 0&#xff08;2/2&#xff09;&#xff1a;Ubuntu 环境下安装PHP&#xff08;PHP-FPM&#xff09;》和《原生态Ubuntu部署LAMP环境 PHP8.1MySQLApache》 sudo apt-get install -y php7.4想要安装php7.4&#xff0c;发现安装的是php8.1。 完成如下图&#xf…

超声波测距HC-SR04模块的简单应用

文章目录 一、HC-SR04HC-SR04是什么&#xff1f;HC-SR04测距的原理 二、使用步骤1.硬件最远探测距离调节硬件连接 2.软件1.初始化配置代码如下&#xff08;示例&#xff09;&#xff1a;引脚初始化定时器初始化 2.引脚输入输出配置代码如下&#xff08;示例&#xff09;&#x…

【linux系统】用户功能与权限详细总结

前言 菜某的笔记总结&#xff0c;有错误还请指正。 linux用户的概念与root用户 这么理解&#xff1a;一台电脑有多个操作者&#xff0c;每个操作者只能无限制操作自己文件夹中的东西&#xff0c;其他地方的操作需要给与相应权限才能操作。 root用户&#xff1a;就是最高级的…

【Java系列】详解多线程(二)——Thread类及常见方法(上篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一…

Proxmox创建CentOS虚拟机

文章目录 下载ISO安装文件上传创建虚拟机启动虚拟机设置DNS CentOS配置国内安装源备份原有安装源下载更新国内源清理yum缓存制作新配置文件缓存 下载ISO安装文件 下载地址&#xff1a;https://www.xitongzhijia.net/ 也可去官网进行下载 上传 下面介绍直接通过页面上传&…

【论文阅读笔记】M3Care: Learning with Missing Modalities in Multimodal Healthcare Data

本文介绍了一种名为“MCare”的模型&#xff0c;旨在处理多模态医疗保健数据中的缺失模态问题。这个模型是端到端的&#xff0c;能够补偿病人缺失模态的信息&#xff0c;以执行临床分析。MCare不是生成原始缺失数据&#xff0c;而是在潜在空间中估计缺失模态的任务相关信息&…

idea一些报错

java: 非法字符: \ufeff 使用IDEA修改文件编码 在IDEA右下角&#xff0c;将编码改为GBK&#xff0c;再转为UTF-8&#xff0c;重新启动项目。具体步骤如下&#xff1a; 在IDEA右下角找到UTF-8字样的编码格式设计项&#xff0c;点击选择第一项GBK&#xff0c;然后Convert&#xf…

JVM虚拟机系统性学习-对象的创建流程及对象的访问定位

对象的创建流程与内存分配 对象创建流程如下&#xff1a; Java 中新创建的对象如何分配空间呢&#xff1f; new 的对象先放 Eden 区&#xff08;如果是大对象&#xff0c;直接放入老年代&#xff09;当 Eden 区满了之后&#xff0c;程序还需要创建对象&#xff0c;则垃圾回收…

Linux的五种IO模型

众所周知&#xff0c;出于对 OS 安全性的考虑&#xff0c;用户进程是不能直接操作 I/O 设备的。必须通过系统调用请求操作系统内核来协助完成 I/O 动作。 下图展示了 Linux I/O 的过程。 操作系统内核收到用户进程发起的请求后&#xff0c;从 I/O 设备读取数据到 kernel buff…

【超详细】创建vue3+ts项目(引入ElementPlus、Axios)

目录 前言1、使用vue脚手架创建项目1.1检查vue版本1.2 使用vue脚手架创建项目 2、删除项目多余文件&#xff0c;修改配置项目2.1、删除以下文件2.1、在views下创建index文件2.2、修改router/index.ts路由文件&#xff1a;2.3、修改App.vue文件&#xff1a;2.4、初始化页面样式以…