ITPub博客

五家调研机构出具报告:Kotlin的快速增长是否皆出自对Java市场的分割?

翻译 作者:赵钰莹 时间:2018-07-11 16:55:27 0 删除 编辑

转到2018年,Kotlin的热度似乎不及当初被谷歌官宣时那么高。除了单纯与Java的较量,我们也看到了国内很多互联网公司在Kotlin方面的实践(比如,美团《Kotlin代码检查在美团的探索与实践》),除了媒体一贯喜欢的炒作造势,调研数据似乎更足以说清楚目前Kotlin的地位以及与Java编程语言的关系。



五家调研机构出具报告:Kotlin的快速增长是否在以Java为代价?


移动应用程序开发工具和平台提供商Realm在报告中指出,截至2017年5月谷歌官宣之后,Kotlin的采用率从1.0版本时的0%增长到4.28%;同年9月,Kotlin的使用率已增加至7.54%,而Java则在同一时间从50.66%下滑至46.23%。


专注软件开发者的行业分析公司Redmonk也报道了Kotlin的强劲增长。报告显示,到2017年第三季度,Kotlin在Redmonk的100强语言列表中从第65位升至第46位。到2018年1月,Kotlin已经跃升至第27位,成为Swift之后发展最快的语言。要知道,Redmonk只统计同时出现在Github和StackOverflow且都有一定变化趋势可寻的编程语言。


同时,根据对搜索引擎结果的分析,TIOBE在2018年6月最受欢迎的100种编程语言列表中,Kotlin排在第49位。TIOBE常务董事Paul Jansen表示,通常编程语言的采纳曲线是一个比较缓慢的过程,但Kotlin的被采纳速度相当快。


在基于谷歌搜索引擎数据调研的PYPL榜单中,Kotlin排在了第18位,Java排名第2。有趣的是,在2017年6月至2018年6月期间,Kotlin的流行度增加了0.6%,而Java则下降了相同的数量。具体来说,该清单显示,Kotlin在2018年6月的市场份额为0.93%,而Java为22.45%。


最近,专门为开发者提供工具和云基础设施的新兴公司Pusher公布了对2,744名开发人员的调查结果,其中60%的开发者在使用Kotlin研发工作和个人项目。


尽管,所有迹象似乎都表明Kotlin的快速增长是以消耗Java为代价,但Gartner Research副总裁Mark Driver表示,Kotlin开发人员的数量其实非常少。在这个时间节点,我们并看不到Kotlin任何一项指标有超过Java的可能,所有数据都在合理范围内。



Kotlin新版本发布,我们如何客观评价这门编程语言?


Android Studio可支持提供更稳定的开发人员体验,使Kotlin具有超越其他语言的独特优势。由于Android Studio直接提供Kotlin语言,因此启动Kotlin项目只需点击即可,不需要使用任何插件。此外,调试Kotlin代码与调试Java代码所耗时间相同。


Kotlin最适合的使用人群就是不会用Java的Android开发人员,听起来似乎很矛盾,但确实有部分人群在进入Android时并不被预先要求可熟练掌握Java,他们也可能是一个iOS开发者,主要掌握Objective-C或Swift语言,临时被要求编写Android版本,毕竟开箱即用的Kotlin很方便。


对Java开发者而言,Kotlin可以与Java互操作,应用团队可以按照自己的进度迁移,而不需要重写整个应用程序。互操作性使Kotlin代码能够转换为Java代码,反之亦然,也可以在同一个应用程序中组合Kotlin和Java代码。但是,在进行转换之前,开发人员需要阅读简短的互操作指南,从长远来看这将节省时间。整个过程不存在不兼容的风险,因为是在JVM上运行。


Kotlin应用程序的性能与Java相当,但Kotlin构件与Java所花费的时间不同,具体取决于所执行的构件类型。例如,单纯的Kotlin构件可能比Java花费更长时间,而增量Kotlin构件实际上可能更快。但是,构建时间的差异并不足以影响Kotlin的使用。


此外,开发人员也喜欢Kotlin的简洁语法,因为它减少了出错的可能性。开发人员可以用更少的代码完成相同的事情,大大降低了代码出错率,因此它更有可能降低维护代码的成本,但这只是小改进,与苹果公司对Swift的做法类似。


Kotlin的null安全性也很有吸引力,软件分析公司OverOps发现,在10亿个Java记录错误中,97%的错误是由唯一性引起的,其中最常见的是NullPointerException错误,经过对1,000个应用程序的研究证实,这些错误影响了70%的生产环境。


在2018年的Google I / O活动中,谷歌发布了Android Jetpack,这是最新一代的Android组件。Jetpack提供向后兼容性和即时更新到更大组件集的能力,因此开发人员可以更快,更便宜地构建更高质量的应用程序,它还负责管理后台任务、导航和生命周期。


Android Jetpack中包含Android KTX,这是Kotlin的特有组件,旨在改善开发人员体验。 谷歌还提高了Android Runtime(ART)性能,因此Kotlin应用可以更快运行。代码片段已添加到官方文档中,Google发布了Kotlin版本的API参考文档。该公司还在Udacity上推出了Kotlin Bootcamp,它现在Google Developers Expert Program中拥有Kotlin专业化。


与此同时,语言本身也在不断发展。Kotlin 1.2是当前最新版本,它支持JVM和JavaScript之间的代码重用,因此开发人员只需要编写一次应用程序业务逻辑,便可在后端、浏览器前端和Android移动应用程序中重复使用。V1.2的编译速度比v1.1快25%。Kotlin 1.1允许开发人员将Kotlin代码编译为在浏览器中运行的Javascript,次要版本包括对Gradle构建缓存(v1.2.2)支持、错误修复、JUnit 5支持等。


即便Kotlin相比Java有很多好处,但并不能直接判定为其本身具有多大优势,因为它是在总结了Java多年发展经验的基础上开发出来的,如果今天后开发出来的是Java同样可以拥有更加简洁的编码流程以及更优的性能。如果说Kotlin会取代Java一定是危言耸听,但Kotlin确实在分割一小部分Java市场。

请登录后发表评论 登录
全部评论

注册时间:2016-03-28

  • 博文量
    122
  • 访问量
    225912