BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 覃云 关注 4 他的粉丝 发布于 2018年5月10日. 估计阅读时间: 6 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的邮件和网页通知

看新闻很累?看技术新闻更累?试试下载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,只是为了让开发者有多种选择。虽说编程语言只是软件实现的一种工具,开发者无论选择哪种语言都没有绝对的对与错。但在互联网时代,开发者应该懂得审时度势,拥抱变化,才能走得更远。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

那么 google自己的golang呢? by Chen YuGuo

那么 google自己的golang呢?

Re: 那么 google自己的golang呢? by Junzz 丶

该干啥干啥。

kotlin大法好! by Yuan Frank

我已经投奔kotlin,人生苦短,我用kotlin。

也许吧 by 小 晖

来学一下Kotlin视频教程吧
www.sucaihuo.com/video/190.html

短时间不可能把 by wang hui

已经有那么多java框架和组件,想要替代哪有那么容易

短时间不可能把 by wang hui

已经有那么多java框架和组件,想要替代哪有那么容易

Re: 短时间不可能把 by Cheney Peter

那是因为你不知道Java和 Kotlin混合编程吧。

Jetpack,让安卓飞 by 孙 奇辉

官方说是下一代Android API,+Kotlin可以减少三分之一代码。

. by c capc

新起的服务端项目都用Kotlin了,写了俩月现在一去不返

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

9 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT