作者 | 屠敏
出品 | 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/
【END】
5 月 26 日- 5 月 27 日,第一届 CTA 核心技术及应用峰会将空降杭州国际博览中心。
携手阿里、腾讯、滴滴、微博等一线技术专家,清华、上交、复旦等大牛学者,共同探讨机器学习与知识图谱技术发展趋势和应用场景。
峰会倒计时2天,点击阅读原文,立即购票。
作为码一代,想教码二代却无从下手:
听说少儿编程很火,可它有哪些好处呢?
孩子多大开始学习比较好呢?又该如何学习呢?
最新的编程教育政策又有哪些呢?
下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)
戳他了解更多↓↓↓
热 文 推 荐
☞国产操作系统可以从 Google Android、Fuchsia 中学习到什么?
☞开源应自由!Apache、OpenStack 基金会权威回应美国出口管制
☞Linux 正在吞噬 Windows 和 Chrome OS!
☞揭秘清华 AI 学堂班:姚期智担任首席教授,2019 年首批招收 30 人
点击阅读原文,立即购票。