加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

大规模采用 Kotlin 替代 Java?我们应该知道这些利弊

发布时间:2019-08-29 08:44:37 所属栏目:建站 来源:小小CTO
导读:当大规模采用一门新语言时,有许多不同的因素需要考虑,因为事情可能会发生巨大的变化。对于许多人来说,选择一门语言可以说是取决于个人偏好,但在 LinkedIn,我们有一个基础团队,负责评估这些基本技术决策的影响。最近,我们经历了评估 Android 开发语

正如我们关注开发人员的生产力一样,质量也是我们要考虑的另一个重要因素。编写测试对于确保代码质量至关重要。我们花了一些时间来理解测试生态系统的局限性及其与其他语言的兼容性。这不仅包括测试框架,还包括代码覆盖率分析、CI 管道,最重要的是,在开始编写 Kotlin 测试之前,在不违背测试标准的情况下所要采取的步骤。该分析还包括 Android 中的主要静态分析工具Android Lint ,它现在使用UAST 支持 Java 和 Kotlin 分析及样式检查工具。

行业分析

自从 Kotlin 于 2017 年在谷歌 I/O 大会上宣布成为 Android 开发的一等语言以来,越来越多的工程师开始接受 Kotlin。Stack Overflow 2018 调查显示,Kotlin 是第二受欢迎的编程语言。Kotlin 还被认为是未来语言中增长最快的语言,与 Swift、Go、Haskell 和 Rust 并列第一。据谷歌报道,2017 年,当 Kotlin 被宣布为 Android 开发的第一语言时,Google Play 中 9% 的应用程序已经在使用 Kotlin。一年后,即 2018 年 5 月,谷歌宣布这一数字已增至 35%,同比增长近 6 倍。

我们分析了Google Play 商店中的前 300 个免费应用程序 ,并根据它们的 DEX 文件大小进行了筛选,以了解有多少应用程序在大规模使用 Kotlin。虽然这个数字包含了所有第三方库的代码,但它能很好地反映应用程序代码的大小。作为一个初步步骤,我们排除了 APK 中没有专门 Kotlin 文件夹的应用程序,该文件夹将包含 Kotlin 运行时使用的一些 Kotlin 内置文件。由于代码的混淆,计算 Kotlin 在代码中的百分比非常棘手。但是,我们使用apktool 将所有 DEX 文件转换为 SMALI 代码,并发现了两个不同的线索,它们标识了用 Kotlin 编写的类。对于没有从.source 属性中删除原始文件名的应用程序,我们可以提取扩展名 *.kt。对于其他应用程序,我们寻找 kotlin.Metadata 类。总的来说,我们能够建立一个图表来显示应用程序及其类的数量、代码大小和 Kotlin 百分比。这让我们了解到社区有多成熟,以及我们可以从合作伙伴那里得到多少支持。

起初,大多数库所有者认为,在自己的代码中使用 Kotlin 实现细节是不成熟的,不应该强加给用户。随着 Kotlin 社区变得越来越活跃,这种观点已经开始转变。Square 是许多最受欢迎的 Android 开源库的所有者,它宣布他们的核心Okio 库已经用Kotlin 重写 ,并且他们将在未来的所有版本中使用Kotlin。其他一些库项目已经选择遵循谷歌针对Android KTX 提供的示例,并发布了一个用 Java 编写的基本库,在其中单独的构件中添加了特定于 Kotlin 的扩展点。例如,FasterXML 的 Jackson 项目添加了一个用于序列化和反序列化 Kotlin 类的Kotlin 模块 ,以及 Mockito,该项目正在研究添加一个针对 Kotlin 优化过的 mock 语法 。

全方位考察

除了上面列出的要点,我们还花时间研究了与 LinkedIn 内部工具系统的集成,包括崩溃报告、审查流程和 CI 管道。我们不断与社区和其他公司的开发人员进行沟通,包括谷歌和 JetBrains,不仅要了解他们的方向,还要确保我们的决定与未来的 Android 开发保持一致。人才始终是我们首先要考虑的因素之一;因此,与招聘和培训有关的成本也是我们分析的重要部分。

总的来说,我们从社区听到了各种好处和证词。综合分析,我们能够建立一个路线图,使 LinkedIn 进入下一个使用 Kotlin 的 Android 开发时代,并且相信,我们可以最小化技术风险,已经了解了对招聘和培训的影响,能够保持技术标准,并不断为我们的会员提供价值。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读