​Arik​

Posted on 2018年10月23日 • Originally published at ​​Medium​

翻译一篇文章 Why I love Java,原文​​链接​​。

我为什么喜欢 Java ?_java

Java 无疑是当今世界上最流行的编程语言之一。像谷歌、亚马逊和 Netflix 这样的公司--仅举几个大名--都在使用 Java 构建其基础设施和后端服务的很大一部分。但是,尽管它大受欢迎(或者也许是因为它),Java 在程序员中的名声是毁誉参半的。有些人似乎真的很喜欢它,而另一些人则讨厌它。


就我个人而言,作为一个在专业领域使用该语言超过十年的人,我发现它是一种优秀的语言。不,它并不完美。而编程世界--由于它还很年轻--仍在从自己的错误中学习。但是,在所有其他事情都相同的情况下,我认为 Java 的优点比缺点多得多。


以下是我认为 Java 做的比较好的几个点。


它是一种生产性语言

作为一个程序员,我得到报酬需要解决问题。在最短的时间和最高的质量。我的软件被期望是健壮的(bug free),高性能的和可维护的(容易扩展)。我通常会编写大型、分布式和相当复杂的服务器端软件。


Java 是一种纯粹的面向对象的语言。对不熟悉的人来说,这意味着你要围绕被称为 "对象 "的代码单元来设计你的代码,这些对象与现实世界的对象(或概念)宽泛地相似。因此,如果你要写,比如说,一个图书馆管理软件,你很可能有这些代码对象来代表书籍、成员、工作人员,但也有更抽象的概念,如文学体裁和借阅功能。


这恰好是组织软件(和你的想法)的一种非常巧妙的方式。你不要把你的系统想成一个大的逐行的、一步一步的算法,而要把它想成一组相互作用的对象。如果做得好,这些对象中的每一个都可以独立于其他对象进行推理。每个对象都可以在与其他对象隔离的情况下被测试,每个对象都可以被扩展而不一定影响整个系统。


Java 并没有发明面向对象编程的思想。事实上,OOP 可以追溯到 60 年代末,但 Java 语言的设计者在语言中很好地实现了这一思想,使其对程序员来说是实用和富有成效的。


Java 虚拟机

Java 最方便的功能之一是 Java 虚拟机(或 JVM )。JVM 基本上充当了你的 Java 代码和你的代码所运行的特定操作系统之间的翻译者。这就是曾经著名的 Java 营销口号 "write once, run anywhere "的由来。如果没有 JVM ,你就必须为每个操作系统分别编译你的代码。JVM 保证你的 Java 代码在 Linux、Mac 或 Windows 上的运行是相同的。


Java 语言设计者还设想了一个世界,除了 Java 之外,其他语言也可以在 JVM 上执行。为此,他们指定了一种低级语言(称为 "字节码"),这是与 Java 兼容的语言,是在 JVM 上实际执行的东西。因此,今天有数十种语言指向 JVM。


自动内存管理

如果你曾经使用过 C 或 C++ 这样的语言,那么你就非常熟悉在程序中手动管理内存分配(和销毁)的艰苦努力。这是一个充斥着错误的区域,以至于 Java 编程语言的设计者决定完全取消它。他们决定让 Java 自动完成所有的内存管理,而不是让程序员有机会自寻烦恼。


在 Java 中,程序员只需创建他们需要的任何对象(无需明确担心为其分配内存),一旦程序不再使用该对象,Java 将自动回收该内存。


站在巨人的肩膀上

Java 是由计算机科学界一些最聪明的人设计和实施的。Doug Steele、Joshua Bloch、Mark Reinhold 和 Brian Goetz 等人是真正的大师级人物,他们是我的灵感和学习的源泉。不仅仅是关于 Java 本身,更重要的是,关于编写更好的软件。


巨大的社区

根据维基百科,截至目前,全世界有 900 万名 Java 开发者。这是一个巨大的优势,因为对于你作为一个开发者遇到的每一个问题,都很有可能有人在某个地方已经解决了这个问题的变体或相同的问题。通常情况下,简单的在线搜索就能发现多个来源,可以用来解决或至少是接近这个问题。


优秀的框架和库

Java 有大量的框架和库可供选择。从记录,到网络开发,到数据库连接,到消息客户端,几乎所有的问题都有一个(或几个)库来帮助解决。我特别喜欢的是 Spring 框架,它已经成为任何涉及网络(HTTP)技术的工作的事实框架。

至少可以说,使用 "原始 "Java 编写 Web 应用程序是一项繁琐的工作。此外,Spring 的设计者注意到,许多程序员都在试图解决相同(或非常相似)的问题,而每个人解决这些问题的方式都略有不同。Spring(及其庞大的子项目组合)是为了给程序员一个台阶下,给他们提供一套坚实的积木来为他们的项目做基础。

结束语

有许多优秀的语言可以选择。Java 只是其中之一。这篇文章绝不是要声称 "Java 是最好的 "或 " Java 比 X 语言更好"。它只是为了感谢那些使 Java 成为可能的优秀工作。