当前位置: 首页 > 图灵资讯 > 技术篇> Java 仍然伟大的 7 个原因

Java 仍然伟大的 7 个原因

来源:图灵教育
时间:2023-05-30 09:39:32

Java 它经历了技术领域的根本性变化,并对其突出地位构成了许多威胁。是什么使这项技术如此伟大,Java 未来会怎样?

Java 仍然伟大的 7 个原因_面向对象

软件领域最引人入胜的现象之一是 Java 卓越的地位经久不衰。作为一种语言和平台,Java 在技术领域经历了翻天覆地的变化,其内部结构也发生了变化。二十多年来,Java 如何保持企业和开源的中心地位?让我们来看看几个突出的因素。

目录

  • Java 社区进程
  • 开源框架和工具
  • 依赖注入
  • 一切都是对象
  • 虚拟机

展示更多

Java 社区进程

Java 诞生之初是传统做事方式的替代品——某种新贵。如今,尽管它一再面临挑战,但它仍被公认为企业软件的支柱。如何解释如此剧烈的变化? Java 可持续相关性?一个重要因素是社区的热情,这是通过让开发人员参与治理结构来培养的 Java 保持活力。

Java 治理远不是一台运行平稳的机器。它是一种利益竞争和组织混乱的混合体。它们在Java 社区进程 (JCP) 和 Java 规范请求 (JSR) 找到自己的发言权。归根结底,JCP 是深切关注 Java 技术人员做出贡献和解决冲突的地方。这是官僚主义、政策和创造力的神秘结合。事实上,它就像一个正常运作的民主国家。

作为长期的 Java 程序员成功地看到了语言的结合 lambda 和闭包,我很惊讶——其实很惊艳。在面向对象的编程语言中添加函数结构是一项有争议和令人印象深刻的壮举。将 Hibernate 和 Spring(分别是JSR 317和JSR 330)在官方平台上吸收技术引入的概念也是如此。如此广泛使用的技术仍能融合新思想,令人兴奋。

Java 响应能力有助于确保语言包含有用的改进。这也意味着开发人员知道他们在一个生命系统中工作,这个系统正在不断培养和培养,以便在不断变化的世界中取得成功。Project Loom——重建一项 Java 并发模型雄心勃勃的努力——强调 Java 致力于开发的项目示例。目前通过 JCP 其他几项工作提案表现出类似的意愿,以追求改进 Java 技术的主要目标。

从事Java工作的人只是故事的一半。使用它的人是另一半,他们反映了 Java 许多用途的多样性。社交编码和开源不是 Java 但它们是独一无二的 Java 生态系统健康发展的关键组成部分。与 JavaScript 一样,随着 Web 的发展,Java 与编码社区一起发展。起源故事是其性格的重要组成部分。

开源框架和工具

Java 成功的另一个重要驱动力是围绕它构建的大量开源框架和工具。几乎所有你可能需要的东西都有一个或多个可用的库。如果你喜欢一个项目,它很可能是开源的,你可以为它做出贡献。这对学习和建立社区非常有用。

 

不久前,我进行了深入分析 YAML,并发现了SnakeyAML项目。很快,我就忙着用这个新项目做一些异国情调的事情。不久之后,我正在和项目所有者聊天。

当我需要在金属附近安排一些复杂的过程时,类似的事情也会发生。首先,我发现了Nuprocess项目,然后我贡献了一个小的修复程序。这种交流丰富了程序员的生活。它们也是开源项目的发展模式。

Java 生态系统中有丰富的项目,从我共享的例子,到数据库驱动程序和类似技术,再到不朽的项目。有应用程序服务器,如tomcat和Jetty,Hibernate,甚至Eclipse。 IDE。都是邀请贡献者的开源项目。

依赖注入

如果不向Spring致敬,对 Java 欣赏生态系统将是不完整的。这个元框架可能是其他元框架可能追求的标准。为什么?因为 Spring 允许您使用相同的工具编写自定义代码,并将第三方代码合并到您的程序中。依靠注入和控制反转的实现,Spring 它不仅使您的内部组件更加标准化,而且还将类似的标准化扩展到第三方项目和供应商准备其组件。这使得您在程序中使用这些组件的方式更加一致。

当然,对 Spring 批评是有效的,它并不总是正确的工具。Google Guice是另一种类似的工作方式 Spring 工具。但是 Spring 作为一个框架,引入了一种干净一致的方式来提供和组合应用程序组件。这在当时改变了游戏规则,今天仍然至关重要。

一切都是对象

如果说 Java 背后和使用 Java 人是让船继续航行的风,所以 Java 技术方面是风帆。令人印象深刻的是,最初的 Java 标准像雅典娜一样从一个头脑中涌现出来(詹姆斯·高斯林的头脑),但仍然足够灵活,今天仍然有相关性。

Java 设计的一个重要特点是在 Java 一切都是对象。

在当前偏爱函数编程的开发环境中,有时会放弃 Java 面向对象编程在这方面非常流行。Java 管理者通过将一些函数编程习语合并到语言中来做出回应。但他们一直坚信 Java 它仍然是一种强烈的面向对象的语言,在这种语言中,一切都是对象。

可以在任何例子中编写伟大或糟糕的代码。输入 Java 在系统之前,你知道它是一个强大的类型,所有的内容都包含在类别中。这种设计决策的绝对性消除了复杂性,使用它的语言和程序更简单。写得很好 Java 该程序具有编写面向对象代码的机械优雅性。该功能是交互组件的结果,如机器中的齿轮。

这种方法的代价是在学习的早期阶段感到困惑。几乎每个人 Java 初学者会遇到关键问题:那里的关键词是什么?public,什么是类,为什么我需要写“public static void main(String[] args)只能打印“打印”hello world”?

但考虑到这些学习曲线是大规模订单的有力方面:初学者正在遇到并吸收复杂的概念,这些概念是 Java 做事方式的基础。你可以说 Java 程序严格基于类结构,适合大规模编程。随着系统规模的增长,较小规模的结构可能会变得更加有益。在许多情况下,它证明了早期学习的负担是正确的。

可以肯定的是,是的 Java 抱怨语法是合理的——JavaScript 和所有其他语言一样。就像 Bjarne Stroustrup曾经说过:“只有两种语言:人们抱怨的语言和没有人使用的语言。”

虚拟机

Java虚拟机是 Java 另一方面,它偶尔会受到批评。在其发展时期,JVM 它是一种大胆的技术解决方案,用于运行过程中的环境多样性。从那时起,它有时似乎是过度结构负担和性能困难的根源。但经过多年的不断改进,该技术逐渐证明了其正确性。它也被证明是相当有先见之明的。最近,世界迷上了虚拟机。它们无处不在,甚至形成了云计算的最低层。

用于devops 容器和无服务器架构,JVM 具有明确定义的特征和控制,提供了明确的部署环境目标。现代 Java 虚拟机也值得一看。它们提供复杂的自动内存管理,开箱即用性能接近C。

企业创意

软件开发由企业和创意两大趋势组成。编码有一种创造性的快乐精神,这是唯一可能的解释。例如,在地牢模拟器上工作25 年。这种创造力与扎实的商业用途相结合,是为了让 Java 保持活力的炼金术。软件项目必须为两者腾出空间,才能取得长期的成功。Java 已经做到了。

WebAssembly 和 Java 的未来

在临别笔记中,让我们确定另一个即将到来的潜在分水岭事件:Webasembly或 WASM。WASM 中的 Java 目前有限,未来如何发展还不确定。但有一天 Java 可能会像 JavaScript 同样在浏览器中使用——也就是说,它可以完全访问 DOM 和浏览器 API。再次想象浏览器中的内容 Java,但这次是真的。奇怪的事情发生了。