美文网首页Android开发经验谈Android开发Android技术知识
Kotlin生态调查:超过6成的开发者用过Kotlin

Kotlin生态调查:超过6成的开发者用过Kotlin

作者: 程序员Android1 | 来源:发表于2018-08-03 09:28 被阅读44次

Kotlin 从2011年低调问世,在短短几年间,如冲天火箭般流行起来。一年前,谷歌宣布将Kotlin 指定为 Android 官方编程语言;

本篇文章主要介绍 Kotlin 开发中的部分知识点,文末有福利,通过阅读本篇文章,您将收获以下内容:

1.年轻的技术从业者更喜欢Kotlin
2.Kotlin正在走向成功
3.JetBrains的努力如愿以偿
4.萝卜青菜各有所爱
5.2019年的Kotlin将会怎样发展?
6.Kotlin 学习福利

欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

来自Stack Overflow的一项问卷调查显示,超过10万名受调者表示Kotlin 是他们的第二大编程语言。

英国软件公司Pusher对此感到非常好奇,究竟Kotlin 有什么特别的地方,让开发者如此着迷。于是,Pusher公司发起了一项针对Kotlin 生态系统的问卷调查,从2018年1月份至3月份,为期三个月,受调者达到2744名。以下是这份问卷调查的结果及其简要分析。

1. 年轻的技术从业者更喜欢Kotlin

超过70%的受调者为企业雇员,企业家和承包商占了11%左右。他们大部分都在科技行业工作,金融行业、教育领域和数字机构的比例则远远落后。保险行业和政府在采用Kotlin方面最为保守。

企业员工(72.4%),自由职业者(11.18%),学生(15.51%),其他(1.07%)。其中77.2%属于科技行业

超过一半的受调者开发经验不足5年。他们似乎比参与Stack Overflow问卷调查的开发者拥有更少的经验。不过,“开发者流行度每5年会翻一番”的如意算盘仍然会奏效。

在企业中使用Kotlin 的人数差异化严重。其中有三分之一的人表示,他们所在的公司有2到5个人在使用Kotlin ,而这个数字恰好是一个Android团队的平均人员配置。

0人(20.6%),1人(21.1%),2-5人(32.1%),5-10人(13.1%),10-50人(9.4%),50人以上(3.7%)

2. Kotlin正在走向成功

在2015年之前,Kotlin 以每年翻一番的速度增长。2015年早些时候,来自Square的Jake Wharton发表了一篇文档,详细说明了他们为什么要采用Kotlin 。他们的团队以开源流行的Android开发库而闻名。调查结果显示,那一年有很多人跟风,开始发表有关Kotlin 的演讲和博客。

2017年5月之后,Kotlin的采用开始爆发。谷歌宣布将Kotlin作为Android的官方开发语言,大量Android开发者开始使用Kotlin。谷歌的这一举措无疑极大加快了Kotlin在未来几年的采用速度。(Kotlin 介绍

学生和年轻开发者非常相信谷歌的实力。刚开始,使用Kotlin的大多是有经验的专业开发者,但在谷歌做出宣布之后,更多的年轻开发者参与进来,特别是学生。

Kotlin吸引了来自各种背景的开发者。尽管Java仍然占主导地位,不过受调者当中使用其他编程语言的也很多,不过也有少部分人将Kotlin作为他们的第一开发语言。

3. JetBrains的努力如愿以偿

超过60%的工作者在他们工作的项目中使用Kotlin。相反,只有三分之一的学生在他们的工作和个人项目中使用Kotlin。还有将近一半的人表示会在未来使用Kotlin。

官方网站是目前最受欢迎的Kotlin学习去处。不过,学生更喜欢YouTube和Udemy的在线教程,以及各种技术大会和演示。这些网站似乎会在接下来的几年提供视频流和实时代码服务,就像Twitch那样。

有很大一部分开发者在他们的工作项目和个人项目中使用Kotlin。不过,在个人项目中显然会用得更多,因为个人项目规模更小,更容易进行转换,也更方便进行实验。

Android是Kotlin的主要使用平台。大量的专业开发者和学生使用Kotlin开发Android,而在后端,使用Kotlin的非常有经验的开发者。

4. 萝卜青菜各有所爱

每个受够了Java NullPointerException的人都喜欢Kotlin的Null安全特性。其中有4%的人选择了“一等函数”。

扩展函数被大量使用。77%的受调者表示,扩展函数提高了代码的可读性,特别是在进行函数式编程或在创建DSL时。越是有经验的开发者,越是喜欢用扩展函数。以下是扩展函数的常见使用场景:

  • 我使用扩展函数……让算法从头到尾看起来很容易理解。
  • 只是为了检查null(因为我们有一个Java app)。
  • 主要是为了让代码更干净。我会尽可能控制它的作用域,除非它是一个非常通用的扩展函数。
  • 几乎用它做所有的事情。我经常使用内部扩展函数,以避免全局命名冲突。
  • 最主要将它用作DSL构建器的lambda参数。

除了扩展Java类,人们也常常将Java代码迁移到Kotlin。超过87%的受调者已经完成了迁移。他们有的使用了迁移向导,有的直接手动修改代码。超过10%的人使用向导将整个项目迁移到Kotlin,其中有22%是学生或者经验不足一年的新手。

超过四分之一的受调者迁移到Kotlin后又回到了Java。有技术方面的原因,也有组织方面的原因。其中使用了反射或代码生成的工具是被提及最多的因素。

  • Kotlin的枚举不能包含常量。在自定义注解时(比如@IntDef),为了保持接口的整洁,需要将值保存在枚举中
  • 我们正在使用Realm,但它不能与数据类一起使用
  • 我们的Java代码中使用了Retrolambda,因为类型缺失,很难转到Kotlin
  • 另一个团队不喜欢Kotlin,我们也预料不到会这样。
  • 这不是我们决定的,我们是按照公司的规则来的。
    Kotlin跨平台正在开始展现,但速度较慢。只有差不多四分之一的受调者表示,他们曾经用过跨平台支持,而且大部分使用了Koltin/Native,然后是KotlinJS。

假以时日,采用这些特性的人会增加。那个时候,Kotlin才真正有可能成为“编写一次,到处运行”的编程语言

协程(coroutine)是Kotlin官方提供的异步编程模式,但因为是实验性的,所以很少被用到。只有三分之一不到的受调者使用了协程,而这些人都拥有超过5年的开发经验。他们似乎已经在其他语言中使用过协程,所以在Kotlin中使用协程不会刚到别扭。

  • 因为它是实验性质的,所以我先不用它。
  • 我们基本上将它作为fintech的解决方案,app的核心逻辑使用协程编写。
  • 我用了Arrow这个库,它使用协程实现for循环。
  • 目前正在使用协程替换CompletableFuture。协程主要用在高并行计算中的任务管理。

JetBrains和Android Studio几乎统领了Kotlin生态圈的开发构建工具。从图上可以看出,它们都位于Gradle(Android项目的默认构建工具)的左边,而独立编译器KotlinC的使用比例较低。

与协程类似,DSL也没有被广泛使用,因为它属于高级特性。大概有40%的受调者使用了DSL,除此之外,有四分之一的人自己开发DSL。当被问及他们都开发了哪些类型的DSL时,一般的受调者表示,他们开发的DSL都是与特定领域相关的,比如金融、大数据等。其他DSL还包括用于Android和配置工具的DSL。

学生们喜欢玩文字游戏。越是有经验的开发者,对此越是不关注。

5. 2019年的Kotlin将会怎样发展?

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

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

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

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

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

6.Kotlin 学习

Kotlin 学习官网:
Kotlin 学习官网
Kotlin 官方学习PDF 教程

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。期待您的关注,
感谢您的阅读,谢谢!

如有侵权,请联系小编,小编对此深感抱歉,同时小编会立即停止侵权行为。

​欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

点击阅读原文,获取更多福利


相关文章

网友评论

  • var_rain:1.没有性能的提升,我为什么要用它
    2.同样是跑在JVM上,我为什么要用它
    3.第三方支持不及Java,我为什么要用它
    4.目前看来,跨平台和语言交互都不及Java,我为什么要用它
    5.目前来讲,Kotlin广泛应用的领悟还是Android,同样Android也支持Java,我为什么要用它
    6.对于团队来讲,做一个项目使用一门不熟悉的语言,其开发效率还不如使用一门熟悉的语言,所以,我为什么要用它
    7.其语言本身的设计,只是一种尝试,在某些方面并不成熟,相对Java来说,我觉得Java才是经过市场考验的,所以,我为什么要用它
    8.我为什么要用它
    树叶秋:@var_rain 但是时间验证的结果已经初见苗头了,现在java的生态无非就是java ee和Android,Android上谷歌已经表示了态度,而java ee目前主流框架就是spring,spring5已经部分采用kotlin编码了,springboot2.0的demo也都出现了kotlin版
    var_rain:@树叶秋 虽然我不否认你的这些观点,但是,不得不说,在我以及大多数我接触到的使用Kotlin的人都是这样评价的: Kotlin是Java最强大的第三方开发框架。
    关于Kotlin有没有经过市场的考验,以及能不能取代Java,我觉得时间会给出答案
    树叶秋:@var_rain 1.没有性能提升,那就是至少不差
    2.既然都是跑在jvm上,那就是也没有差别
    3.java库都是kotlin的第三方支持,何来不及
    4.既然都是跑在jvm上,为什么跨平台不及java,语言交互是两种语言同时使用才会有的问题,责任不在其中一方
    5.Android端同时支持java和kotlin也是kotlin的错?目前只在Android,你可知spring?趋势如果是往上的,难道你要等到势到达最高点才介入?
    6.确实如此,但是因为这样就完全否定新鲜事物,那么这个团队怎么受益于新出的好的东西,你团队还在用eclips吧
    7.新东西也确实需要得到验证,然后jb公司已经用项目验证过,其他公司也有使用者,到现在已经7年了,即使它不完美,却也能正常运行。别忘了jdk也在不断迭代
    8.终上所述,除了第6点,都不能成为一个公司或个人考虑要不要使用kotlin的参考。kotlin的优势……
    9.除了第6点。1.用一门新语言,需要学习成本2.会增加招人成本3.会增加同事间交流的成本4.会增加环境配置或问题的时间成本5.一些不熟悉面向对象为何物的同事或不注重代码美观的同事会造成代码混乱,因为kotlin的语法非常灵活
    10.第9点是个人看法,是使用kotlin使用过程的感受,但是这些问题都是短暂的,新来的同事由没听过kotlin到能写程序,也就是学习三五天,实践一两周(也仅仅是能写),如果是由于个人因素导致的问题,应该不能怪kotlin,用刀子切水果,切到手,说它太锋利,确实不合适
  • 有点健忘:我用他只有一个理由,再也不用findviewbyid了,也不用butterknife拉,我也就学了个入门,然后就一直用了1年多,还是入门级的,反正不用findviewbyid就是我用它的原因。
    皮特天:@有点健忘 +1 我也是

本文标题:Kotlin生态调查:超过6成的开发者用过Kotlin

本文链接:https://www.haomeiwen.com/subject/hmoevftx.html