Java真的已经过时了吗?你还在学习吗?

发表时间: 2023-09-07 19:35

Java是一种广泛使用的面向对象编程语言和软件平台。它在数十亿设备上运行,包括笔记本电脑、移动设备、游戏机等。然而拥有这样的能力是需要付出代价的。Java 很难学,语法又长又复杂。它是静态类型,有时候可能不太方便。虽然它具有跨平台特性,但云计算平台的兴起使得跨平台不再是一种优势。

那么,为什么很多人说Java已死呢?

1.Java 越来越不受欢迎

首先,Java 的受欢迎程度似乎正在缓慢下滑。多年来,它一直是最好学的编程语言之一,但现在它不再那么受欢迎。这意味着,随着时间的推移,开发人员用 Java 编写的新应用程序将越来越少。

这一趋势意味着 Java 最终将消失。企业雇用 Java 程序员只是用于维护遗留代码库。以下是2022年语言受欢迎程度排名(国外)。

编程语言

2022年

Python

1

C

2

JavaScipt

3

C++

4

C#

5

Visual Basic

6

Java

7

Assembly Language

8

SQL

9

PHP

10

2.Java并不简单

Java 可能很容易学,但并不简单,体现如下。

  1. 语法复杂性:Java 语言有许多关键字、语法规则和编码约定,使得它的语法比较复杂。对于初学者来说,理解和掌握这些概念可能需要花费更多的时间和精力。
  2. 冗余的代码量:相对于其他编程语言,Java 往往需要编写更多的代码来完成相同的任务。这是由于 Java 的设计哲学中注重代码的可读性和严格的类型检查,但也增加了学习和编写代码的工作量。
  3. 开发环境设置:在开始学习和实践Java之前,需要安装和配置开发环境,包括JDK(Java Development Kit)和IDE(集成开发环境)。这个过程对于初学者来说可能会感到有些复杂和困惑。

3.语法糖较少

相比于其他语言来说语法糖较少(虽然也正在慢慢补齐)。

4.受检异常

我一直认为受检异常弊端远大于利。受检异常意味着我们需要显式处理,通常情况下我都建议不使用受检异常。假设一个方法调用链:a() -> b() -> c() -> d() -> e() throws Exception,最后一个方法抛出了受检异常,那么上级就得思考要不要处理或者持续抛出,一般情况下都会选择抛出(因为一般处理也就打个日志),所以上上级也会这么做,导致很多无用的异常抛出。

5.复杂的IDE

Java 程序员经常使用 Eclipse 或 IntelliJ 等 IDE。这些 IDE 功能强大,但交互起来很复杂,尤其是对于初学者或中级开发人员而言。需要投入大量精力学习,才能提高工作效率。

6.跨平台特性已经不那么重要

在10年或者更早之前,Java的跨平台特性绝对是首屈一指。但如今,虚拟机、容器和云服务可以轻松地在任何地方运行应用程序,无需担心底层环境,所以跨平台也不那么重要了。


7.笨重的JVM

在微服务盛行的今天,JVM带来的成本是非常大的,即使一行Hello world代码,打包出来jar包的大小都要几百兆,且运行内存少则几百兆,相对于其他语言来说,可能只要几兆。这对于企业的成本来说是一大挑战。

综上所述,你觉得还有必要再学 Java 吗?

我觉得很有必要,在当前国家大力推动国产化进程的情况下,要做到软件自主、可控,像C#、go、rust等虽然开源,但生态不像 Java 这么完善,尤其在国内基础薄弱,至少很长一段时间不会在信创名单里。所以 Java 在中国还有很长一段路可以走。