作者 | 屠敏

出品 | CSDN(ID:CSDNnews)

1995 年 5 月 23 日,Sun 公司在 Sun world 会议上正式宣布了 Java 的到来,从此一代编程语言界的翘楚就此诞生。而在不断地迭代与适配中,今时今日,Java 以需要满足各个层面开发者的需求与横扫各大编程语言榜单的成绩给了 24 岁的自己一张值得骄傲且满意的答卷。不过与此同时,我们也发现正值本命年之际的 Java,在未来的一段时间内,或将迎来一次大考。

虽然在过去的一些年中,常青藤 Java 一直在被如 C++、C#、Erlang、Python 等其他编程语言挑战,但最终结果均不一而终。不过,近两年间,一门新崛起的多用途编程语言——Kotlin,在硅谷科技巨头之一的 Google 扶持下,开始逐渐蚕食 Java 的应用市场。目前来看,Kotlin 对 Java 虽构不成致命的威胁,但是当未来 Google 的 Kotlin-first 政策完全落实之后,再加上 Oracle 对 Java 放任的态度,一切将变得难以轻易下定论。

而除却以上外界因素,就 Kotlin 本身而言,其是否有抗衡 Java 的潜力?接下来,我们将从近日 Kotlin 的开发商 JetBrains 最新发布的一份《Kotlin Census 2018》的报告中寻找到答案。

注:该报告基于全球 4300 名开发者(不局限于 Kotlin 用户)。

适用于多平台应用的 Kotlin 编程语言

何为 Kotlin?

Kotlin 是一门静态编程语言,可用于开发几乎所有类型的应用程序,包括服务器端、桌面、移动甚至嵌入式。由 JetBrains 设计和开发,一直以来,Kotlin 获得了科技巨头和开发商们的大力支持。

2016 年 Kotlin 1.0 发布;

2017 年,Google 在 I/O 大会上宣布 Kotlin 成为 Android 开发的官方语言;

2018年,Kotlin 拥有 150 万+ 用户,并在 GitHub 上拥有超过 96,000 个存储库;

2019 年,Google 于 I/O 大会上再次宣布 Google 当前采取的下一个重大步骤是 Kotlin-first,Android 开发将越来越多地以 Kotlin 为主。

那么当前大环境下,有多少开发者在使用 Kotlin?Kotlin 的真实应用现状又如何?接下来,我们与大家详细分享。

Kotlin 的商用还处于起始阶段

根据调查显示,有超过一半的受访者表示,他们在生产代码中使用了 Kotlin 语言,而这一使用数据相较于去年,也有所增长。当下如 Gradle、Pinterest、Atlassian、Pivotal 以及更多公司和项目在开发中使用了 Kotlin 语言。

不过,有 13 % 的开发者称,虽当前正在使用 Kotlin,但尚未发布项目。

2018 vs 2017 Kotlin 应用现状

而基于以上数据,我们也不禁好奇,相较于 Java,Kotlin 还存在哪些挑战?又是什么阻碍了开发者上手 Kotlin?

对此,JetBrains 列出了几个主要观点:

  • 开发者对 Kotlin 技术知识的缺乏;

  • 市场对于该语言的采用率低;

  • 开发者并不想学习新的语言;

  • Kotlin 并没有价值;

  • 生态系统薄弱;

  • ......

据以下的数据统计结果,我们发现,阻碍开发者学习 Kotlin 最大的因素源于不少人认为自己缺乏 Kotlin 相关的技术知识,且这一数据占比高达 55%。其次,有 18% 的受访者表示 Kotlin 语言的采用率低。

在此,针对在上手过程中缺乏专业技术知识的开发者,JetBrains 也分享了一份资源汇总,希望对大家有所帮助:

  • Kotlin 官网:https://kotlinlang.org/docs/reference/

  • Coursera 上的 Kotlin for Java Developers 视频课程 :https://www.coursera.org/learn/kotlin-for-java-developers

  • Atomic Kotlin 的书和相关的学习资源:https://www.atomickotlin.com/atomickotlin/

  • Kotlin Playground 可以探索 Kotlin:https://play.kotlinlang.org/

  • JetBrains 的 Kotlin Edu,免费工具,用于学习,教授和练习编程:https://www.jetbrains.com/education/

另外,从 Kotlin 的使用来看,距离 Kotlin 1.0 版本至今已有 3 年的发展历程,但事实上,让 Kotlin 大火起来还是源于 Google 对其的支持。因此对于 Kotlin 使用的年限,根据报告显示,大多数的开发者还处于 1-2 年之间,这也属于意料之中。

不过在未来,越来越多的开发者会拥有更加丰富的 Kotlin 开发经验。且如果他们使用 Kotlin 超过一年,看起来他们通常会坚持下去。

Kotlin 支持的平台有哪些?

Kotlin 最重要的目标之一是在多平台上共享代码,当前主要有四种支持环境可以帮助开发者简化编码过程,并为跨平台开发提供更多机会。Kotlin 主要支持 JVM、JavaScript、Android 和 Native。这使得该语言可开发所有类型的应用程序并在流行的操作系统(如 iOS,macOS,Windows 和 Linux)上运行它们的绝佳代码。

Kotlin 最常被用于哪些平台中?

Kotlin 最受欢迎的用途是在 JVM 中,占比高达 67%,而在 Android 环境中,Kotlin 以 57% 的使用率排在第二位。

哪种 JDK 版本,开发者最常用?

在这一问题中,一直以来,Java 的长期支持版本都极具优势。这不在此次调查中,有 84% 的 Kotlin 用户选择了 JDK 8。而第二个最受欢迎的版本是JDK 11,占 27%;与此同时,JDK 9 和 10 使用率均为 8%。

是否使用 Java 模块?

在对以 Kotlin 开发者为主的调查中,我们发现有 70% 的开发者表示不会使用 Java 模块,仅有 18% 的受访者称在日常的开发中会用到 Java 模块。

常用的 Android 版本?

在以下的调查结果中,有 82% 的开发者表示使用的是 Android 8.0 Oreo 版本;其次有 78% 的受访者表示最常用 Android 7.0 版本,而对于最新的 Android 9.0,其使用率与 Android 6.0 相同,均为 75%。

从中我们也可以看出一个问题,即当前大环境下,Android 的碎片化依旧很严重。

在哪里运行从 Kotlin 编译的 JavaScript 代码?

有 88% 的开发者表示基于浏览器的方式。

常用的开发平台/操作系统?

相比 2017 年有 48% 的开发者基于 Android 平台来使用 Kotlin 语言,2018 年,66% 的受访者表示最常用 Android 平台。其次,Linux 为第二选择。

整体而言,越来越多的开发者在基于 Kotlin 进行跨平台开发。

基于 Kotlin 开发的 App 类型有哪些?

据报告显示,25% 的用户正在使用 Kotlin 开发 2 种类型的 App。

15% 开发了 3 种类型的 App,但大多数开发者仍然只在一种类型的 App 中使用 Kotlin。

Kotlin 开发了哪些类型的应用程序?

在移动互联网时代,无论是 Java 还是 Kotlin,大多数会被用于移动应用开发。在本次调查中,有 58% 的受访者表示,他们正在使用 Kotlin 开发移动应用,48% 的开发者称用其开发 Web 后端。此外,Kotlin 还被用于库和框架、桌面、工具、Web 前端、游戏开发、数据分析、IoT、机器学习以及嵌入式等场景中。

Kotlin 的跨平台实践

在 Kotlin 1.2 版本中,首次引入了多平台项目特性,可通过多平台项目支持 JVM 和 JavaScript 平台的代码共享,随后在 Kotlin 1.3 版本中,JetBrains 的开发团队对其进行了大幅改进。彼时它包含了一组特定的库,可帮助开发者编写多平台代码。

作为 Kotlin 开发者,你是否在 Kotlin 中使用多平台项目(MPP)功能?

对于这一新功能,有 89% 的受访者表示并未用过,仅有 11% 的开发者称使用过。

主要会针对哪个平台使用 MPP 功能?

基于以上使用了 MPP 功能的开发者,大多数会应用于 JVM 平台,其次分别是 Android、JavaScript 和 iOS。

MPP 用户所开发的 App 类型

整体而言,依旧是移动领域使用 MPP 最为广泛。其次为 Web 后端,占比 56%。

在跨平台开发过程中,主要共享哪部分的代码?

“Write once,run anywhere”应该是每位开发者在开发过程中最为期待的一件事。根据调查报告显示,Kotlin 开发者在跨平台开发过程中最常共享的代码为算法和数据架构部分,而这一部分相对而言,也比较复杂。

随后 JetBrains 也对尚未使用 MPP 功能的开发者进行了深入的调查,其中,有 41% 的受访者希望可以实现算法和数据结构的代码共享,32% 的人表示希望数据格式能实现共享。

Kotlin 工具的选型

均出自 JetBrains 之手的 Kotlin 语言和 IntelliJ IDEA,这两者的匹配应用应该不足为奇。

而 Android Studio 又是 Google 基于 IntelliJ IDEA 平台而开发的 Android 开发工具,其为移动开发提供了出色的用户体验。

根据调查显示,有 44% 的受访者称正在使用 Android Studio,其次,有 37% 的开发者使用 IntelliJ IDEA Ultimate 版本。

使用哪种 IDE 进行 Kotlin 开发?

对于 Kotlin 开发者,基于不同的环境开发,所使用的 IDE 均有所不同。就 JVM 平台而言,开发者最喜欢使用 IntelliJ IDEA Ultimate 版本;

在 Android 平台下,则有 76% 的受访者使用 Android Studio。除此之外,在 JS 和 Native 下,开发者最常用的 IDE 均为 IntelliJ IDEA Ultimate。

最常用的构建工具

无论是哪个平台或环境,对于开发者而言,其最常用的工具均为 Gradle,整体占比高达 86%。

库和框架

最常用的 Kotlin 库和框架有哪些?

根据调查发现,自 2017 年以来, Kotlin 库的使用率几乎翻了一番,而且最常用的库也继续受欢迎。其中,开发者最常使用的 Kotlin 库或者框架为 kotlinx.coroutines。其次,令人诧异的是,有 26% 的开发者没有使用过任何的 Kotlin 库和框架。

Kotlin 的生态发展

在此次的调查中,Java 仍是最受欢迎的编程语言,占比高达 42%,不过相比去年,这一数据有所下降。而其中,Kotlin 的发展与其相反,当前有 39% 的受访者称 Kotlin 为其主要的编程语言。

在本次受访者中,有 86% 的用户为程序员以及软件工程师。

而其公司的规模主要为 51-500 人的区间。

简而言之,当前的 Kotlin 正被各种规模的企业以及组织使用。

Kotlin 的前景

最后,对于 Kotlin 的发展前景,根据调查显示,Kotlin 在处理数据方面似乎更有前途。有 64% 的开发者表示,正在使用 Kotlin 来进行机器学习、数据分析、BI 等场景中。

更多报告内容,可参考:https://www.jetbrains.com/research/kotlin-census-2018/

(*本文为 AI科技大本营转载文章,转载请联系原作者)

CTA核心技术及应用峰会

5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。议程设置请请识别海报二维码查看。

目前CTA峰会倒计时1天!还没有拿到入场券的小伙伴可以识别海报二维码或者点击阅读原文,即刻抢购。你也添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。

推荐阅读

  • 危机加剧:ARM釜底抽“芯”,华为腹背受敌

  • 面对996,程序员如何利用“碎片时间”涨薪?

  • 权威解读 GitHub、Apache 疑云:主流开源软件究竟是否会被闭源?

  • Kaggle季军新手笔记:利用fast.ai对油棕人工林图像进行快速分类(附Python代码)

  • 程序员连拿3份Offer,每份高达45K?他说做对了这些!

  • ARM到底是一家什么样的公司?

  • 为什么你写了一万小时的代码,却没能成为架构师?| 程序员有话说

  • 别怀疑,孩子在家里也能学编程!

  • 百花村区块链山的选民们, 超有趣!

点击阅读原文,了解CTA核心技术及应用峰会」

Java 24岁!Google加持的Kotlin真能取代它?相关推荐

  1. Java 24 岁!Google 加持的 Kotlin 真能取代它?

    作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 1995 年 5 月 23 日,Sun 公司在 Sun world 会议上正式宣布了 Java 的到来,从此一代编程语言界的翘楚就此诞生. ...

  2. Java 25 岁了!Google 加持的 Kotlin 真能取代它?

    1995 年 5 月 23 日,Sun 公司在 Sun world 会议上正式宣布了 Java 的到来,从此一代编程语言界的翘楚就此诞生.而在不断地迭代与适配中,今时今日,Java 以需要满足各个层面 ...

  3. 今天是 Java 诞生日,Java 24 岁了!

    今天是 Java 诞生日,Java 今年 24 岁了,比栈长还年轻..还有得搞,别慌!作为一名Java语言的学习者,对Java的起源和发展有个大概的了解应是必要的. 1991年,Sun公司成立Gree ...

  4. google为何选择kotlin?kotlin如何解决java开发痛点【续】?

    上篇,kotlin如何解决java开发痛点,让程序员happier 写的很长,大叔以为在快餐式学习的时代,没几个人会看到最后.没想到,看完整篇的掘友还不少. @懒洋君 鼓励大叔,让大叔再写一篇,多写几 ...

  5. 24岁女生学java是否晚了?

    我觉得24岁学习java并不晚,因为25岁的分水岭你还没有过,女人最好年龄还没有错过! 就像其他朋友说的,当你问出这个问题的时候,就是学习最早的时候! 24岁怕什么?25岁都没过,我是26岁才转行学的 ...

  6. Bruce Eckel:我最喜欢Python,Kotlin或将取代Java(附演讲全文+PPT)

    导读:Java很难再做出更多的改变了,那么它会被替代吗?它的替代者是谁? Bruce Eckel为什么最喜欢Python,Python究竟好在哪? Kotlin是怎样为程序员提高效率的? 大龄程序员应 ...

  7. 转载:24岁了,做个精致的电子工程师

    上21IC几年了,一直潜水中,曾受多少电子高人的鼓舞,今天我终于耐不住了,想把我毕业一年的绝对真实的故事献给大家,望批评指正,谢谢. 我毕业于中国一所重点大学,本科电子信息工程专业,还有几个月我的生命 ...

  8. 24岁博士毕业,受聘211高校副教授,90后开挂背后是自律和坚持

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 近日,一则题为"他24岁北航博士毕业受聘211高校副教授"的消息 ...

  9. 24岁小伙跟女友回家 与41岁准丈母娘畸恋私奔

    41岁的张英,南京本地人,长得面容姣好且身材婀娜,风韵犹存;24岁的许杰同样是南京人,长得英俊高大且憨厚老实.两人并肩走在大街,路人肯定以为他们是姐弟俩,谁也不会认为他们是对相恋很深的情侣.     ...

最新文章

  1. 简单的Windows资源管理器——Java版本
  2. Mysql数据库的安装教程
  3. x86汇编-1(第一章—第二章)8086处理器基本情况
  4. 知乎推荐算法工程师面经
  5. android 8.0后台定位,Android 8.0权限说明
  6. 伯克利推出世界最快的KVS数据库Anna:秒杀Redis和Cassandra
  7. webpack-internal:///./node_modules/vue/dist/vue.esm.js:629 [Vue warn]: Invalid prop: type check fail
  8. SQL 存储过程 多条件 分页查询 性能优化
  9. CentOS搭建git服务器实测
  10. 【功能更新-1:选项统一】利用python生成自制英语试题程序开发
  11. 486微型计算机的字长是 8位 16位 32位 64位,大学计算机基础考试试题
  12. 计算机度分秒在线,角度计算器度分秒在线
  13. 转载:我的外语学习历程(如何学会十门外语)
  14. 稳压二极管工作原理与使用
  15. 让电脑自动开机、关机以及取消开机密码
  16. 计算机无法进入测试页面,为什么打印机无法打印测试页?介绍具体的多种原因及解决方法...
  17. 华为数通HCIE实验考试LAB-C2全记录
  18. 八卦는 生命의 運動 (韓長庚 易學原理總論)
  19. 如何识别手写汉字?跟着步骤就能完成
  20. 敬业签云便签提示“基础连接已关闭,发送时发生错误”如何解决

热门文章

  1. Visual Studio 2010构建Web浏“.NET研究”览器应用程序
  2. 设计模式(4)-序列生成器之单例模式
  3. 概念被滥用 你真的了解云计算吗?
  4. MIDP2.0引入了Push注册机制
  5. 2018-3-28 基本粒子群优化算法
  6. 密码学摘要算法之MD5
  7. 微信小程序----调用用户信息
  8. C# 视频多人脸识别的实现
  9. 010 并发的三个特性
  10. Linq基础知识小记二