Kotlin取代Java?no,但是在加速掠夺Java开发市场

2019-05-1021:19:31后端程序开发Comments2,126 views字数 2485阅读模式

除了单纯与Java的较量,我们也看到了国内很多互联网公司在Kotlin方面的实践(比如,美团《Kotlin代码检查在美团的探索与实践》),除了媒体一贯喜欢的炒作造势,调研数据似乎更足以说清楚目前Kotlin的地位以及与Java编程语言的关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

Kotlin取代Java?no,但是在加速掠夺Java开发市场
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

  五家调研机构出具报告:Kotlin的快速增长是否在以Java为代价?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

移动应用程序开发工具和平台提供商Realm在报告中指出,截至2017年5月谷歌官宣之后,Kotlin的采用率从版本时的0%增长到同年9月,Kotlin的使用率已增加至,而Java则在同一时间从下滑至。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

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

同时,根据对搜索引擎结果的分析,TIOBE在2018年6月最受欢迎的100种编程语言列表中,Kotlin排在第49位。TIOBE常务董事Paul Jansen表示,通常编程语言的采纳曲线是一个比较缓慢的过程,但Kotlin的被采纳速度相当快。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

在基于谷歌搜索引擎数据调研的PYPL榜单中,Kotlin排在了第18位,Java排名第2。有趣的是,在2017年6月至2018年6月期间,Kotlin的流行度增加了,而Java则下降了相同的数量。具体来说,该清单显示,Kotlin在2018年6月的市场份额为,而Java为。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

最近,专门为开发者提供工具和云基础设施的新兴公司Pusher公布了对2,744名开发人员的调查结果,其中60%的开发者在使用Kotlin研发工作和个人项目。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

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

Kotlin取代Java?no,但是在加速掠夺Java开发市场
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

Kotlin新版本发布,我们如何客观评价这门编程语言?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

Android Studio可支持提供更稳定的开发人员体验,使Kotlin具有超越其他语言的独特优势。由于Android Studio直接提供Kotlin语言,因此启动Kotlin项目只需点击即可,不需要使用任何插件。此外,调试Kotlin代码与调试Java代码所耗时间相同。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

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

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

Kotlin应用程序的性能与Java相当,但Kotlin构件与Java所花费的时间不同,具体取决于所执行的构件类型。例如,单纯的Kotlin构件可能比Java花费更长时间,而增量Kotlin构件实际上可能更快。但是,构建时间的差异并不足以影响Kotlin的使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

此外,开发人员也喜欢Kotlin的简洁语法,因为它减少了出错的可能性。开发人员可以用更少的代码完成相同的事情,大大降低了代码出错率,因此它更有可能降低维护代码的成本,但这只是小改进,与苹果公司对Swift的做法类似。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

Kotlin的null安全性也很有吸引力,软件分析公司OverOps发现,在10亿个Java记录错误中,97%的错误是由唯一性引起的,其中最常见的是NullPointerException错误,经过对1,000个应用程序的研究证实,这些错误影响了70%的生产环境。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/12043.html

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

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

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

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

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/12043.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定