前几天,Kotlin 官方在旧金山举办了第一届的 KotlinConf 大会,大会上公布了 Kotlin 相关的一些进展,其中,宣布了一条重大消息:Kotlin 支持 iOS 和 Web 开发。
一时间,各大 IT 媒体的头条类似「重磅」、「重大消息」等均被 Kotlin 占领,再加上 Kotlin 很早就支持 Android,很多程序员们也大呼,学完 Kotlin 可以直接全栈了,但是,我不得要给这部分人泼盆冷水。
从 JetBrains 的角度,可以理解他们的策略,他们当然希望 Kotlin 可以跨平台发展,这样可以覆盖的面更广,一旦成功之后,将会极大的提升开发效率,减少企业的开发成本,也会让越来越多的领域接受使用 Kotlin。
但是这条路很难走,超级难。要知道以跨平台著称的 Java 直到现在,也没法完全的跨平台,Java 的跨平台也只限于 PC 端,无论你是 Windows、Mac 还是 Linux 都可以直接运行 Java 程序,现在虽然 Java 也可以用来开发 Android,但是涉及到移动端,这不是真正的跨平台,Android 开发只是使用了 Java 语言而已,其内在的底层架构和开发方式跟传统的 Java 程序开发差异很大。
移动互联网时代,其实很多编程语言都在探索跨平台开发,可能有些人不知道,Ruby 领域有个产品叫做 RubyMotion,这个产品可以让你使用 Ruby 语言开发原生 Android、iOS 以及 OSX 应用,而且得到了 Ruby 创始人 Matz 的支持,但是 RubyMotion 自 2012 年创立以来,至今 5 年时间,没有多少人了解使用这款产品,甚至如果我不提,我估计不少人甚至听都没听过,现如今使用 Ruby 编程语言的大部分开发者还都是用 Rails 来进行 Web 开发,因为 Rails 这个框架开发 Web 最大的优势是用你喜欢的 Ruby 语言可以很快速的开发 Web 网站。
前两年,Facebook 推出了 React Native,旨在解决移动端跨平台的问题,一经推出,引起无数开发者的关注与支持,然而即使这种「富二代」的跨平台框架,从项目开源到现在至今也有 2 年多时间,而背后 Facebook 花费的研究时间更是远超 2 年,目前 React Native 依然还不成熟,还存在各种各样的问题,现今的 App 开发主流仍然是原生开发,甚至很长一段时间依然会是这样。
Kotlin 的跨平台梦是挺好的,做成了确实牛逼,但是往往理想终究抵不住现实,一旦 Kotlin 定位跨平台策略,那么所涉及的技术复杂度、工作重心都会发生变化,更何况,想要跨平台到 iOS,是很难得到苹果的支持的,要知道苹果有个「亲儿子」Swift,在对待 Kotlin 的态度上是断不会像 Google 那样的开放,更何况 Swift 也一波三折,连 Swift 创始人都远走他乡,足以说明,一门新的语言让开发者拥抱有多么困难。
所以,从我个人的角度,因为 Google 与 Oracle Java 的版权问题,Google 对 Kotlin 的态度非常支持,在今年的 Google IO 2017 大会上明确宣布 Kotlin 成为 Android 开发的官方语言,最新发布的 Android Studio 3.0 更是内置了对 Kotlin 的支持,Google 的支持加上 Kotlin 本身语法的优势,我很看好 Kotlin 在 Android 领域的发展,我认为 Kotlin 官方应该抓住机会,先从 Android 领域着手,把主要精力放在 Android 开发上,争取让大部分 Android 开发者接受、使用 Kotlin,之后再慢慢的扩散到其他领域,如果一开始精力就放在跨平台上,结果可能会适得其反。
我之前写过一些未来很有潜力的编程语言,很多读者问我怎么没提到 Kotlin?虽然 Kotlin 语言可以做很多事,比如写脚本、开发 Android、与 js 交互等,但我个人觉得 Kotlin 目前的机会还在 Android 上,Google 的支持以及大量的 Android 开发者的基数,如果 Kotlin 能抓住机会,抓住众多 Android 开发者的用户,那么才算是有潜力,在其他领域的应用,目前来看很难让别的开发者接受并使用。
当然了,Kotlin 官方也可能只是拿跨平台造个势而已,但是无论是造势还是真的下注在跨平台,这都是一个漫长而艰难的道路,如果是出于兴趣,想多了解下 Kotlin,那么是支持的,而那些抱着学好 Kotlin 就可以变身全栈工程师的开发者们,建议还是洗洗睡吧。
PS:想要学习 Kotlin 的可以在公众号「googdev」回复关键字「kotlin」 获取相关学习资料,觉得写的不错可以点赞、帮转下,谢谢。