Java是一种广泛使用的面向对象编程语言和软件平台。它在数十亿设备上运行,包括笔记本电脑、移动设备、游戏机等。然而拥有这样的能力是需要付出代价的。Java 很难学,语法又长又复杂。它是静态类型,有时候可能不太方便。虽然它具有跨平台特性,但云计算平台的兴起使得跨平台不再是一种优势。
那么,为什么很多人说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 |
Java 可能很容易学,但并不简单,体现如下。
相比于其他语言来说语法糖较少(虽然也正在慢慢补齐)。
我一直认为受检异常弊端远大于利。受检异常意味着我们需要显式处理,通常情况下我都建议不使用受检异常。假设一个方法调用链:a() -> b() -> c() -> d() -> e() throws Exception,最后一个方法抛出了受检异常,那么上级就得思考要不要处理或者持续抛出,一般情况下都会选择抛出(因为一般处理也就打个日志),所以上上级也会这么做,导致很多无用的异常抛出。
Java 程序员经常使用 Eclipse 或 IntelliJ 等 IDE。这些 IDE 功能强大,但交互起来很复杂,尤其是对于初学者或中级开发人员而言。需要投入大量精力学习,才能提高工作效率。
在10年或者更早之前,Java的跨平台特性绝对是首屈一指。但如今,虚拟机、容器和云服务可以轻松地在任何地方运行应用程序,无需担心底层环境,所以跨平台也不那么重要了。
在微服务盛行的今天,JVM带来的成本是非常大的,即使一行Hello world代码,打包出来jar包的大小都要几百兆,且运行内存少则几百兆,相对于其他语言来说,可能只要几兆。这对于企业的成本来说是一大挑战。
综上所述,你觉得还有必要再学 Java 吗?
我觉得很有必要,在当前国家大力推动国产化进程的情况下,要做到软件自主、可控,像C#、go、rust等虽然开源,但生态不像 Java 这么完善,尤其在国内基础薄弱,至少很长一段时间不会在信创名单里。所以 Java 在中国还有很长一段路可以走。