Kotlin 和 Flutter 对于开发者究竟意味着什么?
近些年来,编程语言流行度的变化其实不大,在 TIOBE 编程语言排行榜上,Java、C、C++ 固若金山,也就只有 Python 会攻城略地成为第四。在这 TOP3 之中,Java 以其非常优秀的普适性,可以用于前后端开发,再加上非常成熟的 JVM 虚拟机以及整个 Java 生态,让 Java 这个老大哥常年雄踞 TOP1,在 CSDN 的 Java 相关的文章之中,常有用户留言调侃“Java:你们随便争,反正我 Java 是第一”也可窥见一二。
而从两年前 Google 正式宣布 Kotlin 成为 Android 官方支持的语言开始,对于“Kotlin 即将取代 Java”的讨论便甚嚣尘上从未停歇。彼时,Kotlin 这个诞生于 2011 年的小伙子让已经使用了 Java 多年的 Android 开发者们有了点不可言说的滋味。同时,在过去的数年之间,伴随着 Oracle 与 Google 纷争不止,业界“Oracle 要玩死 Java”之声亦是不绝于耳。
Java 8 更新,Oracle 将“删除”按钮设置成了高亮
2017 年,面对着 Kotlin 这个 Android 开发新贵,Realm 直接给出了一个预测,就是“到 2018 年底,在 Android 开发领域,Kotlin 将超越 Java,成为开发 Android 应用的第一语言”。
如今,时间上虽然稍晚了几个月,但这份预测却成为了现实。
那么,当今天 Google I/O 大会上,Kotlin 取代 Java 成为 Android App 开发的首选语言之时,对于我们移动开发者而言,究竟意味着什么?同时,当 Flutter 带着一统 App、Web、桌面及嵌入式开发之势而来之时,移动开发者该怎么办?对此,CSDN 特别邀请在国内 Android 圈子中较早研究 Kotlin 的段建华(@技术小黑屋)来解答目前开发者们最为关心的问题:
为什么 Google 会越过 Java 让 Kotlin First?
采用 Kotlin 与 Oracle 版权有关系么?
其实可能没有关系。
这场起自 2010 年的诉讼案,几经反转,曾一度惊动美国最高法院,从最初的专利和版权侵权到最后聚焦在 Google 是否合理使用了 Java 的 API。但是 Oracle 自始至终都不是在控告 Google 允许开发者使用 Java 来开发应用程序。
而真正让 Kotlin 被 Google 采用的原因其实是 Kotlin 自身的优点,譬如安全、简洁、实用,以及与 Java 可交互良好等特点。除此之外,Kotlin 在相对很早的时候就在国外的知名公司用来开发 Android App,有着不错的氛围和环境,这也为其裂变发展贡献了不小的功劳。
Kotlin First 对于 Android 开发者究竟意味着什么?
首先对于 Google 来说,应该意味着更进一步地放弃 Java。这会导致更多的 Android 库出现对应的 Kotlin 实现,甚至可能是只有 Kotlin 版本,Android Studio IDE 也会出现更多的倾向于 Kotlin 的特性和支持等。结果可能会是 App 开发者进一步向 Kotlin 靠拢,而 Java 则相应地被进一步孤立。
其次,对于 Android 开发者来说,当本届 I/O 大会 Google 宣布 Kotlin 作为 Android 首选开发语言那一刻,再次证明我们使用 Kotlin 是正确的。内心都是无比 Exciting,充盈着一种满满的被认可感,而这势必会让更多的 Android 开发者投向 Kotlin 的怀抱。
同时,至关重要的是体现在业务上,对于管理者来说,会有更大的信心和更强的动力去推动团队完成从 Java 到 Kotlin 的转变。
事实上,当前在 Android 研发的招聘中,大部分招聘 JD 都会包含希望求职者具备 Kotlin 编码能力的描述,而面试者的简历也会提到自己学习或者项目应用 Kotlin 等内容。
并且,目前笔者从各种渠道了解到,大部分的公司都已经使用 Kotlin 作为首选开发语言,而且积极效果反馈明显。
看完移动端,我们再看服务端,不同于 Java 在后端的良好表现。尽管就 Kotlin 来说,除了前文所述的优点之外,协程是一大吸引,但 Kotlin 在中后台开发人员中的流行度可能并不会像在 Android 上这么顺利,究其原因,主要还是:
- 缺乏官方权威或大公司背书来提振威望;
- 相关的框架需要进一步丰富;