java是没落了还是更活跃了

简介: 你经常会听到“Java 开始没落了”的说法,所有人都应该尽快切换到 Go ,python等更先进的语言。他们说这对他们来说会拥有更多发展空间及就业机会,但对每个人都将要放弃的熟悉的编码语言来说付出的代价是非常大的。但这都是真的吗?

前言

你经常会听到“Java 开始没落了”的说法,所有人都应该尽快切换到 Go ,python等更先进的语言。他们说这对他们来说会拥有更多发展空间及就业机会,但对每个人都将要放弃的熟悉的编码语言来说付出的代价是非常大的。但这都是真的吗?

编程语言

您在下这个决定之前,你看到两种不同的说法。有人直截了当地说“Java 正在没落”:该语言辉煌的时代已经过去,需要它的人越来越少,剩下的人即将放弃它。也有人认为Java在普及方面可能没问题,但从技术上讲它停留在好几年前,所以现在学它很难得到更大发展。当然,要给出准确的答案,最简单的方法是购买所有编程语言的研究论文,但我们没有钱和时间。因此,让我们看一下可用的信息,并一 一查看这两个论点。

“没有人想学 Java”

在第一种情况下,让我们看看可靠的数据而不是“我认为是”。不幸的是,世界上语言的流行度并没有单一的指标,所有可用的资源都可能极大地误导。但是如果你比较几个不同的来源,你可以比“我的朋友身边的朋友都用go编码”更有可靠的结果。

java

首先“热门流行编程”中最著名的就是 TIOBE 指数。是的,可能你对其中的结果存在疑问;你不能盲目相信它,但你也不能完全忽视它。我们看看最新的数据—2021 年 7 月,Java 排在第二位。根据 TIOBE 的说法,它不仅不是一种“没落的语言”,而是世界上最流行的语言之一。

另一个著名的来源是 Stack Overflow 的年度开发者调查。我们看看2020 年的民意调查结果。乍一看,Java 的位置要弱得多,仅排在第五位。但是,当我们更仔细地观察“领先的曲线”时,印象会发生变化:它是 JavaScript、HTML、CSS 和 SQL。首先,这个民意调查不仅包括编程语言,还包括脚本语言。其次,前面的所有选项都有一个共同点,就是开发人员除了主要语言之外还经常使用它们。如果 .NET 和 Java 开发人员都使用一点 SQL,所以在调查中都提到了它,这是否说明 SQL 比 C# 和 Java 更重要?

在这里,看看第三个来源很有趣—— JetBrains 的一项调查。在这种情况下,结论是最常用的语言通常是 JavaScript,但最流行的主要语言是 Java。

在这里,有人可能会争辩说“但动态可能是负面的”。数字因来源而异,因此无法绝对肯定地说出任何事情,但如果每年出现大幅下降,那将是显而易见的。实际上恰恰相反——在所有三个来源中,Java 的位置至少可以稳定 2-3 年。总而言之,如果您现在开始学习 Java,几年后您将会因为会java增加更多就业选择。

“会一门人少的人更加有机会”

为什么一门语言的受欢迎程度很重要?为什么要使用与其他人相同的语言?当然,没有严格的要求,有人会用 Haskell(使用人数非常有限) 写就很开心。这里有几个重要的因素。

就业市场

一、就业市场的规模

如果您公司的一位关键开发人员决定辞职,使用一个非常少会的编程语言写一个项目,那么找到替代他的位置容易吗?而相反的问题:如果你是那个退出的开发人员,在你的领域找到一份好工作容易吗?Java 是拥有最大的就业市场之一,比 Go 大得多。

二、丰富的文档说明

该语言的高流行度意味着互联网上会有很多关于它的说明文档(博客文章、报告、Stack Overflow 的答案),但是当你使用一种罕见的语言时,你可能会面临信息匮乏的问题. 做先锋当然有一定的优势,但这并不是快速解决问题的最佳策略。

这样的问题和“它有模式匹配吗?”一样重要。在选择语言时,Java 因为生态系统的规模而具有巨大的优势。因为很多人使用它,所以在创建新项目时它是一个不错的选择,这反过来又鼓励了更多人的加入。在未来几年这种自我维持的过程肯定不会消失的。

“Java 停滞不前了”

现在让我们继续讨论第二个论点:历史是不断前进的,现在科技那么发达,java是一门90 年代的编程语言,不先进了,现在新出的编程语言越来越多。您会更加先进的语言时,为什么要选择java?

一般来说,对于很多人来说,更重要的不是语言本身,而是它的平台和“周围的一切”:主要供应商的解决方案和爱好者的开源库、IDE 支持和替代 JVM 语言。如果我们将所有这些作为一个整体来考虑时,你就会投入java的怀抱。

我们不需要看其他语言,我们直接看看最近十年 Java 发生了什么。

2011 年,甲骨文收购了 Sun Microsystems,取得了 Java的控制权,当时java前景不明朗。进入甲骨文的其他产品(OpenOffice、Solaris、Hudson)的未来很艰难。

在这里,甲骨文并不只是为了拥有java的资源而放弃java,而是将资源投入到开发中。

2014 年发布的 Java 8 版本可谓是互联网上的一件大事;由于技术上的创新,java语言发生了明显的变化。业界心甘情愿地接受了这个版本,更愿意过渡到java 8中。

2017 年,随着 Java 9 的出现,一个长期存在的 JDK 模块化项目发布。与任何存在数十年的重大项目一样,JDK 中的内部依赖项随着时间的推移开始变得像意大利面条。为了“看到”它,必须将这些依赖关系分解成一个连贯的系统——也就是说,本质上是进行了一次巨大的重构。对于真正“陷入过去”的项目,这种情况不会发生。

从 2018 年开始,一个新的发布周期开始生效:他们没有准备频繁发布Java 大版本,而是开始每六个月发布一个较小的版本。这样做只是为了跟上行业的步伐,更快地发布功能(如果有些功能已经准备好,您不必将它们搁置多年,直到下一个版本发布)。并且有规律的发布流并没有把一切都颠倒过来,但仍然增加了一些值得注意的东西。

一般来说,谈论一个语言缺乏发展是非常不利的。我们可以谈论的是Java与其他语言相比具有更大的保守性。的确,在很多问题上,他们都尽量谨慎行事,而不是一头扎进。但这又引出了下一个问题:“一头扎”真的是好事吗?

几年前,前端世界有很多抱怨新的框架的更新越来越快,让他们无法保持冷静和专注。在 Java 社区中,现在也不是每个人都对新版本发布周期感到满意。

结论

技术发展的速度没有一个正确的标准:对初创企业有利的对大型企业不利。Java 的保守主义本身既不是优点也不是缺点:它对某些人有利,对其他人不利。

综上所述,并不意味着 Java 对所有人来说都是世界上最好的语言。选择一种语言时,值得看一下具体需求是什么,而不是依靠互联网大喊“从X到Y,否则你就落后了”。如果你保持冷静的思考,Java 在大多数情况下仍然是一个不错的选择。

目录
相关文章
|
10月前
|
Kubernetes Java 程序员
Java会因容器技术盛行而没落吗?
Java会因容器技术盛行而没落吗?
74 0
|
JSON Kubernetes Cloud Native
Java真的要没落了?
最近也收到很多后端同学的提问,为什么Go的web框架速度还不如Java?为什么许多原本的 Java 项目都试图用 go 进行重写开源?Java会不会因为容器的兴起而没落?Java这个20多年的后端常青树难道真的要走下坡路了?橙子邀请了淘系技术部的同学对以上问题进行解答,也欢迎大家一起交流。
Java真的要没落了?
|
7天前
|
安全 Java 数据处理
Java并发编程:解锁多线程的潜力
在数字化时代的浪潮中,Java作为一门广泛使用的编程语言,其并发编程能力是提升应用性能和响应速度的关键。本文将带你深入理解Java并发编程的核心概念,探索如何通过多线程技术有效利用计算资源,并实现高效的数据处理。我们将从基础出发,逐步揭开高效并发编程的面纱,让你的程序运行得更快、更稳、更强。
|
6天前
|
Java 开发者
奇迹时刻!探索 Java 多线程的奇幻之旅:Thread 类和 Runnable 接口的惊人对决
【8月更文挑战第13天】Java的多线程特性能显著提升程序性能与响应性。本文通过示例代码详细解析了两种核心实现方式:Thread类与Runnable接口。Thread类适用于简单场景,直接定义线程行为;Runnable接口则更适合复杂的项目结构,尤其在需要继承其他类时,能保持代码的清晰与模块化。理解两者差异有助于开发者在实际应用中做出合理选择,构建高效稳定的多线程程序。
26 7
|
5天前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。
|
5天前
|
存储 监控 安全
一天十道Java面试题----第三天(对线程安全的理解------>线程池中阻塞队列的作用)
这篇文章是Java面试第三天的笔记,讨论了线程安全、Thread与Runnable的区别、守护线程、ThreadLocal原理及内存泄漏问题、并发并行串行的概念、并发三大特性、线程池的使用原因和解释、线程池处理流程,以及线程池中阻塞队列的作用和设计考虑。
|
3天前
|
存储 缓存 安全
深度剖析Java HashMap:源码分析、线程安全与最佳实践
深度剖析Java HashMap:源码分析、线程安全与最佳实践
|
9天前
|
消息中间件 Java 大数据
"深入理解Kafka单线程Consumer:核心参数配置、Java实现与实战指南"
【8月更文挑战第10天】在大数据领域,Apache Kafka以高吞吐和可扩展性成为主流数据流处理平台。Kafka的单线程Consumer因其实现简单且易于管理而在多种场景中受到欢迎。本文解析单线程Consumer的工作机制,强调其在错误处理和状态管理方面的优势,并通过详细参数说明及示例代码展示如何有效地使用KafkaConsumer类。了解这些内容将帮助开发者优化实时数据处理系统的性能与可靠性。
37 7
|
5天前
|
安全 Java
Java模拟生产者-消费者问题。生产者不断的往仓库中存放产品,消费者从仓库中消费产品。其中生产者和消费者都可以有若干个。在这里,生产者是一个线程,消费者是一个线程。仓库容量有限,只有库满时生产者不能存
该博客文章通过Java代码示例演示了生产者-消费者问题,其中生产者在仓库未满时生产产品,消费者在仓库有产品时消费产品,通过同步机制确保多线程环境下的线程安全和有效通信。
|
4天前
|
缓存 前端开发 JavaScript
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
【8月更文挑战第11天】一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
13 0
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!