Kotlin VS Java , 终将能追赶上 步伐?

Posted androidstarjack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin VS Java , 终将能追赶上 步伐?相关的知识,希望对你有一定的参考价值。

点击上方蓝色“终端研发部”,选择“设为星标”
学最好的别人,做最好的我们

整理 | 苏宓

出品 | CSDN(ID:CSDNnews)

犹记得 2017 年 Google I/O 大会上,Google 宣布 Kotlin 语言为 android 开发的一级语言。时隔四年,Kotlin 的用户量在不断递增,在《2020-2021中国开发者大调查报告》中,轻芒联合创始人、前豌豆荚技术负责人范怀宇也曾评价道,“Kotlin 虽然在统计中总的比例不高,但在 Android 开发上进一步在取代 Java。Kotlin 作为另一个基于 JVM 的编程语言,一方面,可以保持 Java 使用 JVM 稳定和高性能的好处,享用 JVM 已有的生态;另一方面,通过其更为灵活的语法特性,越来越广泛地被 Android 开发者使用,已然成为 Android 的首选编程语言,对于新参与 Android 的开发者而言,Kotlin 是更好的学习对象。”

近日,面向未来,Kotlin 发布了全新的 2021 路线图,JetBrains 也为我们重磅揭晓了有关 Kotlin 即将到来的九大亮点。

采用新的 Kotlin 编译器

重写编译器并不是一件简单的事情,而 Kotlin 即将带来的一项重大创新就是实现全新的编译器,对此,Kotlin 团队表示它是一个庞大的项目,因为它将重写 JVM 和 JS 后端以及新的架构的前端。等到这个项目完全完成之后,它能够为 Kotlin 带来显著的性能提升,包括支持编译器插件 API,且让开发者有机会创建新的语言功能及特性。目前关于这个项目的最新进度是,不久前,JetBrain 刚刚发布了编译器中新的 JVM 后端部分。与此同时,其前端部分也接近了 Alpha 版本(https://youtrack.jetbrains.com/issue/KT-46756)。

第二个重点是将新的 Kotlin/JS 后端进入稳定状态,这需要实现增量编译和源映射生成。

Swaled When 语句

日常开发者中,你的代码库中是否有一个实用函数可以使 Kotlin 的 when 语句更完整无遗?为此,Android 开发大神 Jake Wharton 也曾创建了一个 Kotlin 插件——Exhaustive(https://github.com/cashapp/exhaustive),并引入了一个注释,使 @Exhaustive when 语句真正详尽。但是现在 Kotlin 团队希望大家很快就不再需要它了!

Kotlin 计划推出 sealed when 语句,这是一个被众人期待已久的功能,并在 YouTrack(JetBrains 推出的一种问题跟踪系统和项目管理软件)中获得了 230 票。不过,具体语言语法尚未准备就绪,但总体思路是让编译器能够在 when 语句不完整时候发出警告。这一功能的更新可以保证开发者所开发的代码会更安全,且无需引入自己的函数。

支持 WebAssembly

对于 Kotlin 的未来,其将进一步支持 Kotlin/Wasm。据悉,Kotlin 团队已经开始创建了一个专门的团队来进行全职开发工作,并与 WebAssembly GC 提案的作者密切合作,实现基本的 Kotlin 语言功能、库和基本的 Gradle 支持,并添加实验性的 javascript 互操作。 

新的 Kotlin/Native 垃圾收集器已处于实验阶段

在声明中,Kotlin 团队表示,已经为创建简单的垃圾收集器所需的大部分组件制作了原型。下一步是编写一个支持多线程的垃圾收集器实现。不过,垃圾回收器的第一个版本会很慢,因此不适合生产。预期在今年晚些时候会向开发者发布,并收集用户的反馈。

同时,该团队称,“准备好告别你的老朋友 InvalidMutabilityException,因为每次使用 Kotlin/Native 时你都不会看到它!”

改进 KMM 中与 iOS 相关的工具

KMM 是一种跨平台技术,Kotlin 将完善与 ios 相关的工具。其中,除了 Kotlin/Native 内存模型,该官方团队也将专注于改进 Cocoapods 集成用户体验,并从默认脚本中隐藏 packForXcode Gradle 构建任务,以简化项目设置和首次体验。

在 Kotlin 多平台工具中支持 Apple Silicon

随着 Apple Silicon 的推出,它的采用率持续增加。Kotlin/Native 编译器已经可以在这个平台上运行并且可以为它生成二进制文件。为了帮助开发者在项目中充分享受到 Apple Silicon 的支持,Kotlin 团队将在 Kotlin Multiplatform Gradle 插件和所有 Kotlinx 库中支持它。

提高 IDE 性能和稳定性的新方法

快速流畅的 IDE 支持仍然是 Kotlin 团队今年的首要任务。虽然正如第一个亮点所述,Kotlin 团队提高该语言响应能力的长期解决方案是开发新的编译器,但与此同时,其也将继续支持当前的工具并寻找提高性能的新方法。

其中,该团队在用于 IntelliJ IDEA 和 Android Studio 的 Kotlin 插件中,使用了 30 多个种索引,另外,他们也探索了许多通过重构索引系统来提高代码分析速度和稳定性的方法。除此之外,其还计划提高 IDE Navigation 和 Find Usages 的速度。

新的核心库功能

Kotlin 团队将继续改进标准和 kotlinx 库,例如协程和序列化。其中包括:

  • 多平台支持协程中的挂起测试,这将改进 KMM 和 JVM-only 项目的测试套件。

  • 在序列化中与 Java I/O 流集成,以支持从任意数据源(如网络或文件系统流)反序列化大文件。

  • 去掉 !! 之后的 readLine(),这应该会使“Hello world”程序语法对新手更直观。

新的社区风格

如果你稍加注意,可能已经发现 Kotlin 的 logo 有了新的变化,另外,Kotlin 团队还设计了一种新的徽标,即更新了颜色、排版等等,其计划是为不同的用户组提供品牌体验,之所以设计这样的样式,Kotlin 官方表示,Kotlin 官方徽标与语言本身相关联。它不应该在不同的范围内以其他方式使用,因为这可能会导致混淆。这种样式同样适用于它的衍生品。

关于路线图的更多内容请参考:https://kotlinlang.org/docs/roadmap.html

BAT等大厂Java面试经验总结 想获取 Java大厂面试题学习资料扫下方二维码回复「BAT」就好了回复 【加群】获取github掘金交流群回复 【电子书】获取2020电子书教程回复 【C】获取全套C语言学习知识手册回复 【Java】获取java相关的视频教程和资料回复 【爬虫】获取SpringCloud相关多的学习资料回复 【Python】即可获得Python基础到进阶的学习教程回复 【idea破解】即可获得intellij idea相关的破解教程回复 【BAT】即可获得大厂核心考点相关的 面经PDF关注我gitHub掘金,每天发掘一篇好项目,学习技术不迷路!



回复 【idea激活】即可获得idea的激活方式
回复 【Java】获取java相关的视频教程和资料
回复 【SpringCloud】获取SpringCloud相关多的学习资料
回复 【python】获取全套0基础Python知识手册
回复 【2020】获取2020java相关面试题教程
回复 【加群】即可加入终端研发部相关的技术交流群
阅读更多
为什么HTTPS是安全的
因为BitMap,白白搭进去8台服务器...
《某厂内部SQL大全 》.PDF
字节跳动一面:i++ 是线程安全的吗?
大家好,欢迎加我微信,很高兴认识你!
在华为鸿蒙 OS 上尝鲜,我的第一个“hello world”,起飞!

相信自己,没有做不到的,只有想不到的在这里获得的不仅仅是技术!



喜欢就给个“在看”

以上是关于Kotlin VS Java , 终将能追赶上 步伐?的主要内容,如果未能解决你的问题,请参考以下文章

干货分享| Kotlin VS Java 赛跑,谁能赢得比赛?

Java vs Kotlin,Android开发人员应该选择哪种语言?

Java vs Kotlin,Android开发人员应该选择哪种语言?

Kotlin 泛型 VS Java 泛型

Kotlin VS Java:基本语法差异(转载)

kotlin vs java