我看 Kotlin

stormzhangV發表於2019-03-03

前幾天,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」 獲取相關學習資料,覺得寫的不錯可以點贊、幫轉下,謝謝。

相關文章