谷歌再推 Kotlin:代码量比 Java 减少 80%
上周,谷歌刚刚推出免费的 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 开发者感到厌烦的问题上,定论显然并不存在,关键是选择最适合的方式。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 重启了下 Jenkins,踩到了一个深埋多年的坑
问题描述 业务方反馈,Jenkins 上某个 job 没有将 release 版本的组件发布到 maven 私服,以致依赖方无法引用依赖。 了解这个问题的更多信息: 该 job 构建状态为 success,它使用 maven-release-plugin 时,没有将 release 版本的组件发布到 maven 私服,而是将 SNAPSHOT 版本的包发布到 maven 私服,同时 git 仓库的 pom.xml 版本也没升级,但是倒是打了 tag。 初步定位,切换备份 为什么会出现这个问题呢? 回顾最近 对 Jenkins 做的修改,共有两项 曾修改了 maven 工具的位置,难道是这个影响了? 也曾修改了 Jenkins 的 JVM 参数,然后重启了 Jenkins,难道是这个影响了? 理论上,修改maven 工具的位置和修改 Jenkins 的 JVM 参数,和这个没关系的 恢复maven 工具的位置,问题没有解决 恢复 Jenkins 的 JVM 参数,然后重启了 Jenkins,问题依旧 那那到底是什么原因呢?经过一段时间定位,这个奇怪的问题并没有得到解决,一时找不...
- 下一篇
新版 Edge 为 Internet Explorer 模式添加专用选项
Microsoft Edge Canary 通道的最新版本添加了一个新的专用选项,用于在 Internet Explorer 模式下加载网页。 通过"selecting Menu > More Tools > Reload in Internet Explorer mode"启用此选项后,用户可以在 Microsoft Edge 中使用 IE 模式加载需要 IE 浏览器打开的网站。此模式诞生之初就被设计成模拟原生的 Internet Explorer 体验,因此它支持所有文档和企业模式、ActiveX 控件、Browser Helper Objects、用于 IE 的 F12 开发者工具以及 Internet Explorer 设置和组策略。 不过使用 IE 模式前需要先在设置中进行配置: 1.在地址栏输入 edge://settings/defaultBrowser 2.通过切换开关启用"Allow sites to be reloaded in Internet Explorer mode"选项 3.重启浏览器 对于现代网站,Microsoft Edge 会使用 Chr...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块