找回密码
 立即注册
查看: 126|回复: 0

Java正在卷土重来?别开玩笑了,它明明一直很火2

[复制链接]

3

主题

0

回帖

17

积分

新手上路

积分
17
发表于 2022-9-9 22:52:52 | 显示全部楼层 |阅读模式


“我们经常谈论 Kotlin 是一个生产游乐场。”Pinterest 的团队负责人兼软件工程师 Christina Lee 说。“Kotlin 不像很多 JVM 用例那样有很多遗留问题,所以他们的语言可以发展得非常快。这不是你在 Java 中可以做到的。这些分支语言让我们有能力快速尝试所有这些功能,然后将其中最好的特性功能补充到 Java 编程语言。”



Lee 指出了 Java 的一些新特性,如 Record 类和 Field 类,而 Kotlin 已经拥有这些特性好些时间了。Van Wyk 同样指出,模式匹配他是从 Kotlin 开始熟悉的一种语言特性,现在也已经进入到了 Java 中。“这是后发优势。”van Wyk 说。“正是因为 Java 是最后一个实现这些特性的,所以它可以挑选自己想要的,从而为开发人员带来他们所需要的东西,而不会搬起石头砸自己的脚。”



Van Wyk 指出 Scala 是最初帮助他学习函数式编程并让他站稳脚跟的语言。“Java 8 出现了,它也有函数式编程,我当时就想‘嘿,我已经知道如何使用它了!’”他说。类似地,Kotlin 帮助他了解了协程(Coroutine)支持,这是一个由 Go 编程语言普及的功能特性。“如果没有 Kotlin,一些即将推出的 Java 特性就会更加令人费解,”van Wyk 说。



2017 年,谷歌宣布它将在安卓系统上正式支持 Kotlin,与 Java 并列,自那时起,Kotlin 语言便开始流行起来了。Lee 表示,自那以后,Kotlin 一直是她的首选语言,而且她不打算回头,尤其是当谷歌自己宣布,从 2019 年开始所有的 Android 开发都将是“首选 Kotlin”。



对于 Lee 来说,Kotlin 提供了一种面向 Android 开发的方式,可以避免 Java 的一些陷阱,在面向移动平台开发时,这些陷阱尤其危险。例如,在编写 Java 时,NullPointerException 是一种常见错误,它可能会使应用程序崩溃,但直到运行时才能发现。Lee 说,这对于移动开发来说是个问题,因为与 Web 应用不同,Web 应用一旦部署,客户就可以立即获得缺陷修复,而应用商店可能需要几天或几周才能批准新版本。“比起在另一个生态系统中工作,我会更加重视语言的安全性。”Lee 说。“Java 是一门伟大的语言,但它没有像 Kotlin 那样为我们提供在 JVM 之上的这些层相同的工具来编写正确的代码。”



Lee 说,她没有把 Kotlin 和 Java 看成一场零和游戏,即一种语言的普及意味着另一种语言的衰落,她认为这两种语言是共生共存的。毕竟,它们实际上可以在同一个应用程序中并肩存在。事实上,对于有兴趣学习 Kotlin 的 Java 开发人员来说,他们可以简单地用 Java 编写一些东西,将其粘贴到 Kotlin 文件中,然后通过 IDE 将其自动转换为 Kotlin。“在我看来,这就是 Kotlin 如此成功的部分原因,”Lee 说。“这就是可转移性。”



Lee 给出了苹果选择从 Objective C 迁移到 Swift 的比较,在这一过程中,两种语言之间的通信需要额外的步骤。“他们没有互操作性的故事。要把 iOS 应用程序迁移到 Swift 上就困难多了。在 Pinterest,当我们第一次引入 Kotlin 时,你只需添加一个 Kotlin 文件,一切都能正常工作。你可以轻松地在文件之间调用,这为采用这些语言开辟了一条巨大的通道,否则就不会这么容易了。我认为这些语言能够很好地结合在一起的事实使它们非常、非常有凝聚力。”Lee 说。



她说,Kotlin 提供了一个完美的中间地带。“你可以保留所有现有的基础设施,并解决一些用户体验上的痛点。完全脱离 JVM 的理由变得越来越少了。”



稳定且不那么缓慢地步入未来

在 Java 使用了近 30 年之后,你可能会认为该语言已经出现了一些“磨损”的迹象,但事实并非如此。2022 年的 Java 并不是一门衰落中的语言,而是一门为软件开发的蓬勃发展而准备的语言。当 Java 终于在 2010 年代中期再次开始创新时,云原生开发的阴影已经笼罩在头顶,现在它越来越成为默认配置,特别是对于大规模运行的企业和软件而言。VMware 软件工程副总裁 Ryan Morgan 说,虽然诸如 Go 之类的其他语言被视为是为云而设计的,但 Java 通常被认为是笨重的。



“Java 一直被笼罩在阴影中,人们认为‘它臃肿、笨重,不是云原生的,也不是为云而创建的,它不允许你在公共云中实现你可能想要的密度。”Morgan 说。“为了真正消除这些误解,我们做了很多工作。”



就其本身而言,VMware 正在努力通过即将发布的 Spring Framework 6 和 Spring Boot 3(Morgan 称之为 Spring 的“第三幕”)来提高 Java 的云原生性”,使用 GraalVM 构建的 Spring 将会提供“Spring 中完全的原生支持,这意味着你将能够把任何 Spring 应用程序编译成本地二进制文件,并减少占用空间和启动时间。这对你可能在边缘地区看到的各种其他工作负载都非常有益。”



Spring 并不是唯一一个往这些方向努力的。红帽的 Quarkus 和 Micronaut 项目都在帮助推动 Java 进入一些以前被认为是不可能的领域:走向边缘计算,进入微服务架构,在这些领域,小规模和快速的启动时间是关键。类似地,Project Loom 旨在通过在 JVM 中而不是在操作系统内核中实现线程,将轻量级线程引入 Java 平台。“这代表了 Java 支持并发能力的显著提高,使该平台与当今许多云级应用程序更加相关。”Milinkovich 说。“有了 Loom 项目,用 Java 编写高并发应用程序对开发人员来说将会变得更加简单,可扩展性也更强。”



在 Milinkovich 看来,正是 Quarkus、Micronaut、Loom 和 Adoptium 等项目将 Java 带到了下一代开发人员中。



“Java 已经活了 25 年了,我相信它还会再活 25 年。我认为它正在经历一次复兴,无论是从技术角度,还是从生态系统角度来看,都是如此。”Milinkovich 说。“开发人员需要记住的一件事情是,Java 技能的需求量很大。这将真正有助于开发人员的持续支持,我想你会看到,在可预见的未来,Java 将继续保持在最受欢迎的语言 / 平台的前三名。”



原文链接:



https://github.com/readme/featured/java-programming-language


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|粤嵌技术交流空间

GMT+8, 2025-7-7 16:00 , Processed in 0.701025 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表