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

在今年的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,只是为了让开发者有多种选择。虽说编程语言只是软件实现的一种工具,开发者无论选择哪种语言都没有绝对的对与错。但在互联网时代,开发者应该懂得审时度势,拥抱变化,才能走得更远。
Kotlin使用率达35%,Java要退位了?的更多相关文章
- Kotlin 或将取代 Java——《Java 编程思想》作者 Bruce Eckel [转]
Bruce Eckel 是<Java 编程思想>.<C++编程思想>的作者,同时也是 MindView 公司的总裁,该公司向客户提供软件咨询和培训.他是 C++ 标准委员会拥有 ...
- IntelliJ IDEA Error:(24, 35) java: 常量字符串过长
在转换一个JSON转Java对象是 idea 编译不通过 提示:Error:(24, 35) java: 常量字符串过长 File -> Settings -> Build,Execut ...
- 京东热 key 探测框架新版发布,单机 QPS 可达 35 万
https://mp.weixin.qq.com/s/3URAvUF6zwxeF5Kkc1aWHA 京东热 key 探测框架新版发布,单机 QPS 可达 35 万 原创 Hollis Hollis 2 ...
- Kotlin笔记小结(For Java Developer)
这篇文章为kotlin学习记录,主要针对的是自己的知识盲区,不适用于新手. 文中所有demo均来自于kotlin官网 类型 整形 Type Size (bits) Min value Max valu ...
- Java - 35 Java 实例
Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 Java 实例 – 如何编译一个Java 文件? Java 实 ...
- IDEA报错 Error:(24, 35) java: 常量字符串过长
修改设置
- 弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
自从 2011 年发布以来,Kotlin 凭借强大的功能在开发者中的欢迎程度与日俱增.且在一年前,Google 宣布 Kotlin 正式成为 Android 官方开发语言,由此引发了从 Java 迁移 ...
- 跌宕起伏的java帝国史,剖析谷歌甲骨文长达8年的版权战争
这篇博文是我在B站上发的一个科普java的视频文案整理,本来发过一次了,但是有几种不严谨的地方只能删掉重新发了一下,内容如标题,感兴趣的码农朋友可以观看视频的版本,欢迎提提意见啥的,感谢~https: ...
- kotlin的一些特性介绍和与java C#的简单对比
前言 这是我之前在知乎上的一些回答的汇总,感觉还是博客园写这些东西方便一点,也算是理下我的一些思路,现将文章整理后,发布在园子里. 为何是kotlin: 很多人对kt没有一个正确的定位,可能大家第一反 ...
随机推荐
- nginx优化方案
一.nginx 配置文件中对优化比较有作用的为以下几项:1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8). ...
- 利用python求非线性方程
最近在做的东西中有一件任务,相当于一个函数已知y来求x,网上找了各种办法最终得以实现.在此说明方法,并记录一些坑. 要求的函数比如:log(x) - log(1-x) + 2.2 * (1 -2x) ...
- 20191128 Spring Boot官方文档学习(10)
10.附录 附录A:通用应用程序属性 附录B:配置元数据 附录C:自动配置类 附录D:测试的自动配置注释 附录E:可执行的Jar格式 附录F:依赖版本
- BZOJ 4857 反质数序列
题面 奇数+奇数一定不是质数(1+1除外),偶数+偶数一定不是质数,质数只可能出现在偶数+奇数中 把所有的点排成两列,权值为奇数的点在左边,权值为偶数的在右边 如果左边的点x+右边的点y是质数,我们就 ...
- redis 字符串 数据类型
1 字符串 设置: set key value 获取: get key 删除: del key getrange key 0 3 截取字符串内容 ...
- WebSocket的使用(基于VUE与SpringBoot)
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 We ...
- Exchange 2010 详细安装步骤
工具/原料 系统要求:windows 2008 R2 标准版或者企业版 Exchange Server 2010 SP3:https://www.microsoft.com/en-us/downl ...
- ImportError: Could not import PIL.Image.
pip install pillow
- [Vue] vue的一些面试题2
1.Vue.observable 你有了解过吗?说说看 vue2.6 发布一个新的 API,让一个对象可响应.Vue 内部会用它来处理 data 函数返回的对象.返回的对象可以直接用于渲染函数和计算属 ...
- web端生成的带有echarts图表的html页面,嵌入在(javaFx)webview中显示错位问题
web项目需要嵌入到手机APP的webview里面以及 windows客户端应用(JavaFx)的webview里面,这个时候就出现了问题. echarts渲染的时候根据浏览器不同的内核显示是有区别的 ...