别再说Java正在消亡,Java从各方面来看,它依旧生机盎然。

本文反驳了“Java正在消亡”的观点,指出Java的语法、可靠性、生态系统和未来仍有其独特优势。Java的语法允许灵活编程范式,IDE支持强大,可靠性高,向后兼容性好,且生态系统庞大。尽管引入新功能速度较慢,但其稳健性保障了其长期使用。Java适用于多种场景,包括网络应用、游戏、物联网等。尽管有启动时间和内存占用问题,但通过如GraalVM的优化,这些问题已在一定程度上得到解决。Java的未来依然光明,是值得信赖的技术选择。
摘要由CSDN通过智能技术生成

0. 阅读完本文你将会

  • 了解Java作为热门语言之一所面临的争议
  • 了解Java的生态环境和未来

1. 前言

原文标题:Why Java Is Perfectly Alive——A response to "Why Java Is Dying"

原文地址:betterprogramming.pub/why-java-is…

原文作者:Ivan Khodyrev

注:文中所有图片均来自原文

译者按:编程语言界一直很热闹,各种鄙视链,口水战层出不穷,Java作为长盛不衰的热门语言之一也避免不了诸多争议。今天我们从国外作者的视角来看看这篇1800赞的热门文章,是怎么为Java做"无罪辩护"的。

2. 正文

我写了这份长篇读后感,以此作为对 "为什么Java正在消亡 "这篇文章的回应。我在这篇文章下面的评论已经置顶了,我想我应该写一篇全方位的分析文章。

对于原作者文章最好的简短回答其实是Coder:76的回答,他的回答得到了数百赞。

对于一些想要获得关注的博主来说,Java这15年以来一直处于濒死或者已死的状态。

我对此非常赞同。

2.1 "Java正在消亡"的说法有什么不妥?

那篇"为什么Java正在消亡"的文章收到了70多条评论,其中大部分是批评,每条都有几十、几百个赞。为什么这么多人的评论如此负面?原因很简单。这篇文章写得很有挑衅性,包含了许多有争议的说法,对于使用Java的人来说,这些说法与现实的状况相去甚远。让我们来看看其中的一些内容。

"例如,Spring配置了自动注入(bean injections),这是可以理解的,但是,Lombok在应用环境中处于什么位置,两者之间的消息传递是如何协调的?"

对于使用上述技术的人来说,这种说法看起来是错误的。Lombok是一个编译时库,Spring是一个运行时库。它们在应用生命周期的不同时期工作在不同的层面上,并不直接互动。作者的问题 "Lombok在应用环境中处于什么位置?"的正确答案是"没有位置"。

"Java的重点似乎还是在愚蠢的规则上,这些规则规定了类名应该是什么,它们应该在什么包里,以及变量应该是私有的还是保护的。说真的,谁在乎呢?"

从事大型、长期项目工作的人很在意。这些规则对他们来说并不傻。

"相比之下,'我们都是成年人'简直就是Python对语言中没有访问指定器的官方回应。"

在团队中有人假设别人不是成年人,这没有什么问题——这是一个浅显的想法。问题是,持续时间长、由大团队创建的大型项目需要规则;否则,它们会失败。

一个大型项目就像一个大型城市。它需要建筑基础、规划、关注点的分离、私人和公共区域。如果一个熟练的程序员将语言结构分为公共和私人,他们很可能创造出 "街道",将其他人引向正确的方向,节省他们的时间,并将辅助的基础设施隐藏在"地下",这样就不会有人在那里迷路。

在"为什么Java正在消亡"这篇文章中,还有很多有争议的说法,但我在这里的目标不是详细分析。我想做的是利用这个机会谈一谈Java现在的状况。

多年来,Java是编程语言中的首选之一,同时也是批评家的鞭挞对象。不是因为它不好,而是因为它是个惹人注意的目标,如果你想让自己获得更多的关注,你就必须说反对它的话,并祈祷有人会注意到。从这个角度来说,Java是一个很好的目标。

但是现在呢?Java仍旧是一个香饽饽?还是像有些人说的那样正在"死亡"?让我们来讨论一下最重要和最有争议的话题,以便弄清楚这个问题。

2.2 语法

通常,Java的语法被批评得最多:"不简洁"、"写法过时"、"太多的模板",等等。对于这些"论点",唯一正确的答案是展示代码。我不会在这里讨论特殊的语法特征,有很多详细的指南,涵盖了Java语法的所有细微差别。相反,我选择了五个代码片段,只是为了让你了解现在的Java在不同的实际任务中是如何运作的。

import static spark.Spark.*;
public class HelloWorld {
    public static void main(String[] args) {
        port(80);
        get("/hello", (request, response) -> "Hello World");
    }
}
复制代码

你可能听说过以前的"好"日子,一个简单的Java网络服务器需要几百行代码和配置才能运行?现在忘掉它们吧。

这段代码使用Spark Java在80端口启动了一个简单的网络服务器,采用HTTP GET方法和/hello上下文路径,在请求时返回一个常量字符串。非常直接和简洁,不是吗࿱

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值