据我所知 , 还有一个 Flow 框架 , 它是基于协程 , 添加了流运算符 。在几个月之前 , 已经稳定了 。所以现在也没啥好评价的 。

文章插图
Kotlin
现在 , 让我们来讨论一下 Kotlin 在 Android 领域的现状 。根据我个人的经验来看 , 这是一个很敏感的话题 , 不论我所说的话有多么公正客观 , 都会有一些粉丝评价我所说的话是“Shit” 。但从专业的角度来说 , Kotlin 的话题是跳不过去的 , 所以 , 我要强调的是 , 这些内容只是我的个人观点 , 仅供参考 。
在 Android 开发中 , 使用 Kotlin , 会大大地增加你的编译时间 。
在我的另一篇文章中[16] , 我统计了使用 Kotlin 过后 , 编译时间的增长情况 。结果是 , 全量编译的情况下 , 会增加 18%左右的耗时 , 如果是增量编译 , 则会增加 8% 左右的耗时 。
Uber 和 JetBrains 联合发表了他们有关 Kotlin 对项目编译时间的影响 , 在文章中 , 显示的结果非常的悲观 。他们表示 , 如果你不开启 IDE 中的 annotation processors , 引入 Kotlin 的项目 , 编译构建的时间大约会增加四倍 , 如果开启了 annotation processors , 编译构建的时间也会增加 50% ~ 100% 。
Uber 的结果与 OkHttp 迁移到 Kotlin 后得到的结果是一致的 , 都是编译时长都增加了 4 倍 。
别担心 , 虽然这个结果让人吃惊 , 这个也不是你的错 , 很多人都和你一样 , 正在使用 Kotlin 。这个问题 , 虽然很重要 , 但是它并没有引起广泛的关注 。我觉得 , Google 也在试图解决这个问题 。我曾问过 Google 相关的开发者 , 并进行了深度的交流 , 他们在这个问题给我的回答是:“这是一个很棘手的问题 , 我宁愿不做” 。
Kotlin 除了会增加编译时间 , 直到上周 , 才支持增量注解处理 , 而 Java , 在 10 个月以前就支持了 。
在两年前 , 我就写了篇文章用于告诫大家 , 过早使用 Kotlin 会存在很大的风险 。你可以从评论中可以看出 , 我在很长的一段时间里面 , 都是“Kotlin 的黑粉” 。
在你的实际工作中 , 你会发现 , 与上面的数据相比 , Kotlin 的问题远不止于此 。在大型的 Android 项目中 , 编译构建的时间会严重阻碍项目的发展 。即使到了今天 , Kotlin 已经被正式使用两年了 , Kotlin 编译效率依然比 Java 差很多 。不管 Kotlin 能给你带来多少优点 , 编译耗时的问题 , 都有可能导致你不在使用它 。
不管如何 , Google 向整个 Android 的开发生态推出 Kotlin 作为第一首选语言 , 现在 Kotlin 的使用量也越来越大 , 我们也不得不进行跟进 。就我个人而言 , 我还没有在我的项目中使用 Kotlin 。因为 Kotlin 还不够成熟 , 并且我的客户也不会为我的学习付费 , 并且我也不希望在 Kotlin 上浪费时间 。但是从现在开始 , Kotlin 已经逐渐稳定 , 我也在我拿手的项目上尝试过 , 在新项目中 , 我也会考虑使用它进行开发 。有一些开发者认为:“必须在新项目中使用 Kotlin 进行开发“ , 我不同意这个观点 , 我觉得这是一个权衡的问题 , Kotlin 现在已经成为了一个重要的选项 , 只要适合当前的项目 , 就是最好的语言 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
