🎈个人公众号:🎈 :✨✨✨ 可为编程✨ 🍟🍟
🔑个人信条:🔑 为与不为皆为可为🌵
🍉本篇简介:🍉 本篇探讨了Java语言的历史发展和未来方向,如有出入还望指正。

关注公众号【可为编程】回复【面试】领取年度面试题!!!

Java 经过近 30 年的发展,您可能会认为该语言会出现一些磨损的迹象,但事实并非如此。2022 年的 Java 并不是一种正在衰落的语言,而是一种为软件开发的蓬勃发展的未来做好准备的语言,这种永远流行的语言远未消亡,它正在与时俱进,为未来做好准备。

无论你看什么排名系统,无论是 TIOBE 指数、编程语言流行度指数、RedMonk 的两年一度的语言排名,还是 GitHub 的年度State of the Octoverse,Java 在发布后不久就一直稳居前三语言之列。1995 年。然而,随着时间的推移,听听开发人员群体的一般闲言碎语,您可能会认为 Java 实际上正处于一个巨大的衰落时期,甚至濒临死亡。仔细看看其中一些受欢迎程度的数字,您可能会说 Java 已经慢慢地将市场份额让给了它的语言竞争对手,这是它即将消亡的另一个明显迹象。一些支持者可能会争辩说,只是不断有更多的语言出现——因此,蛋糕会变大,而碎片会变小。尽管如此:印象很重要。

虽然 Java 在其早期发展过程中可能遇到了一些问题,但如今该语言及其更大的生态系统已经加快步伐,以各种方式满足未来的需求。事实上,它从未真正离开过任何地方:Amazon、Google、Netflix、Pinterest、Spotify、Square 和 Zoom 等公司都在其庞大的代码库中使用了 Java。更不用说过去十年中许多大规模数据基础设施都是由 Java 提供支持的,该语言是 Apache Hadoop、Kafka 和 Spark 等的支柱。你可以随意宣布它再次消亡,但我们现在看到的 Java 有点复兴了;最近谨慎地认为它无法满足这些未来用例的语言的复兴。

也就是说,Java可以用LL Cool J不朽的话来形容:“不要称之为复出,我在这里已经很多年了,我在摇滚我的同龄人,让傻瓜们感到恐惧。”

关注公众号【可为编程】回复【面试】领取年度最新面试题!!!

对Java多年的不满

Java 于 1995 年首次出现,承诺具有“一次编写,随处运行”(WORA) 的能力,这一特性使其在与当时占主导地位的、依赖于平台的语言(如 C 和 C++)的竞争中脱颖而出。推出后不久,它就通过 Java 小程序进入了 Web 浏览器,开发人员突然拥有了一种跨越 Apple 与 PC 战线以及蓬勃发展的万维网的语言。虽然 1995 年 PHP、Ruby 和 Javascript 也发布了,但没有人能体验到 Java 迅速流行起来。

在短短两年内,Java 的受欢迎程度排名第三,仅次于 C 和 C++。到 1998 年,它超过了 C++,并在 2001 年超越 C 成为第一。在六年的时间里,Java 占领了软件开发领域。尽管这一地位将持续十多年,但在 Java 世界中并非一切都如此。

EPI-USE Labs 的首席解决方案架构师Andrich van Wyk回忆起 Java 编程语言 (JPL) 的发展停滞不前的时期,尽管它占据主导地位,但似乎还存在问题。他说,最低点出现在 2009 年左右,当时 Java 6 已经问世近三年了,而 Java 7 距离发布还有两年的时间。当 Java 7 终于到来时,van Wyk 回忆道,这是“经过五年开发的一个相对平庸的版本”,并将当时的情况描述为“开发人员渴望更现代的语言功能、更简洁的代码和新的编程范例”。

这些愿望的证据无处不在:Ruby 的 Rails 框架可能正处于其最初炒作周期的顶峰,而 Node.js 才刚刚出现,两者都体现了诸如代码简洁、快速原型设计和用于快速构建现代应用程序的库等功能。网络应用程序。换句话说,它们有很多 Java 所没有的东西,至少在当时是这样。

“所有这些东西后来都可以通过现代版本和 Spring Boot 等框架在 Java 中实现,但我们必须等到 2014 年 Java 8 的发布,复兴才开始,”van Wyk 回忆道。“Java 6 和 8 之间的近十年时间就是问题所在。”

如果说Java有一个濒临死亡的时刻的话,那就是那时了。对于 Java 来说幸运的是,公司和开发人员都全力以赴地使用 Java,并且它在许多组织中都根深蒂固。即使许多用户越来越不满意并且该语言的创新已经停滞,Java 仍然提供性能以及大量的库和工具。也许它从未完全兑现“一次编写,随处运行”的承诺,但它提供了一种高性能、内存安全的语言,非常适合互联网基础设施和大规模应用程序。

尽管如此,2014 年 Java 8 和 Spring Boot 的推出还是给 Java 生态带来了一股新鲜空气,并开启了一段复兴时期。Spring Boot 是十年前推出的流行 Spring 框架的继承者,最终帮助减少了 Java 众所周知的一些冗长内容,并且 Java 8 引入了开发人员一直焦急等待的许多功能,例如日期和时间 API 以及更多功能。Lambda 表达式的预期到来。

在六年的时间里,Java 占领了软件开发领域。尽管这一地位将持续十多年,但在 Java 世界中并非一切都如此。

关注公众号【可为编程】回复【面试】领取2023年最新面试题!!!

转折点

虽然 van Wyk 指出 2014 年是 Java 的一个重大转折点,但Eclipse 基金会执行董事Mike Milinkovich指出另外两个时刻也很关键。首先也是最重要的,随着 2018 年 Java SE 10 的发布,Java 的发布节奏发生了变化,确保每六个月发布一个新版本的 Java,而不是之前通常长达数年的时间范围。

“Java 现在正在与许多快速发展的平台竞争,”Oracle 产品经理Dalibor Topić说。“因此,它还必须开始更快地前进,最大限度地减少 Java 用户和开发人员等待新版本的痛苦,同时以惯用的高品质交付每个新的 Java 版本。”

通过致力于定期发布节奏,Java 加入了许多现代语言的行列。Ruby、.NET、Python 和 Javascript 都采用每年发布一次的节奏,而 Go 每六个月发布一个新版本,Rust 每六周发布一个新的稳定版本。凭借六个月的节奏,Java 功能可以更快地发布,并且在未准备就绪时更容易推迟,因为等待将不再是不确定的。范威克说,喷气推进实验室的创新立即得到改善。

“随着 Java 9 的出现以及 2018 年左右发布节奏的加快,Java 确实取得了长足的进步,”他说。“规模较小但频率更高的发布确实运作良好。”

与此同时,Milinkovich 指出 Oracle Java 开发工具包 (JDK) 的变化给 Java 开发人员和在生产或商业目的中运行 Java 应用程序的公司带来了巨大的影响。Oracle 于 2017 年首次宣布并于 2019 年 4 月生效,要求这些用户购买年度订阅才能继续接收 Oracle Java 平台标准版 (Java SE) 产品、Oracle JDK 8 和 11 的安全补丁。Java 的长期支持实际上是免费的。作为企业,您可以在 Java 上运行应用程序,而不必频繁地向前移动版本。这种现状发生了变化,迫使 Java 用户要么每六个月迁移一次,要么向 Oracle 或其他公司寻求商业支持许可。”Milinkovich 解释道。

Java 生态系统非但没有阻碍创新,反而蓬勃发展。这一变化促使亚马逊、微软、IBM、阿里云和华为等众多云提供商提供自己的经过技术兼容性套件 (TCK)测试和支持的 OpenJDK 版本作为回应。第一个回应是伦敦 Java 用户组发布的AdoptOpenJDK 。

伦敦 Java 用户组的负责人Martijn Verburg表示,该组首次发布 AdoptOpenJDK 是因为他们不确定开发人员在 Oracle 对 OpenJDK 的更改下拥有哪些使用权利。“他们希望确保为开发人员永久提供免费(如啤酒中)和免费(如使用中)的 OpenJDK 二进制文件,”Verburg 说。Verburg 解释说,AdoptOpenJDK 是一个“多利益相关者项目”,最终“转移到 Eclipse 基金会(称为 Adoptium),以在软件基金会中提供对免费二进制文件 (Temurin) 的访问权限。”

Milinkovich 表示,OpenJDK 的变化“鼓励多家公司参与成为自己的 Java 平台提供商的游戏。生态系统中供应商数量的增长有助于 Java 的多样性和可持续性,因为许多各方被迫投资于生产高质量的 Java 运行时。”

关注公众号【可为编程】回复【面试】领取年度最新面试题!!!

不要称之为卷土重来:Java 仍然会是冠军!_开发语言

Java 不那么缓慢而稳定地迈向未来

Java 经过近 30 年的发展,您可能会认为该语言会出现一些磨损的迹象,但事实并非如此。2022 年的 Java 并不是一种正在衰落的语言,而是一种为软件开发的蓬勃发展的未来做好准备的语言。当 Java 在 2010 年代中期再次开始创新时,云原生开发的阴影已经笼罩在头顶上,现在它越来越成为默认选项,特别是对于大规模运行的企业和软件而言。VMware 软件工程副总裁 Ryan Morgan表示,虽然 Go 等其他语言在设计时就考虑到了云计算,但 Java 却常常被认为体积庞大。

“Java 一直存在阴影,人们认为‘它臃肿、重量级、不是云原生、不是为云构建的、它不允许你在公共云中可能想要的密度’, ”摩根说。“为了真正消除这些神话,我们做了很多工作。”

就 VMware 而言,它正致力于通过即将发布的 Spring Framework 6 和 Spring Boot 3 来改进 Java 的云原生特性,Morgan 将其称为 Spring 的“第三幕”。使用GraalVM构建的 Spring 将提供“Spring 内的完整本机支持,这意味着您将能够采用任何 Spring 应用程序并将其编译为占用空间和启动时间更小的本机二进制文件。这对于您可能在边缘看到的各种其他工作负载确实非常有益。”

Spring 并不是唯一一个这样做的人。红帽的Quarkus和Micronaut项目都在帮助推动 Java 进入一些人以前认为 Java 不可能实现的领域:进入边缘并进入微服务架构,在这些领域,小尺寸和快速启动时间可能是关键。同样,Loom 项目的目标是通过在 JVM(而不是操作系统内核)中实现线程,将轻量级线程引入 Java 平台。“这代表着 Java 支持并发能力的显着提高,使该平台更适合当今的许多云规模应用程序,”Milinkovich 说道。“借助 Project Loom,用 Java 编写高度并发的应用程序对于开发人员来说将变得更加简单,并且比现在更具可扩展性。”

对于 Milinkovich 来说,他认为 Quarkus、Micronaut、Loom 和 Adoptium 等项目将 Java 引入下一代开发人员。

“Java 已经存在 25 年了,我相信它还会存在 25 年。我认为它正在经历一场复兴,无论是从技术角度来看,还是从生态系统角度来看,同样重要。”Milinkovich 说道。“开发人员要记住的一件事是,对 Java 技能的需求量非常非常大。这确实有助于吸引开发人员的持续支持,我认为您会看到 Java 在可预见的未来将继续保持在最受欢迎的语言和平台的前三名之列。”


欢迎感兴趣的小伙伴一起探讨学习知识,以上是个人的一些总结分享,如有错误的地方望各位留言指出,十分感谢。觉得有用的话别忘点赞、收藏、关注,手留余香! 😗 😗 😗


欢迎大家关注【可为编程】,成长,进步,编程,技术、掌握更多知识!

不要称之为卷土重来:Java 仍然会是冠军!_java_02