⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 开源中国 「开源中国」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

此前谷歌刚刚推出免费的 Kotlin 和 Android 在线课程,教开发者使用 Kotlin 构建 Android 应用。很快,Google Home 团队也现身说法,通过自身经历,展示了 Kotlin 开发的好处。

Google Home 应用程序可用来连接并管理各类智能家居设备。与不少受谷歌 “Kotlin-first” 倡议影响的应用相同,Google Home 也选择将 Kotlin 纳入其代码库。截至今年六月,该应用中约有 30% 的代码采用 Kotlin 编写,今后的新功能也被鼓励用 Kotlin 进行开发。

Google Home 团队提到,与 Kotlin 配合使用的是同样被谷歌推行的 Jetpack 开源 UI 工具包,它结合了反应式编程模型和 Kotlin 编程语言的简洁性和易用性,旨在简化 UI 开发。

尽管目前只有 1/3 代码迁移到了 Kotlin,其高效和简洁的特性已使 Google Home 团队感受颇深。他们以数据类和 Parcelize 插件的使用为例证:在 Java 中由 126 行手写代码组成的类,在 Kotlin 中仅用 23 行就能够表示——代码量减少了 80%。此外,Kotlin 中一些函数方法还简化了许多嵌套循环和过滤检查。

另一方面,Kotlin 的可空性(nullability)也得到了赞许。依旧是与 Java 相比,Google Home 团队指出,“Java 中对可空性注释的用法不一致时,可能会导致遗漏一些 bug”。而采用 Kotlin 以来,Google Home 的 NullPointerExceptions 减少了 33%,这恰是 Google Play 控制台上最常见的崩溃类型,由此带来的崩溃数量减少也许能够显著改善用户体验。

Kotlin 编程语言 2011 年由 JetBrains 推出,2012 年开源,2017 年成为 Android 官方开发语言,并于 2019 年成为 Andoid 开发官方首选语言。

从初始支持 Kotlin 再到 “Kotlin-first”,谷歌一直在对其进行多方位扶持,先后推出了 Kotlin 免费在线课程和使用 Kotlin 构建 Android 应用的课程;同时不断完善着相关生态,比如今年四月开源了 gRPC-Kotlin/JVM,让开发者可以在 Kotlin 项目中更方便地使用 gRPC。

随着谷歌的极力推行,Kotlin 的关注度一路水涨船高,最新的 JVM 生态报告显示,Kotlin 已成为第二受欢迎的 JVM 语言。Android 开发专家沈哲在接受开源中国的专访时曾提到,国内一些公司也开始使用 Kotlin 开发 Android 项目,“越来越多的开发者会选择 Kotlin 作为原生 App 的首选开发语言”。

作为一门 JVM 语言,一门兼容甚至被认为要取代 Java 的语言,Kotlin 的出场也往往伴随着与 Java 的比较。谷歌甚至推出了从 Java 迁移到 Kotlin 的官方指南。部分 Android 开发者仍在犹豫是否要转到 Kotlin,有一些人已经从 Java 迁移到 Kotlin 又迁回了 Java。在一年前 Dice 网站发布的调查中,85% 的受访者几乎一边倒地选择仍旧使用 Java 来构建 Android 应用程序。

但其实在谷歌工程师看来,并没有必要将二者完全划清界限。Android Studio 技术负责人 Jeffrey van Gogh 就曾讲过,Java 与 Kotlin 具有极高的互操作性,所以两者完全可以共存于同一个项目中。目前如 Google Home 这样的谷歌自家应用,不少都采用这种融合式做法,Kotlin 更多地被用来编写新功能。

那么,再回到 “Kotlin 还是 Java” 这个也许已经令 Android 开发者感到厌烦的问题上,定论显然并不存在,关键是选择最适合的方式。

文章目录