20年后的Java,跟得上节奏吗?

译文 精选
开发 前端
Java是明星编程语言,我们不能忽视它是如何帮助改变今天的编程语言的。Java的建立是为了解决一些问题,但作为副作用,它也产生了新的问题。在我看来,10年后,人们会开始抱怨今天的语言,一种新的语言将被创造出来解决这些问题。

作者 | Nishant Aanjaney Jalan

策划 | 云昭

51CTO读者成长计划社群招募,咨询小助手(微信号:CTOjishuzhan)

Java已经存在了将近30年。从1997年开始,有30亿台设备运行Java。现在Kotlin、Scala等更新的JVM语言流行了,Java是不是已经过时了?人们开始厌弃Java了吗?

我相信有很多人喜欢Java。很自豪本人也其中的一员。当像Kotlin和Scala这样的语言出现时,我发现这些语言更好。当然,这绝不意味我讨厌Java。

一、Java过去到底有多受欢迎?

Java的受欢迎程度如此之高,以至于ECMAScript被昵称为JavaScript,因为它在我们心中取代Web Assembly的速度和Java一样快。

可以列举几个例子来说明Java是一种受欢迎的语言。

图片

二、Java为什么受欢迎?

1.平台无关

因为Java运行在Java虚拟机(JVM),相同的代码可以毫无困难地在多个平台上运行。另一方面,c有多个编译器为不同的isa编写汇编代码。如果一个C程序可以在机器A上运行,它不能保证在机器b上运行。

类似于C和C++的语法Java与C和C++共享一个相似的语法,这使得程序员不用重新学习所有的东西就可以切换到Java。

2.没有更多的指针

Java消除了指针的外部处理。这意味着你不再有那些烦人的缺点了。Java使用了指针(当然),但是代码是以各种方式抽象的。

3.自动垃圾收集器

在C和C++中,当对象不再被使用时,程序员必须手动释放内存(这需要大量的内存泄漏)。在Java中,基于程序员应该知道的某些规则,垃圾收集器会自动为您释放未使用的分配内存。

4.面向对象的编程

Haskell是一种纯粹的函数式语言。它严重依赖于数学技能,需要练习才能掌握。Java是一种纯粹面向对象的语言,与现实生活联系紧密。这种转变平滑了学习曲线(当然这在以后会变得非常困难)。

5.清晰的结构

Java的语法非常结构化。类中的一切都有助于理解相关的信息和功能。从第一句“你好,世界!”,您需要对类语法有一个基本的了解。在Java的帮助下,重要的原则、设计模式和编程范例可以很容易地得到解释。

回顾以上原因,没有理由讨厌Java。Java曾经是语言在2000年代。许多政府软件和银行都使用Java,其中一些现在仍在使用。

三、现在发生了什么?

不管人们怎么说,现在Java正在衰落。虽然Java仍然被维护着,全球仍然有许多Java开发者,但是作为编程语言,过去的辉煌现在已经一去不复返了。

1.无效

作为“空引用”的创造者,东尼·霍尔在一次采访中说,“这是一个十亿美元的错误”,因为它会导致意想不到的行为和程序崩溃。Java在核心库中采用了null,这使得它类似于在c中处理segfault错误。

2.刚性

在用Java编程一段时间后,您会注意到您多次编写了相同的代码。随着技术的进步,Java中的样板代码激增,从而使其变得庞大。

3.没有函数式语言支持

正如我前面所说,Java是纯面向对象的。然而,程序员需要命令式和声明式语言都包含的特性。

4.继承抽象中的一个缺陷

Java中有四种访问说明符:公共的、受保护的、私有的和受包保护的/默认的/友好的。没有办法允许对子类的访问并限制对包中其他类的访问。

四、Java历史上的重要改进       

1.Java 8的改进

Java维护者没有忽视开发者的请求。

(1)功能支持—他们引入了流API的功能接口。然而,由于向后兼容,实现它仍然很笨拙。

(2)Optionalclass— Optional是无效问题的一种解决方法。尽管如此,包括Optional并没有消除null的可能性,因为它在Java的核心库中根深蒂固。

2.Java 12改进

表达式中引入Switch语句,减少了条件控制流中的一些样板。       

3.Java 16改进

Java中引入了record,它在编写POJOs(普通的旧Java对象)时,删除了大部分样板文件。

五、Kotlin和Scala的到来

就像Java是对C++的改进一样,Kotlin是对Java的改进。 Kotlin的优势如下:

1.大大减少了样板文件。

2.根深蒂固的Null安全。

3.引入了字符串模板(受Python/PHP的启发)。

4.介绍sealed class(受Rust/Haskell启发)。

5.多范例语言(改进的OOP和融合性的功能)。

6.运算符重载(如C和Python)。

7.引入了data class(Java中的record)。

8.其他杂项功能,如扩展和内联函数,以及协程。

因为我从未使用Scala编程,所以我不在文中讨论它的好处。当然,Java也在进化。

六、结论

仅仅因为更好的东西出现了,并不意味着我们厌弃了Java。

Java是明星编程语言,我们不能忽视它是如何帮助改变今天的编程语言的。Java的建立是为了解决一些问题,但作为副作用,它也产生了新的问题。在我看来,10年后,人们会开始抱怨今天的语言,一种新的语言将被创造出来解决这些问题。

如果没有Java,现代语言不会像今天这样强大。正如C++之父所言,世界上只有两种语言:人们抱怨的语言和没人使用的语言。

责任编辑:武晓燕 来源: 51CTO技术栈
相关推荐

2015-12-17 16:22:15

数据中心企业数据中心

2009-12-28 09:51:41

微软前员工

2017-11-14 19:18:49

比特币预测趋势

2016-04-13 10:52:12

2020-09-22 15:03:39

编程语言RubyCOBOL

2020-10-14 12:12:48

机器人

2019-08-02 11:53:50

Android开发学习

2012-04-12 14:43:46

激光打印机评测

2009-10-22 20:48:28

IT管理统一通信

2019-10-30 10:42:42

CIO数字化转型开发

2021-03-03 23:15:53

数据分析就业辞职

2012-07-16 13:43:03

前端开发

2010-01-12 17:47:31

C++语言

2010-06-12 10:47:24

2019-05-31 09:10:09

程序员技能开发者

2023-10-16 10:16:14

芯片英伟达

2016-03-15 10:57:42

数据中心

2017-12-25 09:16:09

微信高效运维

2009-03-04 09:59:04

职场心情痛苦

2016-03-04 16:22:23

WP微软移动
点赞
收藏

51CTO技术栈公众号