2020年了Java还有前途吗?
今年,Java达到了一个令人难以置信的里程碑,并达到了25岁的高龄。
这让我们开始思考并决定深入研究数据,以一劳永逸地发现Java的普遍状态,并帮助回答您的一些迫切问题。我们发现的某些内容可能不足为奇,但也有一些非常出乎意料的见解。
开发者分布在哪里
第一个问题是:“大多数Java开发人员都在哪里,我们中有多少人呢?” 我们通过结合可以获取的最准确的信息来进行回答,然后进行推断以得出我们认为是很好的猜测。
市场研究和分析团队对开发人员估计模型的最佳估计表明,当今世界上有大约520万专业Java开发人员将Java作为主要语言。但是,如果我们包括主要使用其他编程语言,但同时也使用Java的专业开发人员,那么这个数字可能接近680万。
关于这些Java开发人员的集中地,亚洲居住的Java开发人员数量最多,大约有250万开发人员使用Java作为主要语言。北美和欧洲的数字远不及亚洲。您可能会问,“但是为什么?” 好吧,起初我们有完全相同的想法,所以我们对这些区域进行了更深入的研究,以确切地了解数字的来源。
具体在哪里
更深入地讲,我们研究了Java开发人员最多的各个国家,然后调查了为什么这些国家在专业开发方面特别喜欢Java而不是其他语言。
下图显示了每个国家/地区使用Java作为主要语言的开发人员所占的百分比(用于收集此数据的调查受访者最多可以选择3种主要语言)。中国和韩国的数值最高,分别约为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高,那么C#就会低,因为它们在功能方面都非常相似。关于我为什么认为Java在专业发展领域如此之高的原因–与关于德国提到的内容相似。大多数企业业务服务都依赖Java使它们顺其自然。不仅是IT部门-几乎每个公司,无论是在分销,制造还是银行业,都将IT服务作为其基础结构的一部分,而这些服务(例如薪资或库存管理)通常都是在后端使用Java构建的。因此,为这些公司工作的专业开发人员经常使用Java。
用Java开发的软件类型
快速浏览使用Java开发的软件类型应该可以了解其使用情况统计信息。根据《?2020年开发者生态系统状况》的结果,Web服务是Java最受欢迎的领域,占52%。
专家分析令人惊讶的是,Java在商业智能/数据科学/机器学习中如此流行,因为您认为这将是Python的领域。其他Web服务的后端通常是Java,因此并不令人惊讶,因为使用Java编写业务应用程序也很有意义,因为它们也需要与后端和数据库一起工作。
使用Java的热门行业
现在我们知道了为什么许多专业开发人员都使用Java,下面让我们专门研究一下Java的使用行业。
根据?2020年开发者生态系统调查,Java程序员主要在IT服务(42%)和金融与金融科技(44%)中工作,但这并不是说Java不用于其他行业。
专家分析金融和金融科技领域主要涉及金融交易所,零售银行系统,创建计算引擎以及开发本地定制工具和服务,以使公司在市场上具有竞争力。Finance和FinTech几乎都是用Java建立的,因此这里并不奇怪。IT服务也是如此,因为许多针对非IT公司的薪资系统和库存管理服务都是基于Java构建的。其他行业虽然很有趣。由于Android,移动开发的速度可能很高,因此以这种方式使用Java。大数据和数据分析非常有趣,因为该行业由Python领导,但是后端可能会使用Java和JVM语言。软件开发工具,当然可以。JetBrains IDE当前使用Java构建。
Java工具
Java版本
Java 8仍然是最受欢迎的版本。使用Java作为主要语言的专业开发人员中有75%使用了它。下图显示了Java版本的分布情况,假设开发人员在?2020开发者生态系统调查中选择了其中的几个版本。
专家分析有几个因素导致Java 8如此受欢迎的原因。首先,它具有典型Java开发人员从该语言中所需的一切,它具有lambda和流,并且通常是一个易于使用的好版本。而且,人们真的不愿意使用Java9。Java9引入了一些重大的体系结构更改,人们担心这些更改会破坏他们用Java 8构建的应用程序。最重要的是,Oracle推出了每两年发行一次的版本,并且因此并非所有版本都长期受支持,因此Java 9,Java 10,Java 12和Java 13仅受6个月支持,这可能就是为什么它们都只有这么少用户的原因。Java 13之所以如此之高,是因为当本调查结束时,它是最新版本,因此您可以预期Java 13会在几个月后下降。Java 11于2018年问世,它是具有长期支持的最新版本。许多企业仍未迁移到它,因为他们担心超越Java 9(随着体系结构的更改)会破坏一切,并且?Java 11引入了新的许可和新的订阅,因此它更加担心如果您使用错误的版本,以错误的方式,Oracle会罚款您。许多开发人员不升级到Java 11的最后一个主要因素是,它没有许多令人兴奋的新功能,因此语言的功能并未降低升级的风险。Java 17将是具有长期支持的下一个版本,并带有许多新功能,但是从Java 8到Java 17的直接更新将有其自身的问题。我的预测是,我认为下一个长期版本Java 17将比上一个LTS(长期支持版本)Java 11更受欢迎。不过,作为Java 17的准备,我真的不能对此施加太大压力,建议您先将代码库更新为Java 11,然后再更新为Java 17,以避免出现大问题。
流行的应用服务器
在过去的三年中,Apache Tomcat仍然是最受欢迎的应用服务器,而JBoss EAP和WildFly的使用却减少了一半。所提供的数据来自所有使用Java作为主要语言的开发人员 ,这些人员参加了?2018年和?2020年的Developer Ecosystem Survey。
专家分析Jetty位居第二,但确实令人惊讶地低。可能是某些正在使用Spring Boot和其他微服务框架的开发人员可能没有意识到他们在幕后使用的东西–他们可能正在使用Tomcat或Jetty而不了解它们。
前五名Web框架
Spring Boot在2018年已经和Spring MVC同样流行了 ,现在(2020年)已经更加流行了。给出的数据来自所有使用Java作为主要语言的开发人员。
专家分析这基本上只是在确认Spring拥有市场。仍然有人在使用Struts 1几乎可以肯定只在旧版应用程序中使用。
前五名JVM探查器
该?开发者的生态系统国家调查2020显示,VisualVM的使用由用户的24%,而一半使用没有。给出的数据来自所有使用Java作为主要语言的开发人员。
前5名IDE /编辑器
根据开发者生态系统调查 ?2018和?2020的报告,IntelliJ IDEA的份额从2018年的55%增加到2020年的72%,而其他四个的使用减少了。
专家分析不过,即使我们对调查结果进行了加权,我们也不否认信息可能会偏斜,因为这是从?JetBrains开发者生态系统状况调查得出的,JetBrains的主要产品之一是IntelliJ IDEA。但是,这并不是说这并非完全不合理,就好像我们在其他调查中看到的一样,IntelliJ IDEA通常是最常用的IDE之一,通常拥有约55-60%的用户份额。VS Code正在增长,这不是从竞争的角度来看,实际上是从对IDE给您的理解上缺乏了解的角度出发。VS Code是一个代码编辑器,具有一些您可以在IDE中找到的功能以及可以提供附加功能的扩展-因此,如果人们转向VS Code进行开发,则可能意味着开发人员不知道什么是功能齐全的功能。IDE可以给他们。在网络空间中,使用编辑器是可以理解的,因为网络开发人员通常使用动态语言,
讨论最多的Java工具和其他语言
Java在IT社区中经常被讨论,其中之一就是Stack Overflow。我们从“ ?问题与解答”章节中获取了数据,以找出哪些标签最常出现“java”。纵轴表示Java提及的内容,横轴表示标签出现的总数。
专家分析该图表可能对想要确保使用正确技术或为他们寻找工具的用户很有用。这些语言很有意思,但这可能是因为人们正在寻找Java与其他语言之间的比较。正则表达式是人们苦苦挣扎的一种利基市场,但他们跻身榜单并不奇怪。
Java社区中的热门话题
Java讨论
我们分析了有关?“ java” subreddit的帖子, 并发现Java用户在Reddit上讨论最多的主题。
专家分析这些正是我期望看到的主题。例如,用Java编写代码的人总是会对这种语言是否仍然有需求感兴趣,毕竟,这种语言还在发展。我们刚刚庆祝了Java诞生25周年,因此人们希望检查它是否过时和遗留,并且仍然有效。特别是,如果他们刚刚大学毕业,却不知道他们所学的语言是否会为他们提供工作机会。在容器中部署Java是一个非常热门的话题,包括我在内,这是每个人都想知道的东西,但几乎找不到任何信息。我对性能优化这个主题并不感到惊讶,尽管我认为这个主题有点多余,因为大多数应用程序实际上并不需要开发人员进行优化,尽管许多开发人员认为这是一项重要的职业技能。使后端和前端协同工作也可能非常复杂,我可以想象对此存在很多问题。