写点什么

Kotlin 使用率达 35%,Java 要退位了?

  • 2018-05-09
  • 本文字数:1705 字

    阅读完需:约 6 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在今年的 Google I/O 大会上,关于 Kotlin,Google 只说了只言片语:

在过去一年里,有 35% 的专业 Android 开发者在使用 Kotlin,其中 95% 的开发者都对 Kotlin 非常满意。

之后就没有再宣布关于 Kotlin 的重大消息或规划了。但结合过去一年 Google 的种种,我们似乎得到了一个信息:Google 要抛弃 Java,Kotlin 要上位了!

为什么这么说呢?听我慢慢道来…

事件背景

还记得 Google 的 Java 侵权案吗?两个月前,这件官司有了初步的结果: Google 被判赔偿 Oracle 88 亿美元

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

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

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

Google 做了什么?

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

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

在之后的一年时间里,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 的“偏心”。

如果你认为只有 Google 单方面在努力?那么你错了,在过去的一年中,Kotlin 自身也在成长与进步:

2017 年 11 月,在第一届 Kotlin 专题大会 KotlinConf 上,Kotlin 首席设计师 Andrey Breslav 宣布 Kotlin 将支持 iOS 开发和 Web 开发,这意味着 Kotlin 向全平台开发迈出了重要的一步。

虽然这和 Android 开发没多大的关系,这只是想告诉你它得宠的原因不仅是因为它在 Google 与 Java 产生“嫌隙”之时横空出世,而是它先天独特的性能与后天的“争气”,占据了天时地利人和,才得到了 Google 的青睐。

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

2018-05-09 19:003067
用户头像

发布了 83 篇内容, 共 49.1 次阅读, 收获喜欢 187 次。

关注

评论

发布
暂无评论
发现更多内容

跳跃表数据结构与算法分析

京东科技开发者

redis 算法 跳跃表; 数据结构算法 企业号 1 月 PK 榜

震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒

华为云开发者联盟

安全 后端 华为云 企业号 1 月 PK 榜 震网

华为云代码检查服务CodeArts Check深度解读——代码缺陷早发现,全面守护软件质量和安全

科技热闻

用 Pipy 做个 HTTP 隧道

Flomesh

HTTP Pipy 流量管理

软件测试/测试开发 | 使用postman发送请求

测试人

软件测试 Postman 自动化测试 接口测试 测试开发

软件测试/测试开发 | 接口测试之HTTP、HTTPS 抓包分析

测试人

https 软件测试 HTTP 自动化测试 测试开发

重磅发布 | 博睿数据发布金融行业精选客户案例集

博睿数据

可观测性 智能运维 博睿数据 精选案例

【深入浅出Spring原理及实战】「源码调试分析」结合DataSourceRegister深入分析ImportBeanDefinitionRegistrar的源码运作流程

洛神灬殇

spring Spring Framework

【iOS逆向与安全】系统推送服务(APNS)拦截

小陈

安卓 ios开发 逆向 iOS逆向 ios安全

SLS:基于 OTel 的移动端全链路 Trace 建设思考和实践

阿里巴巴终端技术

数据采集 Trace 移动端

合作升级|Kyligence 跬智智能分析平台入选华为云联营商品

Kyligence

数据分析

百度安全入选权威报告《联邦学习与可信AI市场机会分析》典型厂商

百度安全

从指标到洞察力的普罗米修斯

宋小生

Prometheus 普罗米修斯 普罗米修斯监控

书单 | 春节假期,我想把这几本书带回家!

博文视点Broadview

EMQ受邀出席华为云Top SaaS领航者私享会,共话SaaS企业发展未来

EMQ映云科技

物联网 IoT 华为云 emq 企业号 1 月 PK 榜

TracedModule: 更友好的模型表示方案,模型训练到部署的桥梁

MegEngineBot

深度学习 开源 MegEngine 模型训练到部署

又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速

华为云开发者联盟

人工智能 华为云 昇腾AI 企业号 1 月 PK 榜

逃不开的安迪-比尔定律,在智能机器人时代该如何破解?

优必选科技

人工智能 机器人 视觉处理

报告下载 | DQMIS高端闭门论坛成果报告——《2022第六届数据质量管理国际峰会关于数据要素发展几点看法和建议》

数据质量管理智库

数据 数据治理 数据安全 隐私计算 数据要素

易观千帆 | 11月用户体验GX评测:银行APP用户体验稳定提升,从流量竞争逐渐转向用户体验竞争

易观分析

用户体验 手机银行

【避坑指南】快准狠!一键采购电子元器件

华秋PCB

工具 元器件 PCB PCB设计

ChatGPT中文版重装上阵

felix

openai ChatGPT AIMODELMARKET

软件测试/测试开发 | 接口测试之HTTP 协议讲解

测试人

软件测试 HTTP 自动化测试 接口测试 测试开发

诠释现代美学设计,TECNO首款笔记本电脑MEGABOOK T1重磅来袭!

Geek_2d6073

Databend 内幕大揭秘第一弹 - minibend 简介

Databend

rust

软件测试/测试开发 | 使用 cURL 发送请求

测试人

软件测试 自动化测试 curl 测试开发

软件测试/测试开发 | 接口测试常用代理工具

测试人

软件测试 自动化测试 接口测试 charles 测试开发

YonBuilder 应用构建教程之移动端扩展

YonBuilder低代码开发平台

直播|镜舟 x Smartbi《后疫情下如何利用数据驱动企业逆势破局》

镜舟科技

数据库 镜舟数据库

稳定支撑千万级月活,华为日历背后的英雄

华为云开发者联盟

数据库 后端 华为云 企业号 1 月 PK 榜

数据库故障致美国超一万航班取消或延迟

NineData

数据库 运维 数据库开发 数据备份 数据系统

Kotlin使用率达35%,Java要退位了?_Java_覃云_InfoQ精选文章