关键词:Kotlin Newshtml
Kotlin 的发展能够认为是正式进入了下一个阶段。程序员
有段时间没有写文章了。web
今年年末还有些事情要作,所幸大多数都与 Kotlin 有关系,不算耽搁太多。加上现阶段你们有相对充足的资料学习 Kotlin,尽管协程以前的资料相对匮乏,我也在年中出版了一本书暂时补齐了这块儿缺漏,所以我就这么安慰本身不要压力太大,以避免腰更加突出,哈哈。面试
不过,官方最近有些消息放出来让我有些坐不住了。性能优化
1. Kotlin 的发版节奏
过去 Kotlin 的版本节奏一直比较佛系,从 1.0 到 1.1 花了一年多,到 1.2 才半年,到 1.3 又近一年,1.4 却花了将近两年。为何会这样呢?由于越日后,Kotlin 自身的体系越庞大,想要作点儿什么的复杂度可想而知的变高,天然版本节奏就没那么好把控了。微信
功能优先仍是版本优先?多线程
显然这个问题在不一样的发展阶段是有不一样的答案的。项目刚开始,天然须要稳扎稳打,作一个功能就是一个功能,所以能够说 1.4 及之前的全部版本的迭代计划都是按照这个思路展开的,功能啥时候作好啥时候上,作很差就 delay。并发
而现现在,框架
Kotlin 通过 1.0 正式发布异步

1.1 正式支持 JavaScript 并开始试验协程

1.2 开始试验多平台

1.3 正式支持协程并开始了 Native 的 beta,多平台的生态随之也开始逐渐展开

1.4 有作了一系列总体的性能优化和提高,编译器重构也基本完成

能够说 Kotlin 现阶段的基本盘已经造成,当前版本足以长期支撑开发者完成开发工做了。
接下来的工做重点咱们在以前的文章当中就曾经谈到,其实就是应用场景的挖掘,开发体验的优化和提高,以及多平台的完善和生态的建设。这些大都不算是巨大的语言特性,所以 Kotlin Team 宣布后面发版半年一次,这意味着 Kotlin 1.5 将在明年春天发布,规划的特性实行班车机制,赶得上版本就发布,赶不上就下一趟。
这样作好处也是很明显的,版本的节奏感会给开发者带来期待,咱们再也不须要猜下一个版本何时来,以及下一个版本会有什么,由于这些都会很早就公布;一些细节的改进咱们也不须要苦等好久才能体验到,由于版本节奏快了,一些小的改进会更快的被呈如今开发者面前。
2. Kotlin 的 Roadmap
我过去想要提早了解 Kotlin 下一步的动态,主要去 Kotlin 的 GitHub 的仓库和 YouTrack 当中去爬 issue,看你们的讨论,这个过程会比较有趣,由于大佬们常常吵架。若是只是想要消遣,这个方式跟刷知乎也没什么两样,不过若是是去获取信息,那就须要本身认认真真的瞎猜了。
再往前的时候,Kotlin Team 还会维护一下 Kotlin 在 GitHub 上开的 Keep 仓库,不过这个仓库如今已是一副年久失修的感受了。说来还真是要好好提一下,Kotlin 协程的设计文档就在 Keep 仓库当中,虽然感受比较久远了,但仍是很值得一读的。

如今好了,官方直接公布了 Roadmap,这一招配合 Kotlin 的发版节奏的改变,极大的方便了咱们这些吃瓜群众。不是想知道 Kotlin 啥时候实现自举吗?Kotlin Team 已经在解决这个问题了,不信看这里:

顺便咱们也看到了 Kotlin 编译器插件的 API 如今尚未排到最高优先级,因此等等吧。
此次 Roadmap 的公布,仍是有一些比较有趣的点的,例如:

多个 receiver 的函数,可能有些朋友尚未用到过。其实这个特性如今也有办法来模拟,就是经过隐式 receiver 的方式来实现,但若是可以有专门的语法来支持的,应该还会有更会玩的用法出现。
Kotlin 近期公布的 Roadmap 见:Kotlin Roadmap(https://kotlinlang.org/roadmap.html),你们能够本身看看有没有本身感兴趣的内容。
3. KMM 插件
KMM 算是 Kotlin Team 为多平台这个重磅特性挖掘的一个重要的应用场景。

毕竟 Kotlin 的用户大可能是 Android 开发,Android 开发者的老板们有迫切的但愿他手底下的 Android 开发能拿一份工资干两人的活,对吧。不只如此,Android 开发也但愿本身在市场上更有竞争力,若是 Kotlin 适用场景变多了,那么本身岂不是就像买了股票同样跑赢大盘?因此 KMM 简直就是众望所归。
KMM 运行在 iOS 上的实际上就是 Kotlin Native 的代码,经过 Kotlin MPP 与运行在 Android 上的 Kotlin Jvm 代码来共享逻辑。最近随着 Kotlin 1.4 发布推出的 KMM 插件也支持了在 Android Studio 上直接运行 iOS 应用,启动 iOS 模拟器,甚至单步调试运行在 iOS 上的 Kotlin Native 代码的能力。
不过,若是想要将 KMM 直接应用于移动端跨平台上上,仍是有些问题须要解决的,这主要就是 Kotlin Native 对于 iOS 的支持的问题,例如:
-
Kotlin Native 的并发模型比较严格,也正是如此,Kotlin 协程的 Kotlin Native 版本迟迟没有正式推出多线程版本,在 iOS 上使用 Kotlin 协程目前还受制于所调用的 API 是否自己已经本身支持了异步以及回调的线程切换。 -
Kotlin 目前尚不能像在 Android 上那样全面替代 Java,从目前以导出 Framework 的方式引入 iOS 工程的作法来看,Swift 和 Objective-C 暂时仍是没法彻底干掉的。 -
Kotlin Native 可用的框架目前仍然比较少,若是想要编写 Kotlin 多平台的代码,也须要咱们引入的框架支持 Kotlin 多平台,例如序列化框架可选的目前主要就是官方的 kotlinx-serialization,时间框架主要也是官方提供的 kotlinx-datetime 等等。
不过这倒也不算什么大问题,毕竟才刚刚开始,Kotlin Native 的并发模型的问题以及 Kotlin Native 开发 iOS 的支持问题都在逐渐优化。
至于依赖框架的问题,这偏偏也是 Kotlin 的生存哲学之一,Kotlin 游走于各个平台上,一贯是以充分利用所在平台的优点为基础的。咱们且等它把这些平台的基础 API 进行统一封装,以方便咱们实现逻辑层的一致性。
再稍微提一下,KMM 插件尽管支持了不少功能,但对于 iOS 工程却仍然不能有效支持,这主要体如今对于 Swift、Objective-C 的代码没法高亮、调试等问题上,若是须要编辑 SwiftUI 或者其余使用 Swift 编写的代码模块,仍是须要在 Xcode 当中完成。至于未来会不会支持,这一点目前尚未确切的消息。
4. 小结
Kotlin 1.4 发布了两个月,总体反应来看,你们仍是比较平静的,由于此次确实了 SAM 转换让人期待已久之外,别的都不是很意外。不过,从最近发生的这些变化来看,Kotlin 的未来仍是值得期待一下的,至少,它已经找到了本身的路,并开始一步一步走下去了。

最后再提一句,国外疫情肆虐,KotlinConf 今年无法线下开展,这不,也改为线上了。你们能够在 Kotlin 1.4 Online Event(https://kotlinlang.org/lp/event-14/) 这个地址找到全部的视频,内容仍是值得了解一下的。
固然,视频直接收看可能须要一些操做,后面的话我看看能不能跟官方的小伙伴商量下尽快搬到国内的视频平台上。此外,咱们目前也在准备后面结合此次 Kotlin 的 Event 在国内作一些分享,届时也会经过公众号发布具体的安排,请你们留意~
Kotlin 协程对大多数初学者来说都是一个噩梦,即使是有经验的开发者,对于协程的理解也仍然是懵懵懂懂。若是你们有一样的问题,不妨阅读一下个人新书《深刻理解 Kotlin 协程》,完全搞懂 Kotlin 协程最难的知识点。如今正好遇上当当活动,1024程序员节满 100 减 50,实付满200元后,使用优惠券【PZJPHY】,可再减40元。至关于160买40的书,赶忙囤书呀~
若是你们想要快速上手 Kotlin 或者想要全面深刻地学习 Kotlin 的相关知识,能够关注我基于 Kotlin 1.3.50 全新制做的新课,课程初版曾帮助3000多名同窗掌握 Kotlin,此次更新回归内容更精彩:
扫描二维码便可进入课程啦!

Android 工程师也能够关注下《破解Android高级面试》,这门课涉及内容均非浅尝辄止,除知识点讲解外更注重培养高级工程师意识,目前已经有 1000 多位同窗在学习:
扫描二维码便可进入课程啦!

本文分享自微信公众号 - Kotlin(KotlinX)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。