日期:
来源:鸿洋收集编辑:
自 2017 年 Kotlin 被 Google 认证为 Android 开发官方编程语言后,最常提及的一个问题:是否应该学习 Kotlin 进行 Android 开发?相比传统 Java 语言有什么优势?如今答案十分清晰了 —— 这几年,Google 大力发展基于 Kotlin 的 Androidx 库、Jetpack 库、Compose 库,很多新特性都是为 Kotlin 优化的。可以说,不懂 kotlin,今后在 Android 开发领域标准库的发展上将很受阻碍,Android 开发由 Java 转 Kotlin 早已势不可挡。相比起 Java 语言,Kotlin 的优势确实非常明显:第一,极高的生产效率。Kotlin 是一种跨平台的静态类型语言,具有现代简洁的语法,关键特性包括 null 安全性、协程、数据类型、扩展函数等;这让开发者会用得很爽:前期开发效率更高,中期线上问题更少,后期代码更容易维护。而这正是 Java 做不到的。第二,强大的兼容性。Kotlin 可以与 Java 混合编程(说实话,这点影响很大),我们能够以渐进的方式将项目工程从 Java 迁移到 Kotlin,而不必担心是不是要一次性重写很多代码,从而产生新的问题。第三,用 Kotlin 编写代码比 Java 更友好、更快捷。Kotlin 吸收了众多编程语言的精髓,它的语法不像 Java 那么复杂,而且允许开发者在不使用冗余类的情况下定义函数和静态对象,这会让代码更容易阅读和调试。为此,各个大厂的 Android 部门都在积极转型,目前市面上主流的 App 和库,大都是使用 Kotlin 语言开发的,在 Play Store 的前 1000 个应用程序中有 80% 以上使用 Kotlin。随便打开一个招聘网站,看看大厂的 Android 招聘需求,基本都有“要求熟悉 Kotlin”或“熟悉 Kotlin 语言者优先”,而且薪资总体上也略高一筹(相比之下,Java 开发的用人成本在 Kotlin 的招聘方那里是可以接受的,毕竟市面上实在有太多 Java 程序员,可以根据项目需求在招聘中讨价还价)。当然,有的公司目前还是把 Kotlin 当做加分项。但不得不说,同等条件下,会 Kotlin 的候选人胜率更大。Kotlin 是门典型的易学难精的语言:语法简洁,极容易入门,但又拥有许多的新特性,不容易掌;即使掌握了 Kotlin 的语法,想要写出优雅的代码,也不容易,更别提 Kotlin 特性的应用场景、底层实现原理了。当然,有 Java 基础可能会更容易些,但它本身是助力,也是阻力,毕竟两种语言在不变性思维、空安全思维、表达式思维、函数思维、协程思维等撰写代码的思维方式上,都不一样。尤其是 Kotlin 协程,全是一堆新概念:协程、作用域、上下文、launch、async、Channel、Flow、异常处理...让人毫无头绪。当初啃协程时,也是一边研究协程源码、一边在工作中实践,踩着坑磕磕绊绊的学,找到靠谱的资料非常不容易(市面上太多花把势,能实打实讲透、提升学习者能力的少之又少)。看过不少资料,从体系化层面,比较推荐圈里的大佬朱涛,他最近出了个专栏《朱涛 · Kotlin编程第一课》。迫不及待地分享其中一张学习图谱:朱涛有多牛,一会下面详细介绍,但这个专栏,应该是你离顶尖技术人的思维过程最近的一次了,刚上线,看了更新的几篇,非常惊艳,不说教、不枯燥,配合动图展示,零基础也能拿下。一句话概括就是:基础 + 实战 + 源码,手把手带你吃透 Kotlin 语法与协程。整个专栏对比 Kotlin 和 Java 语法的差异,结合案例详解 Kotlin 新特性的使用场景。顺便带你一起来用 Kotlin 写一个简单的 Android App。据说后期还有不定期的加餐,分享 Kotlin 在各个领域的最新实践,进一步扩展你的 Kotlin 知识面。现在仅需 7 折,立省 ¥40,购买后永久有效,推荐给你。