#扫描上方二维码报名成都源创会#
作者:OSC-达尔文
来源:开源中国(oschina2013)
转载请在文中注明来源和作者
Google 在 I/O 2017 上宣布 AndroID 加入了对 Kotlin 编程语言的支持。如今,在所有开源的 AndroID 应用程序中,我们能发现有 12% 都是由 Kotlin 开发。Google 在 2017 年底表示 Kotlin 已经***了超过 17% 的使用 IDE,AndroID Studio 3.0 开发的 AndroID 应用程序。
Kotlin 是一个运行在 Java 虚拟机上的静态类型编程语言,于 2012 年开源,采用 Apache 2.0 许可证。它与 Java 的语法不兼容,但设计成可以与 Java 代码互 *** 作,可复用现有的 Java 类库,并且被认为所需代码量更少,而代码更少通常也意味着 BUG 更少。Google 当时发布的 AndroID Studio 3.0 就添加了 Kotlin 支持,详情你可以看这里:
重磅!AndroID Studio 3.0 正式版支持 Kotlin一年后,法国 ValencIEnnes 大学的计算机科学家 Bruno Gois Mateus 和 Matias Martinez 发表了一篇论文《An Empirical Study on Quality of AndroID Applications written in Kotlin language》,对用 Kotlin 编写的 AndroID 应用程序的质量进行了研究。
论文原文:
https://arxiv.org/pdf/1808.00025.pdf他们在论文中描述了如何从开源应用商店 F-DroID 收集 925 个应用程序,以及如何测量 Kotlin 代码在每个应用中的表现,并将分析代码“异味”(Smells)作为衡量代码质量的指标。
注:“异味”(Smells)是“反模式”(anti-patterns)的另一种说法,“反模式”是一种用于指代不良编码模式的术语。 在 Java 中,The Blob(a.k.a God Objects)代表了一种常被引用的反模式。
通过对这 925 个应用进行分析,发现 109 个应用至少有一个版本是使用 Kotlin 语言写的,其中又有 35% 的应用只使用 Kotlin 语言。在包括 Java 代码和 Kotlin 代码的应用中,较近的版本中 Kotlin 代码比例提高而 Java 代码下降。
然后分析代码质量:
面向对象(OO)的反模式包括:Blob Class(BLOB),Swiss Army Knife(SAK),Long Method(LM)和 Complex Class(CC)。
AndroID 反模式包括:重型广播接收器(Heavy broadcast Receiver,HBR),重型异步传输(Heavy AsyncTask,HAS),重型服务启动(Heavy Service Start,HSS),初始 OnDraw(Init OnDraw,IOD),无内存解析器(No Low Memory Resolver,NLMR)和 UI 重写(UI Overdraw,UIO)。
在面向对象的反模式中,LM,CC 和 BLOB 出现在至少 92% 的 Kotlin 和 Java 应用中,其中 OO “异味”在 Kotlin 应用更为常见。但研究者发现,在这 AndroID“异味”中,Java 比 Kotlin 更容易受到三种“异味”的影响。
研究者还在论文中提到,Kotlin 的采用使得至少 50% 的 AndroID 应用程序的质量提高了。因此认为,Kotlin 的代码质量更高。
另外,这两位研究员也比较了 Objective-C 应用程序和 Swift 应用程序,结果发现 AndroID 应用程序的异常值高于 iOS 应用程序,感兴趣的同学可以看这里:
https://hal.inria.fr/hal-01471294/document 总结以上是内存溢出为你收集整理的Kotlin 普及度增加,代码质量比 Java 更高?全部内容,希望文章能够帮你解决Kotlin 普及度增加,代码质量比 Java 更高?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)