Kotlin取代Java只是時間問題

社區大神們對Kotlin的觀點:

  • 只是語法糖而已
  • 這句話倒沒有錯,然而作為一個工程實踐導向的語言,并非為了證明某項理論或者政治正確,為了工程中更好用是第一要素,泛泛而談,各位寫的各種方便使用的小工具、inline函數等,不也是語法糖么?
  • 開發中遇到各種坑
  • 這個可以理解,但是其根本上 Java 100% 兼容(雖然不在同一個文件),這就意味著遇到坑不會出現像其他語言一樣不可挽回的,只能很丑陋的做 trick 的情況
  • 支持Kotlin的原因是和Oracle撕逼
  • 這個...我無力吐槽,換句話說,我們關注的應該只是語言本身的特性和優缺點,背后的邏輯我想我們可以不必過于關注
  • Groovy 、Template Plugin 可以實現 Kotlin 的各種功能
  • 這句話也沒錯,就好比 C++ 認為 Java 的所有功能自己都能實現,而且性能甩 Java 十條街,但是這真的有意義么?一個好的語言應該是讓大家更樂于遷移,更樂于接受,我想 Kotlin 的微信指數暴增就說明了這一點,而相比起來,Go 的生態要從零構建,不在一個起點

正文:

  1. 趕時髦
    最近 Kotlin 的討論,在我的知乎時間線上成爆發趨勢,大多數情況下我并不是一個趕時髦的人,然而 Kotlin 的火熱超出想象,甚至微信指數一度超越 Java,好奇心驅使我一定要嘗試了一下。在之前多年的職業生涯中,我編寫了大量的 Java 代碼,對 Java 語法的啰嗦是有深刻體會的,可以說要不是因為大量的項目維持在 Java 平臺,肯定早就切換到其他語言了(比如 Python 現在是我的首選語言)。對于其他的一些 JVM 語言其實也都拿來在工程上時間過,比如 Scala(鑒于其巨難用的 SBT 果斷放棄,不知道近況如何了),也有一些其他的小眾 JVM 語言,我在工程上用了之后根本沒有他們說的那種酷炫的效果,根本就是假的,都是特效。對于 Kotlin,我抱著試一試的態度試學了兩個療程,經過一周左右的熟悉和改造(特意找了一個較為復雜的舊全文檢索項目進行了改造,代碼量縮減為 1/3),和大部分人的謹慎態度不一樣,我認為 Kotlin 有巨大的潛力全面替代 Java。
  • 體驗
    以下這幾點是我在實踐中最喜歡的:

    • 代碼的大幅度精簡
    • 100% 兼容 Java 代碼
    • 函數式編程
    • 各種語法糖
  • 感想
    我認為 Kotlin 有望成為替代 Java 成為新的工業語言(當然對于新人來說入門門檻是提高了一些),目前 Google 宣布 Kotlin 成為Android 一級語言,我相信并非由于部分人說的和 Oracle 的專利之爭,而是實實在在期望全面提升 Android 的開發效率和語言層面的特性支持(Java 8 才支持 stream 操作,而且語法依然很難看,可見當權派多么固執)。Google 和 Jetbrains 的深度合作也讓人浮想聯翩,下一步收購 Jetbrains,大力推廣 Kotlin 語言也不是不可能(畢竟據說 Swift 在國外已經是主流了,咱碼農燈塔也不能老守著古董級的 Java 不放),而 Jetbrains 推出的各種開發神器之成功也是有目共睹的。100% 兼容 Java 也并非噱頭,而是實打實的支持,甚至 IDE 可以支持直接將 Java 代碼轉換成 Kotlin 代碼(目前我自動轉換了很多代碼,僅遇到一例位操作轉換失敗)。總結起來,切換成本幾乎沒有(絕大多數情況可以依賴 Jetbrains 的神器自動轉換 Java 代碼),同時有巨頭親爹,未來的光明前途不可限量。

  • 學習和遷移
    官方網站的文檔和例子非常詳實,一個成熟的 Java 開發者應該很容易快速按照官網的例子學會。如果您是編程初學者并且英文不是很好,不建議在現在這個階段將這門語言作為第一語言(中文社區資源還不是特別豐富)。對了,Spring 5 專門為支持 Kotlin 做了大量的工作,就問你怕不怕:

預祝大家早日脫離 Java 苦海,擁抱 Kotlin,節省 50% 工作時間,來場說走就走的旅行。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容