Kotlin生态调查结果出炉:超过6成的开发者用过Kotlin了

简介: imageKotlin 整体的发展速度还是让不少开发者为之兴奋。同时鉴于 JetBrains 和Google 的大力支持,以及开发者社区的热捧,我们也相信它会越来越流行。
img_e548111223444f622e9833e0c339865c.jpe
image

Kotlin 整体的发展速度还是让不少开发者为之兴奋。同时鉴于 JetBrains 和Google 的大力支持,以及开发者社区的热捧,我们也相信它会越来越流行。但如今主要的问题是,它在未来是否会成功地入主 Android 以外的应用?

如今 JetBrains 正在大肆推动 Kotlin 的多平台应用,它是否会得到大家的认可也仍未可知。但是想要它成为 Web、iOS 以及后端开发者新的标准,想必也还需要数年的时间来扩展。根据调查报告显示,越多越多的开发者迈出了 Kotlin 编程的第一步,也可以在面向对象、函数、脚本之间穿梭。这就足以说明,Kotlin 正在渗入到整个开发的生态系统中。

img_36b28d6beb335d9de7f63fd5877787ee.jpe
image
img_e6a3319da6a6a522fed3ffe9ca276cb6.jpe
image

More than half of our respondents have been working as developers for less than 5 years.

They seem to have slightly less work experience than the people who took the StackOverflow survey. Yet, the trusted old math of "the developer population doubling every 5 years" still holds.

img_7708f7a0268bda9b6e1e78cb090fdf7c.jpe
image

The number of people writing Kotlin in organizations varies greatly.

About a third says they have 2-5 people working with Kotlin in their company. This roughly matches the average size of a team developing Android apps.

img_16a1a623d9d5b423653a26bf1b78de3f.png
image

02. A success story in the making

Kotlin’s growth has been doubling each year until 2015, when the first massive spike in its usage happened.

Early that year, Jake Wharton released the documentadvocating Kotlin’s adoption at Square. They are known for creating some of the most popular open source libraries for Android.

As a result, a lot of people followed suit that year, giving talks and writing blog posts about Kotlin.

img_1ed510d309f34836f4f0053b19627657.png
image

Adoption absolutely exploded after May 2017.

Google announced that Kotlin was officially supported for Android and a massive number of Android developers started using Kotlin.

This will likely boost Kotlin’s adoption for years to come. Check out the clip for the huge applause.

img_d007bc2295586363c94075c02e7907a5.jpe
image

Students and young devs trust Google’s flair.

In its early days Kotlin was being picked up mostly by experienced and professional developers, but since the announcement its usage has exploded with newer developers, especially students.

img_86657b8e2cf8d0b245fc69dab16e4a30.jpe
image

Kotlin appeals to developers from varied backgrounds.

Although Java clearly dominates the playing field, our respondents work with many other programming languages. However, a handful of respondents adopted Kotlin as their very first language!

img_7e0980fde2fdd6817deb371519983a0a.jpe
image
img_a6eea8d627ca28236350f76c34058c06.jpe
image

The official website is by far the most popular resource for learning Kotlin.

Students, however, tend to favor courses on YouTube and Udemy, as well as various conference talks and demos.

These websites will likely be joined by streaming and live coding services such as Twitch in the next few years.

img_65833544ce6eb0c2b7fbe8371b7a3d96.jpe
image
img_be9827a8986cb96ce6df2003ef5701aa.jpe
image

Android is Kotlin's killer app

Android is hugely ️ across the board - used by professional developers and students alike. However, when it comes to backend applications, Kotlin’s users tend to be experienced developers.

img_b1c7a8516940078ee0e1593b55c007f0.jpe
image

Everyone has their favorites

Null safety is a favorite feature for everyone who ever had a NullPointerException in Java - i.e. every Android developer .

4% of diehard Star Wars fans selected “First Order Functions” from the questionnaire — a little “easter egg” that slipped in when The Last Jedi was playing in theatres…

img_98a127d4677f9f74471f76ac48b0e5eb.jpe
image

Extension functions are used across the board.

As confirmed by 77% of respondents, extension functions tend to make code more readable, especially when used in a functional programming context or when creating DSLs. The more experienced the respondent, the more likely they are to use them.

img_714b5f2613981f2fdd8d35fd667f6218.jpe
image

...

JetBrains and Android tooling dominates the build tools of the Kotlinverse.

They sit alongside Gradle - the default option for Android projects. The standalone compiler KotlinC barely made the list.

img_586f3fab040bff2b6b78594ee4993799.png
image

Similar to coroutines, DSLs aren’t being widely used yet, as they are seen as a more advanced topic.

About 40% of respondents have used a DSL, and out of those people, a quarter developed DSLs themselves

When asked what kind of DSLs they built, over half of the respondents answered highly specific DSLs - for finance, big data, and other fields. Other often mentioned DSLs include helpers specific to Android, and configuration tools.

img_6f95439af3a099b0f9b92fee3a8a8241.png
image

#Kotlin2019 and beyond

Kotlin's rapid growth is nothing short of exciting. But can it fulfill all its promises?

Given all the support by both JetBrains and Google, and the almost universal love that Kotlin receives in the developer community, we are sure that the language is not going anywhere. The main question is: will it manage to seriously break into the communities outside of Android?
JetBrains is heavily pushing the multi-platform dream, but will it see sufficient adoption in the following months and years? Will Kotlin become the new standard for web, iOS, or backend developers?

Regardless of this, even if it takes years to expand beyond the world of Android, we’ll still see new generations of developers taking their first steps into programming with Kotlin. They will have a modern, versatile, cross-platform language at their disposal. One that can cross between OO, functional, scripting, and declarative paradigms with ease.
This could mean that Kotlin will affect the wider programming language landscape by becoming a benchmark for what a programming language should be able to do.

One thing is for sure: there are exciting times ahead for the Kotlin ecosystem.
What are your opinions or thoughts? Either on the future of Kotlin itself, or this survey? Either drop us an email at stateofkotlin@pusher.com, or use the #StateOfKotlin hashtag on Twitter.

Kotlin从2011年低调问世,在短短几年间,如冲天火箭般流行起来。一年前,谷歌宣布将Kotlin指定为Android官方编程语言;来自Stack Overflow的一项问卷调查显示,超过10万名受调者表示Kotlin是他们的第二大编程语言。英国软件公司Pusher对此感到非常好奇,究竟Kotlin有什么特别的地方,让开发者如此着迷。于是,Pusher公司发起了一项针对Kotlin生态系统的问卷调查,从2018年1月份至3月份,为期三个月,受调者达到2744名。就是这份问卷调查的结果及其简要分析。

2019年的Kotlin将会怎样发展?

Kotlin的快速增长让人兴奋不已,但它是否真的像看起来的那么有前途?

因为有JetBrains和谷歌作为后盾,以及在开发者社区中广泛流行,我们可以确信,Kotlin会一路走好。但关键的问题是:它是否能够突破Android,进入到其他的领域?

JetBrains在极力推动它的多平台梦,但在未来几个月或者几年内是否能够看到令人欣喜的增长?Kotlin会成为Web、iOS或者后端开发者的新标准吗?

不管怎样,即使它需要几年时间才能跨出Android的藩篱,我们仍然会看到新的开发者加入到Kotlin的行列。他们的工具箱里将会多出一门万能的跨平台编程语言,这门语言涵盖了面向对象编程、函数式编程、脚本编程、声明式编程。这意味着Kotlin将会在编程语言领域产生重要影响,成为编程语言的标杆。

有一件事情是可以肯定的:Kotlin生态圈的发展让人拭目以待。


Kotlin 开发者社区

国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。

img_f0a9a5e3c63edb2cda8899c204e13bbf.jpe
开发者社区 QRCode.jpg
相关文章
|
Android开发 开发者 Spring
Kotlin 开发者社区
Kotlin 开发者社区 国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。
5142 0
|
Java Android开发 UED
Kotlin转向谷歌云平台,因此开发人员可以像在Android上一样喜欢它。Kotlin是Android开发者的宠儿语言。
image 【中文翻译在后面】 Android developers love Kotlin. Google can tell us that 27% of the top 1,000 Android apps are built usin...
1220 0
|
2月前
|
JSON 调度 数据库
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点。文章详细解析了Kotlin中的协程、扩展函数、高阶函数、密封类及`inline`和`reified`关键字在Android开发中的应用,帮助读者更好地理解和使用这些特性。
38 1
|
3月前
|
Android开发 开发者 Kotlin
告别AsyncTask:一招教你用Kotlin协程重构Android应用,流畅度飙升的秘密武器
【9月更文挑战第13天】随着Android应用复杂度的增加,有效管理异步任务成为关键。Kotlin协程提供了一种优雅的并发操作处理方式,使异步编程更简单直观。本文通过具体示例介绍如何使用Kotlin协程优化Android应用性能,包括网络数据加载和UI更新。首先需在`build.gradle`中添加coroutines依赖。接着,通过定义挂起函数执行网络请求,并在`ViewModel`中使用`viewModelScope`启动协程,结合`Dispatchers.Main`更新UI,避免内存泄漏。使用协程不仅简化代码,还提升了程序健壮性。
105 1
|
4月前
|
调度 Android开发 开发者
【颠覆传统!】Kotlin协程魔法:解锁Android应用极速体验,带你领略多线程优化的无限魅力!
【8月更文挑战第12天】多线程对现代Android应用至关重要,能显著提升性能与体验。本文探讨Kotlin中的高效多线程实践。首先,理解主线程(UI线程)的角色,避免阻塞它。Kotlin协程作为轻量级线程,简化异步编程。示例展示了如何使用`kotlinx.coroutines`库创建协程,执行后台任务而不影响UI。此外,通过协程与Retrofit结合,实现了网络数据的异步加载,并安全地更新UI。协程不仅提高代码可读性,还能确保程序高效运行,不阻塞主线程,是构建高性能Android应用的关键。
66 4
|
5月前
|
安全 Android开发 Kotlin
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
**Kotlin中的`by lazy`和`lateinit`都是延迟初始化技术。`by lazy`用于只读属性,线程安全,首次访问时初始化;`lateinit`用于可变属性,需手动初始化,非线程安全。`by lazy`支持线程安全模式选择,而`lateinit`适用于构造函数后初始化。选择依赖于属性特性和使用场景。**
180 5
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?