首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >说说最近官方公布的 Kotlin 的动态

说说最近官方公布的 Kotlin 的动态

作者头像
bennyhuo
发布于 2020-10-27 02:28:45
发布于 2020-10-27 02:28:45
1.3K0
举报
文章被收录于专栏:BennyhuoBennyhuo

关键词:Kotlin News

Kotlin 的发展可以认为是正式进入了下一个阶段。

有段时间没有写文章了。

今年年底还有些事情要做,所幸大多数都与 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 的支持的问题,例如:

  1. Kotlin Native 的并发模型比较严格,也正是如此,Kotlin 协程的 Kotlin Native 版本迟迟没有正式推出多线程版本,在 iOS 上使用 Kotlin 协程目前还受制于所调用的 API 是否本身已经自己支持了异步以及回调的线程切换。
  2. Kotlin 目前尚不能像在 Android 上那样全面替代 Java,从目前以导出 Framework 的方式引入 iOS 工程的做法来看,SwiftObjective-C 暂时还是无法完全干掉的。
  3. 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 在国内做一些分享,届时也会通过公众号发布具体的安排,请大家留意~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Kotlin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
干货 | 携程机票 App KMM 跨端生产实践
移动端跨平台技术自移动开发诞生以来一直是个热门话题,一是持续关注研发效率,降本提效;二是一套代码多端运行可以提升多端业务逻辑的一致性;三是跨端技术方案通常意味着更佳的高效运维和缺陷修复。
携程技术
2021/12/01
4.1K0
干货 | 携程机票 App KMM 跨端生产实践
KMM 求生日记二:Kotlin/Native 被踩中的坑
最近几周团队的 KMM 进度推进了不少,已经陆续把几个小业务需求迁移到了 KMM。
bennyhuo
2021/03/18
2.8K0
Kotlin 协程真的比 Java 线程更高效吗?
网上几乎全部介绍Kotlin的文章都会说Kotlin的协程是多么的高效,比线程性能好很多,然而事情的真相真是如此么?
2020labs小助手
2020/01/10
2.1K0
闲聊 Kotlin-Native (0) - 我们为什么应该关注一下 Kotlin Native?
Kotlin-Native 的定位略显尴尬,为什么这么说呢?因为现在的编程语言实在太多了,新语言出来必然要解决现有某个语言的痛点,这样才能快速切入该语言所覆盖的领域。Kotlin 也是这样在当年崭露头角的,要不是 Android 上没有很好的替代语言,估计 Kotlin 也不会这么快进入大家的视野。
bennyhuo
2020/09/18
3.3K0
开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin
作者简介 禹昂,携程移动端资深工程师,专注于 Kotlin 移动端跨平台领域,Kotlin 中文社区核心成员,图书《Kotlin 编程实践》译者。 一、背景 携程机票移动端研发团队自 2021 年始就一直在移动端实践 Kotlin Multiplatform 技术(请见参考链接 1)。由于目前 Kotlin Multiplatform 生态尚处于起步阶段,大部分 Kotlin 开源库都是 JVM only 的,因此在我们团队的日常开发过程中迫切需要一些能够支持 KMM(Kotlin Multiplatf
携程技术
2022/06/17
2K0
开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin
Kotlin 基础知识-介绍来历,特点,运行环境以及相关api查询
有关Kotlin的最新资源我们都可以通过它的官网:https://kotlinlang.org/ 进行了解。
zinyan.com
2023/07/13
3700
Kotlin 基础知识-介绍来历,特点,运行环境以及相关api查询
谷歌社区说|聊聊Compose跨平台与KMM
大家好我是黄林晴,也是图书《Android Jetpack开发:原理解析与应用实战》的作者。上一次在社区分享还是在三年前的Android 11见面会上,本次为大家分享的主题是Compose Multiplatform和KMM。这里是本次分享的文字版。
黄林晴
2023/12/28
2.1K0
谷歌社区说|聊聊Compose跨平台与KMM
Compose 跨平台现状
Compose 能应用于跨平台,主要是基于 KMM 架构,KMM 的介绍可以查看官方文档《Get started with Kotlin Multiplatform Mobile[1]》,我们来看下 KMM 的简单架构:
codelang
2022/11/30
3.8K0
Compose 跨平台现状
干货 | Kotlin/Native 异步并发模型初探
作为 Kotlin Multiplatform 体系重要组成部分之一的 Kotlin/Native ,目前还是一项处于 beta 阶段的技术。而 Kotlin/Native与 Kotlin/JVM 的异步并发模型也有着极大的不同,因此如果要实践 Kotlin Multiplatform,则事先对 Kotlin/Native的异步并发模型进行探究就显得很有必要。
携程技术
2020/03/11
1.9K0
干货 | Kotlin/Native 异步并发模型初探
KMM跨平台开发入门,看这一篇就够了~
近些年,不管是最初的RN还是到现在的Flutter、Compose,他们都在做着一件事——跨平台。
黄林晴
2022/10/24
5K0
KMM跨平台开发入门,看这一篇就够了~
Kotlin 1.2 有哪些值得关注的点?
Kotlin 1.2 的发版节奏越来越快了。从 16 年 2 月 19 日发布 1.0 到 17 年 3 月 14 日发布 1.1,这次只花了半年多的时间,厉害了。1.1 发布的时候让人比较激动的是有了协程这样一个杀手级的特性,以及正式支持的 JavaScript Target,那么现在半年过去了,Native 搞得风生水起,1.2 又会给我们带来什么呢?
bennyhuo
2020/02/20
5010
K2 编译器将在 Kotlin 2.0 中进入稳定状态 | 官方博客
我们一直在为 Kotlin 编译器(代号 K2)开发新的前端。前端是编译器的一部分,负责解析代码和执行语义分析、数据流分析、调用解析和类型推断。这是开发者与编译器交互最多的部分。编译器也通过它在 IDE 中持续运行、报告所有错误和警告消息,帮助完成自动补全、语义感知检查、意图和重构等任务。新前端已经可供预览 – 我们将继续进行完善和稳定工作,计划在未来 Kotlin 版本中将其设为默认编译器前端。我们已经决定将这个未来版本命名为 Kotlin 2.0。下文将详细描述 Kotlin 2.0 版本的路线图、我们的动力以及对它的期望。
bennyhuo
2023/02/28
1.9K0
K2 编译器将在 Kotlin 2.0 中进入稳定状态 | 官方博客
Compose也能开发iOS了,快来体验~
在之前,我们已经体验了Compose for Desktop 与 Compose for Web,目前Compose for iOS 已经有尚未开放的实验性API,乐观估计今年年底将会发布Compose for iOS。同时Kotlin也表示将在2023年发布KMM的稳定版本。
黄林晴
2023/05/31
1.6K0
Compose也能开发iOS了,快来体验~
别具特色的跨平台移动开发 - Kotlin Multiplatform Mobile
而在跨平台移动的技术选择上来说,最流行两个就是React Native与Flutter了。
御剑
2022/06/07
1.8K0
别具特色的跨平台移动开发 - Kotlin Multiplatform Mobile
为什么建议大家加快拥抱Kotlin,说点不一样的
Kotlin自2017年起被Google正式宣布为Android的编程语言之一,随后在2019年进一步宣布Kotlin为Android的首选语言,普及速度逐渐加快,越来越多的公司和项目在引入Kotlin。
AntDream
2024/06/03
2410
为什么建议大家加快拥抱Kotlin,说点不一样的
Android平台的Swift—Kotlin
原文链接:http://wetest.qq.com/lab/view/383.html
WeTest质量开放平台团队
2018/05/04
3.7K7
Android平台的Swift—Kotlin
Flutter 2021年官方路线图
Flutter 将支持 Dart 的 sound null safety(空安全),并将插件和软件包生态系统的迁移扩展到支持空安全,包括Flutter团队直接维护的软件包和插件。
老孟Flutter
2021/01/28
1.1K0
Kotlin Multiplatform 实战记 | QCon
10 月 21 日我在上海举办的 QCon 全球软件开发大会上分享了 Kotlin Multiplatform 相关的内容,这里记录成文章,分享给你。
深度学习与Python
2021/11/19
1.9K0
开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin
禹昂,携程机票移动端资深工程师,专注于 Kotlin 移动端跨平台领域,Kotlin 中文社区核心成员,图书《Kotlin 编程实践》译者。
携程技术
2023/02/28
1.9K0
开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin
Kotlin 并发编程之"协程"
Kotlin, as a language, provides only minimal low-level APIs in its standard library to enable various other libraries to utilize coroutines. Unlike many other languages with similar capabilities, async and await are not keywords in Kotlin and are not even part of its standard library. Moreover, Kotlin's concept of suspending function provides a safer and less error-prone abstraction for asynchronous operations than futures and promises.
一个会写诗的程序员
2019/07/14
9560
相关推荐
干货 | 携程机票 App KMM 跨端生产实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档