共计 2603 个字符,预计需要花费 7 分钟才能阅读完成。
前言
你常常会听到“Java 开始败落了”的说法,所有人都应该尽快切换到 Go,python 等更先进的语言。他们说这对他们来说会领有更多倒退空间及就业机会,但对每个人都将要放弃的相熟的编码语言来说付出的代价是十分大的。但这都是真的吗?
您在下这个决定之前,你看到两种不同的说法。有人含糊其辞地说“Java 正在败落”:该语言辉煌的时代曾经过来,须要它的人越来越少,剩下的人行将放弃它。也有人认为 Java 在遍及方面可能没问题,但从技术上讲它停留在好几年前,所以当初学它很难失去更大倒退。当然,要给出精确的答案,最简略的办法是购买所有编程语言的钻研论文,但咱们没有钱和工夫。因而,让咱们看一下可用的信息,并一 一查看这两个论点。
“没有人想学 Java”
在第一种状况下,让咱们看看牢靠的数据而不是“我认为是”。可怜的是,世界上语言的风行度并没有繁多的指标,所有可用的资源都可能极大地误导。然而如果你比拟几个不同的起源,你能够比“我的敌人身边的敌人都用 go 编码”更有牢靠的后果。
首先“热门风行编程”中最驰名的就是 TIOBE 指数。是的,可能你对其中的后果存在疑难;你不能自觉置信它,但你也不能齐全漠视它。咱们看看最新的数据—2021 年 7 月,Java 排在第二位。依据 TIOBE 的说法,它不仅不是一种“败落的语言”,而是世界上最风行的语言之一。
另一个驰名的起源是 Stack Overflow 的年度开发者考察。咱们看看 2020 年的民意调查后果。乍一看,Java 的地位要弱得多,仅排在第五位。然而,当咱们更认真地察看“当先的曲线”时,印象会发生变化:它是 JavaScript、HTML、CSS 和 SQL。首先,这个民意调查不仅包含编程语言,还包含脚本语言。其次,后面的所有选项都有一个共同点,就是开发人员除了次要语言之外还常常应用它们。如果 .NET 和 Java 开发人员都应用一点 SQL,所以在考察中都提到了它,这是否阐明 SQL 比 C# 和 Java 更重要?
在这里,看看第三个起源很乏味—— JetBrains 的一项考察。在这种状况下,论断是最罕用的语言通常是 JavaScript,但最风行的次要语言是 Java。
在这里,有人可能会辩论说“但动静可能是负面的”。数字因起源而异,因而无奈相对必定地说出任何事件,但如果每年呈现大幅降落,那将是不言而喻的。实际上恰恰相反——在所有三个起源中,Java 的地位至多能够稳固 2-3 年。总而言之,如果您当初开始学习 Java,几年后您将会因为会 java 减少更多待业抉择。
“会一门人少的人更加有机会”
为什么一门语言的受欢迎水平很重要?为什么要应用与其他人雷同的语言?当然,没有严格的要求,有人会用 Haskell(应用人数十分无限) 写就很开心。这里有几个重要的因素。\
一、待业市场的规模
如果您公司的一位要害开发人员决定辞职,应用一个非常少会的编程语言写一个我的项目,那么找到代替他的地位容易吗?而相同的问题:如果你是那个退出的开发人员,在你的畛域找到一份好工作容易吗?Java 是领有最大的待业市场之一,比 Go 大得多。
二、丰盛的文档阐明
该语言的高风行度意味着互联网上会有很多对于它的阐明文档(博客文章、报告、Stack Overflow 的答案),然而当你应用一种常见的语言时,你可能会面临信息匮乏的问题. 做先锋当然有肯定的劣势,但这并不是疾速解决问题的最佳策略。
这样的问题和“它有模式匹配吗?”一样重要。在抉择语言时,Java 因为生态系统的规模而具备微小的劣势。因为很多人应用它,所以在创立新我的项目时它是一个不错的抉择,这反过来又激励了更多人的退出。在将来几年这种自我维持的过程必定不会隐没的。
“Java 停滞不前了”
当初让咱们持续探讨第二个论点:历史是不断前进的,当初科技那么发达,java 是一门 90 年代的编程语言,不先进了,当初新出的编程语言越来越多。您会更加先进的语言时,为什么要抉择 java?
一般来说,对于很多人来说,更重要的不是语言自身,而是它的平台和“四周的所有”:次要供应商的解决方案和爱好者的开源库、IDE 反对和代替 JVM 语言。如果咱们将所有这些作为一个整体来思考时,你就会投入 java 的怀抱。
咱们不须要看其余语言,咱们间接看看最近十年 Java 产生了什么。
2011 年,甲骨文收买了 Sun Microsystems,获得了 Java 的控制权,过后 java 前景不明朗。进入甲骨文的其余产品(OpenOffice、Solaris、Hudson)的将来很艰巨。
在这里,甲骨文并不只是为了领有 java 的资源而放弃 java,而是将资源投入到开发中。
2014 年公布的 Java 8 版本堪称是互联网上的一件小事;因为技术上的翻新,java 语言产生了显著的变动。业界迫不得已地承受了这个版本,更违心过渡到 java 8 中。
2017 年,随着 Java 9 的呈现,一个长期存在的 JDK 模块化我的项目公布。与任何存在数十年的重大项目一样,JDK 中的外部依赖项随着工夫的推移开始变得像意大利面条。为了“看到”它,必须将这些依赖关系分解成一个连贯的零碎——也就是说,实质上是进行了一次微小的重构。对于真正“陷入过来”的我的项目,这种状况不会产生。
从 2018 年开始,一个新的公布周期开始失效:他们没有筹备频繁公布 Java 大版本,而是开始每六个月公布一个较小的版本。这样做只是为了跟上行业的步调,更快地公布性能(如果有些性能曾经筹备好,您不用将它们搁置多年,直到下一个版本公布)。并且有法则的公布流并没有把所有都颠倒过去,但依然减少了一些值得注意的货色。
一般来说,议论一个语言不足倒退是十分不利的。咱们能够议论的是 Java 与其余语言相比具备更大的激进性。确实,在很多问题上,他们都尽量审慎行事,而不是一头扎进。但这又引出了下一个问题:“一头扎”真的是坏事吗?
几年前,前端世界有很多埋怨新的框架的更新越来越快,让他们无奈放弃沉着和专一。在 Java 社区中,当初也不是每个人都对新版本公布周期感到称心。
论断
技术倒退的速度没有一个正确的规范:对初创企业无利的对大型企业不利。Java 的保守主义自身既不是长处也不是毛病:它对某些人无利,对其他人不利。
综上所述,并不意味着 Java 对所有人来说都是世界上最好的语言。抉择一种语言时,值得看一下具体需要是什么,而不是依附互联网大喊“从 X 到 Y,否则你就落后了”。如果你放弃沉着的思考,Java 在大多数状况下依然是一个不错的抉择。