Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java失宠,谷歌宣布Kotlin现在是Android开发的首选语言

Java失宠,谷歌宣布Kotlin现在是Android开发的首选语言

作者头像
Android技术干货分享
发布于 2019-05-15 07:14:48
发布于 2019-05-15 07:14:48
1K0
举报
文章被收录于专栏:Android技术分享Android技术分享

在今日凌晨的 Google I/O 大会上,Google 官方正式宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言。Java 占据 Android 开发绝对统治的时代一去不复返了。

Kotlin,东宫太子

谷歌今天宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言。

谷歌在今天的声明中写道:“Android 的开发将越来越以 Kotlin 为先。”许多新的 Jetpack API 和特性将首先在 Kotlin 中提供。如果你要开始一个新项目,你应该用 Kotlin 来写;用 Kotlin 编写通常意味着更少的代码——更少用于类型、测试和维护方面的代码。”

就在两年前的 2017 年 I/O 大会上,谷歌宣布在其 Android Studio IDE 中支持 Kotlin。考虑到 Java 长期以来一直是 Android 应用程序开发的首选语言,这有点令人惊讶。在过去的两年里,Kotlin 的人气只增不减。谷歌说,超过 50% 的专业 Android 开发人员现在使用该语言开发他们的应用程序,在最新的 Stack Overflow 开发人员调查中,它被列为第四大最受欢迎的编程语言。

Android 的首席倡导者切特·哈斯 (Chet Haase) 表示:“我们宣布,我们正在采取的下一个重大举措是,我们将以 Kotlin 为先。”

哈斯说:“我们知道,不是每个人现在都在用 Kotlin,但是我们相信,你会需要它的。”“你可能有充分的理由继续使用 C++ 和 Java 编程语言,这完全没问题。这些语言不会消失。”

Kotlin,Android 世界的 Swift?

早在 2015 年,Kotlin 就有“Android 世界的 Swift ”的称号。

Kotlin 是一门与 Swift 类似的静态类型 JVM 语言,由 JetBrains 设计开发并开源。与 Java 相比,Kotlin 的语法更简洁、更具表达性,而且提供了更多的特性,比如,高阶函数、操作符重载、字符串模板。它与 Java 高度可互操作,可以同时用在一个项目中。

按照 JetBrains 的说法,根据他们多年的 Java 平台开发经验,他们认为 Java 编程语言有一定的局限性和问题,而且由于需要向后兼容,它们不可能或很难得到解决。因此,他们创建了 Kotlin 项目,主要目标是:

  • 创建一种兼容 Java 的语言
  • 编译速度至少同 Java 一样快
  • 比 Java 更安全
  • 比 Java 更简洁
  • 比最成熟的竞争者 Scala 还简单

若在当时看来,Android 世界的 Swift 称号似乎底气不足,更像是一种美好的愿望。那么在 2017、2019 两届的 Google I/O 以后,这个说法可以站住脚了。

Kotlin 真比 Java 强?

许多新语言的出现似乎都是源于对某种其它语言的厌倦,Kotlin 看上去也是如此。但在 JetBrains 看来,Kotlin 项目的原始动机就是为了提升生产力。JetBrains 开发者支持组组长 Hadi Hariri 在接受 InfoQ 采访时表示:

”尽管当时我们已经开发了对几种基于 JVM 的编程语言的支持,我们还是基本都在 Java 环境下写基于 IntelliJ 的 API。IntelliJ 开发系统是基于 Groovy 和 Gant 的,Groovy 也用于测试,RubyMine 中还有一些 JRuby 代码,情况就是如此。我们希望转向更具表现力的语言从而提高生产力。同时,我们不能接受在 Java 互操作性或编译速度方面的妥协。“

Kotlin 与 Java 总是在主观比较

“Kotlin 比 Java 好”,“Kotlin 可读性比 Java 强”,“Kotlin 开发速度比 Java 快”,类似这样的陈述缺少相关准确数据的支持,所以都归为主观看法一类。

主观看法是个体开发人员在对与 Kotlin 或 Java 相关的主题作出一个或多个主观判断时形成。

开发人员的主观判断存在如下问题:

  • 没有与主观判断相关联的量化指标。
  • 主观判断存在很大的偏见。
  • 主观判断的偏见在开发人员之间存在很大的差异。

由于没有与主观判断相关联的量化指标,建立在这些判断基础上的观点只是反映出了开发人员之前就有的偏见。不同的开发人员可能有着截然不同的偏见,因此,有开发人员认为 Kotlin 是不错(或糟糕)的 Java 替代者并不意味着其他开发人员也这么认为。

而且,由于没有客观指标,主观分歧就无法客观地消除,这经常会导致“口水战”。

相较于 Java,Kotlin 的确在一些方面有较大优势:效率高、易维护、可靠、简单易学。在一些特定场景下,许多 Java 开发者因为某些方面的问题选择了切换到 Kotlin:比如受够了 Java NullPointerException 的人都喜欢 Kotlin 的 Null 安全特性;扩展函数被大量使用;除了扩展 Java 类,人们也常常将 Java 代码迁移到 Kotlin。

根据英国软件公司 Pusher 的调查数据显示,在样本数 2744 人的调查中,超过 87% 的受调者已经完成了迁移。他们有的使用了迁移向导,有的直接手动修改代码。超过四分之一的受调者迁移到 Kotlin 后又回到了 Java。有技术方面的原因,也有组织方面的原因。其中使用了反射或代码生成的工具是被提及最多的因素。

  • “Kotlin 的枚举不能包含常量。在自定义注解时(比如 @IntDef),为了保持接口的整洁,需要将值保存在枚举中。”
  • “我们正在使用 Realm,但它不能与数据类一起使用。”
  • “我们的 Java 代码中使用了 Retrolambda,因为类型缺失,很难转到 Kotlin。”
  • “另一个团队不喜欢 Kotlin,我们也预料不到会这样。”
  • “这不是我们决定的,我们是按照公司的规则来的。”

Java 依旧是编程语言排行榜上的第一名。但 Java 是最好的语言么?不是,因为在每个领域都有更合适的编程语言。

那么,Java 语言到底有什么优势可以占据排行榜第一的位置呢?

  • 其一,语法比较简单,学过计算机编程的开发者都能快速上手。
  • 其二,在若干了领域都有很强的竞争力,比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,Android 移动终端应用开发等等。
  • 最重要的一点是符合工程学的需求,成为企业软件公司的首选,也受到互联网公司的青睐。

综合而言,Java 语言全能方面是最好的。但同样可以看到,Android 社区拥抱 Kotlin 的速度越来越快,也许有一天,在 Android 世界里,我们会看到 Kotlin 对 Java 的超越。

为什么谷歌会支持 Kotlin?

免责声明:以下内容纯属基于既有事实合理推测,毫无任何实锤。

还记得谷歌与 Oracle 旷日持久的 Java 侵权案吗?这个持续时间长达 8、9 年的纷争目前以谷歌败诉为最新结局,其需要向 Oracle 赔偿 88 亿美元。(编者注:在过去几年时间里,几次裁决分别判两家公司胜诉或败诉。今年 1 月份,谷歌不服判决上诉美国最高法院做最终裁决。)

事件的起因是在 2010 年,作为 Java 拥有者的 Oracle 认为,谷歌在 Android 系统上无偿使用了 37 个 Java APIs,这侵犯了他们的专利,而在 Android 中还有 9 行代码抄袭了 Java,这侵犯了他们的版权。

那 9 行代码造成抄袭的缘由据说是因为当时谷歌的一位工程师在为 Android 项目工作的同时,又为 Sun 公司的 OpenJDK 效力,后来,该工程师直接从 OpenJDK 中复制了 9 行代码到 Android 中,由于 Google 没有得到 Sun 公司的授权,所以 Oracle 收购 Sun 之后,Java 易主,这就相当于侵犯了 Oracle 的版权。

而对于那 37 个 Java APIs,双方各执己见,谷歌认为 API 不应受版权保护,而 Oracle 则认为 谷歌对其的使用具有很强的商业性,再加上用 Java 写的 Android 代码无法在 JVM 上运行,这对 Java 语言是一种分裂,同时 Oracle 认为,Android 通过不当使用 Java API 挤占了 Java ME 可能的市场,这是它巨额索赔的根基。

2016 年初,Google 发言人表示,Android N(7.0) 不再沿用现有的 Java APIs 内容,而是迁移至基于 OpenJDK 的方法,为开发者创建一个通用代码库。虽然没法规避 Java APIs 官司,但至少可以减少潜在的可能纠纷。

到了 2017 年的 Google I/O 大会,Google 宣布 Kotlin 成为 Android 开发的一级语言,可以说对 Kotlin 寄予了厚望。此后,Kotlin 也被开发者视为 Java 的替代品。

在之后的一年时间里,Google 可以说把 Kotlin 当亲儿子看待,为什么这么说呢?让我们来梳理这一年 Google 为 Kotlin 做了什么:

  • 2017 年 11 月,Android Studio 3.0 正式开放下载,此版本的 Android Studio 将 Kotlin 语言支持集成到 IDE 中,在此版本上,代码自动完成和语法突出显示都可以在此版本上平稳运行,今年 4 月推出的 Android Studio 3.1 为 Kotlin 代码提供了更好的 Lint 支持,并通过为 Android Emulator 添加 Quick Boot 功能加快了测试速度。
  • 2018 年 2 月,Google 推出预览版本的 Android KTX,Android KTX 是一组扩展程序,它在 Android 框架和支持库上提供了一个良好的 API 层,使 Kotlin 代码更加简洁。
  • 在 Google I/O 2018 上,Google 发布了 Android Jetpack,它是下一代的 Android 组件,它将支持库向后兼容和立即更新的优点融合到更多组件中,提高开发速率和质量,不仅如此,Android Jetpack 将全面兼容 Kotlin,而且它还能利用 Android KTX 使得 Kotlin 代码更加简洁。

这些都是 Google 逐渐向 Kotlin 靠拢的证据,虽然还不至于让 Kotlin 完全取代 Java,但不难看出 Google 的“偏心”。事实上,Kotlin 自己也非常争气:2017 年 11 月,在第一届 Kotlin 专题大会 KotlinConf 上,Kotlin 首席设计师 Andrey Breslav 宣布 Kotlin 将支持 iOS 开发和 Web 开发,这意味着 Kotlin 向全平台开发迈出了重要的一步。

Kotlin 目前正处于发展的初始阶段,还有很多成长的空间。Google 现在是把它当成 Android 黄昏时期的救命稻草,它能与 Java 100% 互通,但它存在的目的并不是为了取代 Java,只是为了让开发者有多种选择。虽说编程语言只是软件实现的一种工具,开发者无论选择哪种语言都没有绝对的对与错。但在互联网时代,开发者应该懂得审时度势,拥抱变化,才能走得更远。

小结

本人Java开发4年Android开发5年,定期分享Android高级技术及经验分享,欢迎大家关注~(分享内容包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.05.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kotlin转向谷歌云平台,因此开发人员可以像在Android上一样喜欢它。Kotlin是Android开发者的宠儿语言。
Android developers love Kotlin. Google can tell us that 27% of the top 1,000 Android apps are built using Kotlin or that developers who are using it have a 97% satisfaction rate and that's great.
一个会写诗的程序员
2018/11/08
7330
Kotlin:我干爹是 Google !
这是「进击的Coder」的第 721 篇分享 来源:OSC 开源社区 (ID:oschina2013) “ 阅读本文大概需要 5 分钟。 ” 5 年前的 2017 Google I/O 大会上,谷歌宣布:官方正式支持将 Kotlin 作为 Android 开发的 First-Class 语言。 自此,Kotlin 开发商 JetBrains 和谷歌一直围绕 Kotlin 进行紧密合作,并共同创立了 Kotlin 基金会。 正如最初 I/O 公告中所强调的那样,Kotlin 是可互操作、成熟、适用于生产环
崔庆才
2022/09/13
7530
Kotlin:我干爹是 Google !
Kotlin + Spring Boot 2 + Spring 5 快速开发与项目实战
谷歌I/O开发者大会上宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言。Kotlin 由 JetBrains 公司开发,与 Java 100% 互通,并具备诸多 Java 尚不支持的新特性。许多新的 Jetpack API 和特性将首先在 Kotlin 中提供。如果你要开始一个新项目,你应该用 Kotlin 来写;用 Kotlin 编写通常意味着更少的代码——更少用于类型、测试和维护方面的代码。
一个会写诗的程序员
2019/05/14
7000
Kotlin + Spring Boot 2 + Spring 5 快速开发与项目实战
Kotlin十周年:Kotlin 1.5稳定版发布——2021年第一个大版本更新有何亮点?
Kotlin十周年:Kotlin 1.5稳定版发布——2021年第一个大版本更新有何亮点?
一个会写诗的程序员
2021/12/16
8570
Kotlin十周年:Kotlin 1.5稳定版发布——2021年第一个大版本更新有何亮点?
2020 年编程语言盘点展望:Java 老兵不死,Kotlin 蓄势待发
链接: https://www.oreilly.com/radar/where-programming-languages-are-headed-in-2020/ 作者:Zan McQuade & Amanda Quinn
逆锋起笔
2020/06/01
8670
【玩转腾讯云】2020 年编程语言盘点展望:Java 老兵不死,Kotlin 蓄势待发
在进入新的十年之际,各行各业都在进行盘点与展望。SegmentFault 作为开发者社区与科技行业的垂直媒体,一直关注行业的发展与相关动态,近期已陆续为大家整理了各大平台、社区针对技术领域作出的预测与盘点。
小李子
2020/05/11
1.2K0
【玩转腾讯云】2020 年编程语言盘点展望:Java 老兵不死,Kotlin 蓄势待发
编程语言趋势最新报告:开发者最青睐DevOps,Kotlin增长最快
2019 年 11 月至 2020 年 2 月期间,SlashData 对 159 个国家和地区的 17000 多名开发者进行了调查。报告指出了目前编程语言领域的几点重要趋势:
机器之心
2020/04/28
5820
如何看待 Kotlin 成为 Android 官方支持开发语言?
Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言。一时间朋友圈和Android圈被各种刷屏。当然我也顺势而为发布了一篇的文章《为什么我要改用Kotlin 》,着实狠狠地蹭了一波热度(尽管这样会被鄙视)。眼下Android圈已经躁动了,甚至严重到如果对Kotlin视而不见就显得自己不像一个合格的Android程序员。
技术小黑屋
2018/08/29
4220
又一巨头从Java迁移到Kotlin:关键应用全部开始切换、安卓代码库超过千万行Kotlin代码
编译|燕珊,核子可乐 Meta 现在爱 Kotlin 多于 Java。 Facebook 母公司 Meta 正在将其 Android 应用的 Java 代码迁移到 Kotlin。根据 Meta 的官方博客所述,截至今天,其 Android 代码库已经有超过 1000 万行 Kotlin 代码,旗下包括 Facebook、Instagram、Messenger、Portal 和 Quest 在内的应用都已经开始从 Java 转向 Kotlin。 将代码库转换为 Kotlin Kotlin 是一种更年
深度学习与Python
2023/03/29
7160
又一巨头从Java迁移到Kotlin:关键应用全部开始切换、安卓代码库超过千万行Kotlin代码
2020 年开发者生态报告:Python超越Java,Go、Kotlin强势崛起
近日,JetBrains发布了一份2020年开发者生态报告。该报告是基于19696个开发者的反馈所得到的,目标是完成对2020年开发环境,开发工具,开发语言的趋势调研。
新智元
2020/06/17
8660
2020 年开发者生态报告:Python超越Java,Go、Kotlin强势崛起
Android 工程师开发 iOS 是怎样的体验?
Hello 各位朋友好久不见😂,好久没有更新公众号了,为什么没有更新,是因为我最近一段时间都在写 iOS 应用,终于在前几天完成了自己的第一个 iOS 产品的开发工作,大概在明年一月初的时候这个 App 会上线,一款非常有意思的应用,你们可以期待一下。 正好通过这次尝试开发 iOS 的机会,写一篇文章分享一下开发 iOS 的体验,如果你和我一样之前是一名 Android 工程师,那么希望我的经历可以帮到你。 正如标题所说:Android 工程师开发 iOS 是怎样的体验?这篇文章我会为大家对比我在 Andr
Android丨Kotlin
2019/12/23
1.8K0
Android 工程师开发 iOS 是怎样的体验?
使用 Kotlin 构建 Android 应用 | Kotlin 迁移指南 (上篇)
今年五月份的 Google I/O 上,我们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言。接下来的几周我们将会为大家连载关于 Kotlin 迁移指南的系列文章,包含 Kotlin 的优势和介绍 (上篇)、迁移到 Kotlin (中篇),以及使用 Kotlin 的常见问题 (下篇),帮助开发者们顺利迁移并开始使用 Kotlin 构建 Android 应用。
Android 开发者
2019/11/01
1.3K0
使用 Kotlin 构建 Android 应用 | Kotlin 迁移指南 (上篇)
谷歌推出 Kotlin 免费课程,让你轻松入门 Android 开发!
最近,微软推出了一套免费的 Python 在线视频课程,为 Python 初学者提供学习材料。无独有偶,谷歌近日也宣布推出两个 Kotlin 免费在线课程,正如苹果将 iOS 开发人员从 Objective-C 转移到 Swift,谷歌也在将 Android 开发者从 Java 转移到 Kotlin。
GitHubDaily
2019/09/29
1.6K0
谷歌推出 Kotlin 免费课程,让你轻松入门 Android 开发!
Android 11来了!更多Kotlin支持Java或退出安卓舞台
今天,Google发布了Android 11测试版。和前辈相比,11主要在通知系统、电源菜单等功能做了一些升级。
新智元
2020/06/17
1K0
Android 11来了!更多Kotlin支持Java或退出安卓舞台
Kotlin 能取代 Java 吗?
当谈到 Android 应用程序开发时,哪种编程语言会首先出现在你的脑海呢?我猜你会立即想到 Java,毕竟大多数的 Android 应用程序都是用 Java开发的。
纯洁的微笑
2019/05/06
1.1K0
Kotlin 能取代 Java 吗?
Kotlin 替代Java? 谷歌重磅推出 Kotlin 免费视频课程
此前我们报道过微软推出 Python 免费在线视频教程,为 Python 初学者提供学习材料。无独有偶,谷歌近日也宣布推出两个 Kotlin 免费在线课程,正如苹果将 iOS 开发人员从 Object-C 转移到 Swift,谷歌也在将 Android 开发者从 Java 转移到 Kotlin。
开发者技术前线
2020/11/24
1.1K0
Kotlin 替代Java?  谷歌重磅推出 Kotlin 免费视频课程
JetBrains用Kotlin布了一个大局
以下观点来自Vasiliy Zukanov的博客,并经过大码农编译总结。如果要查看原文,请点击文末的“查看原文”。 2011年,在经过了一年精心开发之后,JetBrains发布了他们的JVM编程语言Kotlin。2016年2月15日,Kotlin 1.0发布,这是第一个正式稳定版。在2017年5月的Google IO开发者大会上,谷歌宣布Android平台正式支持Kotlin,Kotlin从此成为Android的一等开发语言。 Kotlin也被戏称为Android上的Swift,并与Java之间展开了一
企鹅号小编
2018/02/05
7320
JetBrains用Kotlin布了一个大局
现代编程语言哪家强?2020年,你或许应该了解这7门编程语言
如果我们把人类的现代文明看作一辆汽车,那么软件开发行业就像汽车的发动机,编程语言就像发动机的燃料。那么问题来了,你应该学哪种编程语言?
AI研习社
2020/02/12
1.2K0
Android开发:Kotlin 取代 Java 只是时间问题?
IT派 - {技术青年圈} 持续关注互联网、区块链、人工智能领域 在使用Kotlin进行了一段时间的Android开发之后,我深深地体验到了它的美好,Kotlin 取代 Java 只是时间问题,觉得
IT派
2018/03/27
1.4K0
Android开发:Kotlin 取代 Java 只是时间问题?
JetBrains 2020 年开发者生态系统状况报告,JAVA 仍是最受欢迎的语言
本报告介绍了由 JetBrains 进行的第四次年度开发商生态系统调查的合并结果。到 2020 年初,他们对 19696 名开发人员进行了调查,这些反馈帮助 JetBrains 确定了有关工具,技术,编程语言以及开发世界许多其他令人兴奋方面的最新趋势。
用户7454708
2023/05/08
3270
JetBrains 2020 年开发者生态系统状况报告,JAVA 仍是最受欢迎的语言
推荐阅读
相关推荐
Kotlin转向谷歌云平台,因此开发人员可以像在Android上一样喜欢它。Kotlin是Android开发者的宠儿语言。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档