一、引言
在荷兰阿姆斯特丹举行的 KotlinConf2018 大会上,JetBrains 宣布推出 Kotlin 1.3 RC,引入了新的语言特性,如稳定的协程、合约、内联类等。在 KotlinConf 大会上,谷歌和 JetBrains 也宣布了要共同努力建立 Kotlin 基金会。
2018年10月29号,Kotlin 官方博客正式发布了 Kotlin 1.3,还附带了一些开源库、构建工具和学习资源。
在这次更新中,协程(Coroutines)特性已经稳定,它使得非阻塞代码易于读写,Kotlin 1.3 还带来了 Kotlin / Native Beta,它可将 Kotlin 代码直接编译为本机二进制文件,此外,Kotlin 的跨平台功能将为 Android 和 iOS 应用程序等组件之间共享业务逻辑,服务器也可以与 Web 和移动客户端共享逻辑,而且多平台库让日常的开发变得便捷。
二、Kotlin 的生态现状
Kotlin 已成为 Android 开发的官方编程语言。今年以来,Kotlin 的使用率有了很大的增长,自今年 1 月份以来,约有 150 万开发者使用了 Kolin 编程,是去年同期的两倍,来自 Stack Overflow 的一项问卷调查显示,超过 10 万名受调者表示 Kotlin 是他们的第二大编程语言。目前,Kotlin 开源社区创建了很多优秀的库,如 RxKotlin、mockito-kotlin、TornadoFX、Kodein 和ΛRROW。而诸如 Square’s Okio 和 LibreOffice 这样的项目已经开始逐渐迁移到 Kotlin 上来,这些预示着 Kotlin 生态系统正逐渐走向成熟。
三、Kotlin 1.3 新功能
在 1.3 版本中,协程(coroutines)已趋于稳定状态,使非阻塞( non-blocking)代码更易于读写,可扩展性也更友好。此外,该版本还带来了 Kotlin/Native Beta,可将 Kotlin 代码直接编译成原生二进制文件。Kotlin 多平台特性现已涵盖了所有受支持的平台,因此可以在 Android 和 iOS 应用程序等组件之间共享业务逻辑。服务端也可以与所有客户端共享逻辑,而多平台库的诞生也使得使日常任务易于移植。
3.1 Coroutines 已经稳定
Coroutines 是 Kotlin 1.1 引入新的异步 API,它是一个强大的工具,之前该特性一直处于试验阶段,而在最新的 v1.3 中,Coroutines 语法和标准库 API 都已稳定,你可以开始使用它了。参考
3.2 Kotlin / Native Beta
Kotlin / Native 使用 LLVM 将 Kotlin 源代码编译为独立的二进制文件(无需 VM),它适用于各种操作系统和 CPU 架构,包括 iOS、Linux、Windows、Mac 甚至 WebAssembly 和嵌入式系统(如 STM32),它具有全自动内存管理功能,支持与 C、Objective-C(和 Swift)互操作。参考
3.3 多平台项目和工具
Kotlin 团队称,能在所有平台上运行是 Kotlin 的目标,但达成这个目标的前提是,得先在多平台间实现代码共享,通过支持 JVM、Android、JavaScript 和 Native,Kotlin 现在已经可以处理现代应用程序的任何组件。虽然 Kotlin 的多平台功能仍处于试验阶段,但 1.3 版本算是向前迈出了一大步。
Kotlin 1.3 还附带了一组多平台库,涵盖了 HTTP、序列化和协同管理等日常任务。编写多平台代码最简单的方法是依赖这些库,你还可以创建自己的多平台库,将特定平台的依赖项包装到通用 API 中。参考
3.4 其他特性
- 提供针对性能和类型安全的内联类(inline classes)的实验支持
- 对无符号整数(unsigned integers)的实验性支持,以便于对字节和其他底层代码进行操作
- when表达式中引入主语以减少样板代码
- 用于可视化延迟计算的序列调试器(Sequence debugger)
- Kotlin/JS 的实验性增量编译
- 升级方式以及详情更新介绍请查看发布公告,完整更新内容请点此查看
四、总结
Kotlin 已成为 Android 开发的官方编程语言,对于移动开发工程师特别是 Android 工程师来说,仅仅掌握 Java 是不够的,还应该学习 Kotlin,才能追上技术发展趋势,在工作中更加游刃有余。