前言

9月份的TIOBE编程语言榜单已公布,Python依然是第一,Java第四。

而这个月还有一个重要的事情,就是9月19日Java21将会全面发布,一段时间没关注的我一口老血喷在屏幕上。

我记得我写Java17新特性好像还没多久,Java你要不要这么努力。

大家可以看一下9月份前20的语言排名

正文

1、排行简单分析

根据榜单可以发现,前五名还是那几个,这5年都没变过,只是互相挤来挤去。

Python、C、C++、Java、C#

Python,不说了,国外太火排第一不意外,国内前几年忽悠过一些程序员,后来发现入圈门槛太高,光速退圈。

C++,好像有那么点意思了,不知道经历了什么。

C#,你就没想过当老大?

PHP,你倒是说句话啊!

JavaScript还是猛啊,20年来一直在前10,还往上升,你忍了这么久是要篡位吗?

Golang,你还是Go Go Go吧,你个扶不起的阿斗,黑马气的继续推Java,尚硅谷气的疯狂推大数据。

Kotlin,你说你是不是看Java不爽很久了?Java当年从18窜到第1,你敢不敢。

Rust,这年头,不打广告都挤不进国内市场。

Java程序员别轻易转以上语言,我不建议,以目前国内的就业形势而言,没啥必要,学习成本也不低。

现实点,不管卷不卷,国内后端还是Java好找一点,先认清现实,再考虑别的。

学习第二语言,都差不多,反正你很难找到工作,那我推荐学Python,至少可以陶冶情操。

2、Java21有什么好

因为我还停留在对于Java17的研究,没想到稍微不留神,Java21就要来了。

我大意了,赶紧查阅了下Java21的新特性,也还好,有些都是之前版本的预览特性,只是转正了。

不过里面有一个值得关注的,就是虚拟线程,终于确定要发布了。

其实就是其他语言中出现过的协程,说到这里不得不谢谢Golang。

GO大火的那两年,因为GO的容器快速启动,Java生态中开始出现Spring Native。

因为GO的协程,Java生态中开始出现虚拟线程。

因为GO的低延迟GC,Java生态中开始引入ZGC,降低堆内存和CPU开销的垃圾回收器。

不得不说,作为同样的后端编程语言,Golang某种程度上推动了Java生态的发展,让它走出安乐窝。

从Java17这个革命性的版本,再到Java21的LTS版本即将发布,我认为这种趋势对于Java程序员来说是好现象,有助于Java生态的持续进化。

所以,我们要保持关注。

3、Java新特性要马上学吗

虽然新特性很吸引人,可以说从Java11开始,Java的一些新特性就层出不穷。

里面能看出吸纳了许多其他语言的亮点,这也没啥,按照编程语言的客观发展规律,尽头也就是相互借鉴(你抄我我抄你)了。

那么,新特性一定要马上学吗,我的回答是不必,了解一下即可。

我以虚拟线程为例,它实际上并不会促进企业朝着Java21的版本跟进。

我主要从以下几点考量:

1)、业务需求和技术栈

公司是否对 JDK 21 中的新特性有实际需求,并且能够从中获得业务上的收益,要打个问号。如果公司的现有技术栈和应用程序可以很好地运行在 Java 8 上,并且没有迫切需要使用虚拟线程的情况下,可能不会立即进行升级。

2)、稳定性和成熟度

虚拟线程之前是作为实验特性,可靠性和稳定性尚未经过广泛测试和验证。对于一些对系统稳定性要求较高的公司来说,他们可能更倾向于等待虚拟线程在未来版本中成熟和稳定之后再进行升级。相比于高版本的Java,我觉得企业会更倾向于Java11,然后平滑过渡到Java17。

3)、开发团队的意愿和能力

公司的开发团队是否具备学习和适应 JDK 21 中的新特性的能力,并且是否希望利用虚拟线程来改进他们的代码和应用程序。这取决于团队的技术储备和开发资源的可用性。说白了,你以后要不要招必须熟悉Java21的程序员,这显然不现实,也不是很多中小企业的面试评判标准。

总结

最后讲个题外话,我们公司几个月前有尝试过直接从Java8升级到Java17,因为Springboot3.0最低支持Java17,如果新项目想用SpringBoot3.0版本,就只能升级到Java17。

但是升级过程令人崩溃,有太多关联的中间件也要一起升级了,每个过程都有坑,而有些组件还升级不了,除非换成别的,这样一来升级成本太大,公司已经成熟的一套技术体系面临改造。

种种考虑过后,决定暂时放弃这个想法,等到SpringBoot3.0、Java17版本以及关联的整个生态稳定之后,再考虑升级的事情。

其实就是等别人踩完了我们再踩,哈哈。


如果喜欢请点赞关注↓↓↓,持续分享干货哦!

你准备好了吗,9月19日Java21要来了的更多相关文章

  1. Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档

    array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...

  2. 2016年12月19日 星期一 --出埃及记 Exodus 21:14

    2016年12月19日 星期一 --出埃及记 Exodus 21:14 But if a man schemes and kills another man deliberately, take hi ...

  3. 2016年11月19日 星期六 --出埃及记 Exodus 20:10

    2016年11月19日 星期六 --出埃及记 Exodus 20:10 but the seventh day is a Sabbath to the LORD your God. On it you ...

  4. 2016年10月19日 星期三 --出埃及记 Exodus 19:3

    2016年10月19日 星期三 --出埃及记 Exodus 19:3 Then Moses went up to God, and the LORD called to him from the mo ...

  5. 7月19日Docker&Kubernetes技术沙龙总结 - DockOne.io

    7月19日Docker&Kubernetes技术沙龙总结 - DockOne.io undefined

  6. 成都Uber优步司机奖励政策(4月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. 北京Uber优步司机奖励政策(4月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. 北京Uber优步司机奖励政策(3月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. 北京Uber优步司机奖励政策(2月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. 北京Uber优步司机奖励政策(1月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

随机推荐

  1. Apache Hudi 1.x 版本重磅功能展望与讨论

    Apache Hudi 社区正在对Apache Hudi 1.x版本功能进行讨论,欢迎感兴趣同学参与讨论,PR链接:https://github.com/apache/hudi/pull/8679/f ...

  2. 实例讲解Flink 流处理程序编程模型

    摘要:在深入了解 Flink 实时数据处理程序的开发之前,先通过一个简单示例来了解使用 Flink 的 DataStream API 构建有状态流应用程序的过程. 本文分享自华为云社区<Flin ...

  3. 某表格常用api

    这是一个神奇的网站,可作为免费的数据存储平台,已白嫖多年 通过调用接口可以方便的实现增删改查.修改www前缀为vip,还能嫖vip服务器 我常常用来写入程序的日志记录,记录/更新一些关键key 不需要 ...

  4. ELK日志收集记录

    logstash在需要收集日志的服务器里运行,将日志数据发送给es 在kibana页面查看es的数据 es和kibana安装: Install Elasticsearch with RPM | Ela ...

  5. 解决Springboot项目打成jar包后获取resources目录下的文件失败的问题

    前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:class path resource [xxxx] c ...

  6. 【HDC.Cloud 2023】新鲜速递:从多元生态、开源到人才培养,让开发者成为决定性力量

    摘要:华为云开发者联盟邀您一起回顾大会精彩时刻. 本文分享自华为云社区<[HDC.Cloud 2023]新鲜速递:从多元生态.开源到人才培养,让开发者成为决定性力量>,作者: 华为云社区精 ...

  7. 使用Python读取图片

    一.Python学习两大道具 1. dir()工具 作用:支持打开package,看到里面的工具函数 示例: (1) 输出torch库包含的函数 dir(torch) (2) 输出torch.AVG函 ...

  8. SVE学习记录- SVE特性以及寄存器

    本文地址:https://www.cnblogs.com/wanger-sjtu/p/SVE_learn_0.html SVE对比NEON有几个新增的地方. 变长的向量 支持Gather-load & ...

  9. win10使用Docker Desktop启动mysql报错:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306:

    问题描述 今天上班用wind10电脑启动Docker Desktop使用MySQL,突然间报了一个错,错误如下: Error response from daemon: Ports are not a ...

  10. JDK源码-StringJoiner源码分析

    背景 功能描述:将多个元素使用指定符号前后连接为字符串:eg:1 2 3 4 5 , => 1,2,3,4,5 要点: 多个元素 指定分隔符 分隔符只在元素之间,不能作为第一或最后一个 使用方法 ...