【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

2019 年 Java 调查报告:Java 8 仍然最受欢迎

  • 2019-12-25
  • 本文字数:2189 字

    阅读完需:约 7 分钟

2019年 Java 调查报告:Java 8 仍然最受欢迎

尽管 Java 被称为编程语言的“老马”,但它仍在不断发展。


在 Tiobe 排行榜中,它仍然是的第一名,在 PYPL 和 RedMonk 排行榜上则在与 Javascript 和 Python 争夺第二名的位置,按照 GitHub 上库贡献者的数据来看,它是第三大最受欢迎的语言(根据GitHub的10年数据)。


时光在变,Java 一直没变,过去企业在谈 Java,现在还是在谈 Java,这一点可以在财富 500 强企业的技术栈中得到验证。


为什么 Java 能够一直流行呢?其中的原因有很多,例如企业最看重的是向后兼容性,众所周知,向后兼容性对重大的更新和升级非常敏感,而 20 年前用 Java 5 编写的系统还是能够在 Java 8 下编译和运行。


那么,2019 年 Java 的发展如何呢?Baeldung 调查了 6707 名开发经验丰富的技术人员,并从中获得了一些结论。

使用版本:Java 8 仍然最受欢迎

从 Java 8 之后,Java 的发布周期明显快了很多,现在已经快要到 Java 14 了。你可能会认为大多数人已经切换了更新版本的 Java 了,但实际情况并非如此,根据调查显示,80%的受访者仍然在使用 Java 8。



为什么即使有了新版本,Java 8 仍然最受欢迎呢?这其中有很多原因:


首先,Java 8 开创性的语言特性(参见我的闭包和Lambdas书评)仍然在被编程社区吸收。即使到了 2019 年,关于 Stream 和 Optional 的相关问题仍在网上被热烈讨论,Baeldung 自己也发布了Java 8 Optional指南


其次,Java 9 首先支持的新模块系统使人们感到困惑,而不是使他们感觉更轻松。


第三,在后来的 Java 版本中引入的特性似乎没有足够的说服力让大家下决心切换。


最后,还存在一个大问题,在 2019 年 1 月份之后,Java SE 8 的公共更新需要商业许可。这就是 Oracle JDK 与 OpenJDK 之争的开始,正如我们在之前的文章中所说的:


随着 Oracle JDK 发行和支持的变化,是使用 Oracle JDK,还是 Oracle 的 OpenJDK,或者是其他供应商的 OpenJDK,这中间在权限上存在着相当大的不确定性。此外,在不同的供应商那里是否可以得到免费更新的相关计划,以及(新的和现有的)付费的支持模型,这些都要予以考虑。

框架:Spring 占据主导地位

在框架的采用方面,Spring 占据了主导地位。与传统且臃肿的 Java EE 相比,Spring 是现代化的、基于 Java 的企业应用程序的轻量级框架。Spring Boot 的采用率也很高。

构建工具:Maven 断层式第一

在 Java 构建工具的调查中,Maven 以相当大的优势排在了第一位,这表明排在第二位的 Gradle 仍然是 Android 的代名词,之后需要做更多的努力来摆脱这些限制,以便被认为是 Java 构建通用实践的一个可行的选择。

IDE:IntelliJ 大比例占据一位,Eclipse 份额持续下降

在 IDE 的调查中,IntelliJ 以将近 60%的份额占据了第一的位置,为什么 IntelliJ 如此受欢迎呢?Andrey Cheptsov 曾在一篇博客中这样写道:“在你编写代码时,IntelliJ IDEA 也忙着在构建它的语法树,在类、变量、字段、方法和它们的用法之间创建引用,分析执行流,利用这些信息,它可以提供补全功能,帮助你快速浏览代码,提供错误分析和方便的快速修复。”


而传统的 Eclipse 则有点不妙,其占比从去年的 38%下降到 32.8%

Web/应用服务器:Tomcat 占据第一

早在 2011 年,Forrester 的首席分析师 Mike Gualtieri 副总裁就写过一篇既有预见性又不受时间限制的文章,名为《停止在WebLogic、WebSphere和JBoss应用服务器上浪费金钱


他开头写道:


“使用 Apache Tomcat 吧,它是免费的。

我不明白为什么有些公司要在 Oracle Weblogic 或 IBM WebSphere Application Server 这样的 Java 应用服务器上花费数百万美元。我明白为什么有些公司要在 Red Hat JBoss 上花钱,因为他们想要节省在应用服务器上的开销。但是,为什么要花钱呢?Apache Tomcat 将满足大多数 Java web 应用程序的部署需求。”



该表反映了这种说法:Tomcat 一直保持着轻量级的资源消耗,毫无争议地击败 Jetty 夺得冠军。那些重量级产品的位次反映了它们那个年代已经过时的需求。

其他 JVM 语言:Java 的使用率未发生变化

首先,让人感到有些惊讶和有趣的是,有 62.6%的开发人员只使用 Java,这与去年不相上下(62.8%)。考虑到大家对 Kotlin 的大量采用,我的预期是这个数字肯定会下降,但现在看来并没有下降。不过,Kotlin 仍然从去年的 13%增长到了现在的 16.5%。和 Gradle 一样,Kotlin 完全可以作为一种通用语言来用,尤其是在后端环境中,但在安卓之外它仍然未被接受得到普遍应用。

数据库:关系型数据库比 NoSQL 更受欢迎

MySQL 和 PostgreSQL 是前两名,Oracle 是第三名,MongoDB 和 MS SQL 是第四和第五名。这里有两个值得注意的趋势。与Percona的数据库管理系统流行度调查结果一致,关系型数据库管理系统胜过 NoSQL,而开源数据库管理系统则比大型商业数据库管理系统做得更好。就像前文中的 Web 服务器一样,人们寻求的也是更轻量级的等价物,尤其是 PostgreSQL。

总结

总而言之,根据调查结果显示,Java 不会被取代,在未来几年也将在继续保持 Top 3 的位置。不妥,尽管人们仍然坚持使用该语言及其围绕它的生态系统,但他们也在试图远离 Oracle 及其产品,如 IDE(JDeveloper)、服务器(WebLogic)、JDK 及其旗舰数据库。MySQL 是个特例,因为它基本上不受甲骨文所有权的影响。大多数 Java 用户正在寻找更轻量级、更高效、更便宜、对开发人员和许可更友好的等价物,这些等价物完全比得上 Oracle 的同类产品,甚至更好。


原文链接:How is Java Doing?


2019-12-25 09:233053

评论 2 条评论

发布
用户头像
“关于Steam 和Optional 的相关问题仍在网上被热烈讨论” 中的 “Steam” 应该是 “Stream”
2019-12-25 17:57
回复
用户头像
引用
---------------------------------------------------------------------------------------------------------------------
我明白为什么有些公司要在 Red Hat JBoss 上花钱,因为他们想要节省在应用服务器上的开销。但是,为什么要花钱呢?Apache Tomcat 将满足大多数 Java web 应用程序的部署需求。
---------------------------------------------------------------------------------------------------------------------
1、redhat undertow 比tomcat更加轻量级,用的人也很多, 在文中未及。
2、wildfly 你不能说他是重量级或轻量级。目前年来,它有很强的柔韧性,想轻就轻想重就重。一条命令即可分发, 另外对原生云的支持也非常的好。


展开
2019-12-25 11:15
回复
没有更多了
发现更多内容

8086汇编基础 debug D命令 查看指定地址的内容

万里无云万里天

汇编语言

手把手带你打一场时间序列实战—跑通baseline

打工人!

人工智能 机器学习 时间序列预测

8086汇编基础 debug mov al,'a'或者mov ax,'ab'错误的

万里无云万里天

汇编语言

以数智化指标管理,驱动光伏能源行业的市场推进

Kyligence

绿色能源 数据管理

DeFi/NFT质押借贷(挖矿)系统模式开发

V\TG【ch3nguang】

ubuntu下安装transition_amr_parser教程。

百度搜索:蓝易云

云计算 Linux ubuntu 运维 SEO

ubuntu系统部署dzzoffice及安装onlyoffice插件教程。

百度搜索:蓝易云

Linux ubuntu 运维 onlyoffice DzzOffice

华为云应用中间件DCS系列—Redis实现(视频直播)消息弹幕

华为云PaaS服务小智

云计算 软件开发 华为云

低代码技术这么香,怎么把它的开发特点发挥到极致?

陈橘又青

低代码 无代码开发 无代码 低代码平台 无代码平台

虚拟机是什么

攻城狮Wayne

8086汇编基础 debug jmp 修改IP

万里无云万里天

汇编语言

ES6新特性(一)

阡陌r

JavaScript ES6 模板字符串 解构赋值

景区旅游分销管理系统开发搭建

V\TG【ch3nguang】

8086汇编基础 debug D命令 查看指定范围内的内容

万里无云万里天

汇编语言

8086汇编基础 debug D命令 查看指定地址及其之后的128字节的内容

万里无云万里天

汇编语言

Java IO 与 NIO:高效的输入输出操作探究

程序那些事

Java 程序那些事 面试秘籍

Defi/ULAB质押挖矿开发Solidity语言丨ULAB质押挖矿系统开发技术

V\TG【ch3nguang】

8086汇编基础 call实例

万里无云万里天

PCE模型,FomoCat为何发起反Web3空气资产的社区试验

股市老人

IDO预售代币LP流动性质押挖矿系统技术开发

V\TG【ch3nguang】

Python - 字典4

小万哥

Python 程序员 软件 后端 开发

8086汇编基础 db,dw,dd的实例

万里无云万里天

汇编语言

PCE模型,FomoCat为何发起反Web3空气资产的社区试验

EOSdreamer111

8086汇编基础 debug jmp 修改CS:IP

万里无云万里天

汇编语言

Defi/LP云算力质押挖矿系统开发技术

V\TG【ch3nguang】

eth2.0质押挖矿机制系统开发部署逻辑【详情】

V\TG【ch3nguang】

出海 SaaS 企业增长修炼手册:聊聊 PLG 的关键指标、技术栈和挑战

Kyligence

数据分析 指标管理

8086汇编基础 debug E命令 改变指定地址的数据,可同时看新旧内容

万里无云万里天

汇编语言

8086汇编基础 debug mov 指定段内的内存单元存到寄存器中

万里无云万里天

汇编语言

构建高性能物联网数据平台:EMQX和CnosDB的完整教程

CnosDB

开源 时序数据库 emqx CnosDB

2023 Visual Studio Code 插件推荐:18 个提高开发效率的常用插件

小万哥

程序员 前端 vscode 后端 编辑器

2019年 Java 调查报告:Java 8 仍然最受欢迎_编程语言_Nikos Vaggalis_InfoQ精选文章