Code前端首页关于Code前端联系我们

Google I/O大会:Kotlin的编程语言是Android应用开发者的首选语言

terry 2年前 (2023-09-23) 阅读数 75 #移动小程序
在Google I/O大会上,谷歌正式宣布Kotlin的编程语言现在是Android应用开发者的首选语言。 Java 在 Android 开发中称霸的日子已经一去不复返了。

1 Kotlin,东宫王子

Google 今天宣布Kotlin的编程语言现已成为 Android 应用开发者的首选语言。

“Android 开发将由Kotlin优先”,谷歌在今天的一份声明中写道。许多新的 Jetpack API 和功能将首先在 Kotlin 中提供。如果你开始一个新项目,你必须用Kotlin编写;用 Kotlin 编写通常意味着更少的代码 - 更少的类型、测试和维护代码。 ”

就在两年前的 I/O 2017 上,Google 宣布在其 Android Studio IDE 中支持 Kotlin。这有点令人惊讶,因为 Java 长期以来一直是 Android 应用程序开发的首选语言。过去两年,Kotlin的受欢迎程度有增无减。谷歌表示,现在超过 50% 的专业 Android 开发者使用该语言来开发应用程序,并且在最新的 Stack Overflow 开发者调查中,它被列为第四大最受欢迎的编程语言。

Google I/O 大会:Kotlin 编程语言是 Android 应用程序开发人员首选语言

Android 首席倡导者切特·哈斯 (Chet Haase) 表示:“我们宣布下一步将把Kotlin放在第一位。”你需要它。”你可能有充分的理由继续使用 C++ 和 Java 编程语言,这很好。这些语言永远不会消失。 ”

2Kotlin,Android世界的Swift?

自2015年起,Kotlin就有了“Android世界的Swift”称号。

Kotlin 是一种类似于 Swift 的静态类型 JVM 语言,由 JetBrains 设计、开发并开源。与Java相比,Kotlin的语法更加简洁和富有表现力,并且提供了更多的功能,例如高级函数、运算符重载和字符串模板。它与Java的互操作性很强,可以同时在一个项目中使用。

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

  • 制作一种与 Java 兼容的语言
  • 编译速度至少与 Java 一样快
  • 比 Java 更安全
  • 比 Java 竞争对手 Scala 更短,还是简单

如果在当时看来,Swift 在 Android 世界的称霸似乎缺乏底气,而更像是一个美好的愿望。所以在2017年和2019年Google I/O之后,可以做出这样的说法。

3 Kotlin 比 Java 更好吗?

许多新语言的出现是出于对其他一些语言的厌倦,Kotlin也在做同样的事情。但在 JetBrains 看来,Kotlin项目背后的真正动机是提高生产力。 JetBrains 开发者支持小组负责人 Hadi Hariri 在接受 InfoQ 采访时表示:

“虽然当时我们已经开发了对几种基于 JVM 的编程语言的支持,但我们仍然在 Java 中编写基于 IntelliJ 的 API这是一个基于IntelliJ的开发系统Groovy和Gant,Groovy也用于测试,RubyMine中有一些JRuby代码,我们想转向更具表现力的语言来提高生产力,同时我们不能接受Java Internet中在可操作性或编译速度方面的妥协。” Kotlin 和 Java 总是被主观地比较

“Kotlin 比 Java 更好”,“Kotlin 比 Java 更容易阅读”,“Kotlin 比 Java 发展得更快”,这样的说法不支持相关准确的数据,因此归类为主观意见。Kotlin或爪哇。

开发商主观评价存在以下问题:

  • 没有与主观判断相关的量化指标。
  • 主观判断是非常有偏见的。 由于没有与主观评估相关的定量指标,基于这些判断的意见仅反映了开发人员先前存在的偏见。不同的开发人员可能有不同的偏见,因此仅仅因为一位开发人员认为 Kotlin 是 Java 的好(或坏)替代品并不意味着其他开发人员也这么认为。

    此外,由于缺乏客观指标,客观上无法消除主观差异,往往会引发“口水战”。

    相比Java,Kotlin确实在几个方面有很大的优势:高效、易维护、可靠、易学。在某些特定场景下,许多Java开发人员因为某些问题而选择切换到Kotlin:例如,厌倦了Java NullPointerException(如Kotlin的Null安全功能)的人;扩展功能应用广泛;除了增加Java类之外,人们还经常将Java代码迁移到Kotlin。

    英国软件公司Pusher的调查数据显示,在对2744人的调查中,超过87%的受访者完成了迁移。有些人使用迁移向导,有些人直接手动修改代码。超过四分之一的受访者搬到了爪哇,然后又回到了爪哇。有技术原因,也有组织原因。使用反射或代码创建的工具是最常被提及的因素。

    • “Kotlin 的枚举不能包含常量。在注释自定义(例如@IntDef)时,为了保持界面整洁,值必须存储在枚举中。”
    • “我们使用 Realm,但它不适用于数据类。”
    • “我们在 Java 代码中使用 Retrolambda,但很难转移到 Kotlin,因为缺少类型。”
    • “对方团队不喜欢Kotlin,我们也没想到会这样……”
    • “这不是我们决定的,我们遵守公司规则。”

    Java 在编程语言排名中仍然排名第一。但是最好的爪哇语言是什么?不,因为每个领域都有更适合的编程语言。

    我想知道,爪哇人凭借什么优势占据第一?

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

    总的来说,爪哇语什么都是最好的。但也可以看出,Android社区拥抱Kotlin的速度越来越快。也许有一天,在 Android 的世界里,我们会看到 Java 之外的Kotlin。

    4 谷歌为何支持Kotlin?

    免责声明:以下内容纯属根据现有事实合理推测,无实际证据。

    还记得 Google 和 Oracle 之间正在进行的 Java 侵权案吗?这场持续了八九年的纠纷最终以谷歌败诉、向甲骨文支付88亿美元赔偿而告终。 (编者注:过去几年,几起判决决定了两家公司的胜负。今年1月,谷歌向美国最高法院提起上诉,要求最终判决。)

    事件发生在2010年,Java的所有者甲骨文认为,谷歌在Android系统中使用了37个免费的Java API,侵犯了专利,并且Android中有9行抄袭Java的代码,侵犯了版权。

    这9行代码被抄袭的原因据说是Google的工程师当时在做Android项目的同时也在做Sun的OpenJDK。然后,工程师直接从OpenJDK复制了9行代码到Android中,因为Google没有得到Sun的许可,甲骨文拿到Sun后,Java易手,相当于甲骨文侵犯了版权。

    对于37 Java API,双方都有不同的看法。谷歌认为API不应该受到版权保护,而甲骨文则认为谷歌的使用过于商业化。另外,用 Java 编写的 Android 代码无法在 JVM 中运行,对于 Java 语言来说是一种分裂。同时,甲骨文认为Android通过不当使用Java API降低了Java ME市场的可能性,这是其大肆索赔的依据。

    2016 年初,Google 发言人表示 Android N(7.0)将不再使用 Java API 内容,而是转向基于 OpenJDK 的方法,为开发人员创建通用代码库。虽然无法避免Java API诉讼,但至少可以减少纠纷。

    在Google I/O 2017大会上,Google宣布Kotlin成为Android开发的第一级语言。可以说对Kotlin寄予厚望。此后,Kotlin也被开发者视为Ja​​va的替代品。

    明年,谷歌可以说是把Kotlin当成自己的儿子了。为什么这么说?我们来梳理一下谷歌今年为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 的代码更加简洁。

    这证明谷歌正在逐渐接近Kotlin。虽然Kotlin还未能完全取代Java,但不难看出谷歌的“偏见”。事实上,Kotlin本人野心很大:2017年11月,在首届Kotlin大会KotlinConf上,Kotlin首席设计师安德烈·布雷斯拉夫宣布Kotlin将支持iOS开发和Web开发,这意味着Kotlin正在走向全平台开发。已经迈出了重要的一步。

    Kotlin目前正处于发展的早期阶段,仍有很大的成长空间。谷歌现在将其视为 Android 暮年的救命稻草。它可以与 Java 100% 互操作,但目标不是取代 Java,而是给开发人员一些选择。虽然编程语言只是软件实现的工具,但无论开发者选择哪种语言,都没有对错之分。但在互联网时代,开发者需要知道如何评估形势并解决变化,才能继续前进。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门