Java與Kotlin, 哪個是開發安卓應用的慣用語言?

來源:互聯網
上載者:User

標籤:加速   它的   切換   image   amp   社區   實踐   src   out   

Java是很多開發人員建立安卓應用的慣用語言。但它在 Android 界的領導地位正受到各種新語言的挑戰,Kotlin就是其一。雖然Kotlin最近才開始受到熱捧,但有為數不少的人相信 Kotlin 在不久的將來,會成為Java最大的競爭者,甚至會把 Java 拉下移動開發的王座。下文中,我們對 Java 和 Kotlin 進行詳細對比,以協助您確定哪一種語言最適合於您今後的移動開發項目 。

 

JAVA

當談及 Android 應用開發時,Java 是許多開發人員的最愛 – 主要是由於 Android 本身就是用 Java 編寫的。Java 由 Sun Microsystems(已被 Oracle 收購)所開發,是一種物件導向程式設計語言,在 GitHub 上位居語言活躍度榜單第二位。這說來也並不奇怪 – 它已經存在了 20 多年,而它的流行度似乎只增不減。

 

Java 的優勢

  • 易學易懂;
  • 靈活性 – 您可以在瀏覽器視窗或虛擬機器中運行它。當您重用代碼和更新軟體時,這一特性會顯得很方便;
  • 對於開發跨平台應用來說,是一個不錯的選擇;
  • Android 依賴於 Java — Android SDK 包含許多標準的 Java 庫;
  • Java 擁有一個大型的開源生態系統,部分原因是由於 Google 為 Android 採用了JAVA 虛擬機器(JVM);
  • 在 Gradle 中加速彙編 – 我們在彙編大型項目時都非常感謝它;
  • Java 應用更加緊湊 – 與 Kotlin 相比,Java 應用往往占空間更少(即使是完全類比);一個包含複雜計算流程的 Kotlin 應用在低配置的使用者裝置上運行可能會十分緩慢(如果開發人員缺乏經驗的話);
  • 頂級的開發速度 – Java 具有比 Kotlin 更快的構建過程。
JAVA 的劣勢
  • Java 的一些限制會導致 Android API 的設計出現問題;
  • 作為一種冗長的語言,Java 需要編寫更多的代碼,這帶來了更高的錯誤率和 bug 風險;
  • 與許多其他語言相比,Java 執行速度較慢,並且佔用大量記憶體。
  使用情境

以下是使用 Java 編寫的一些優秀開源應用的樣本:

  • Android-oss(Kickstarter 官方 Android App)
  • NewPipe (為 Android 打造的 Youtube 前端)
  • WordPress Engineering(WordPress 官方 Android App) ?
  KOTLIN

Kotlin 是由來自 JetBrains 公司(代表作:整合式開發環境 IntelliJ IDEA)的開發人員所設計的,它為 Java 添加了一些現代功能,這對移動開發很有協助。Kotlin 是一種基於 JAVA 虛擬機器(JVM)的開源、靜態類型語言,但您也可以將其編譯為 JavaScript 或 Native,以構建可在 iOS 上啟動並執行代碼。您只需要安裝好 Kotlin 外掛程式並讓它配置您的項目就可以啦~

 

如果掌握訣竅的話,學習 Kotlin 其實並沒有想象中那麼難。在 LiveEdu 上有一個點擊率超高的教程 — 如何用 Kotlin 開發類似 Instagram 的安卓 App。主講者 Asitaka 目前在日本一家大型電信公司 KDDI 株式會社擔任系統工程師,擁有多年業界經驗。他擅長使用包括 Java 和 Kotlin 在內的多種語言,因此對於這兩個語言在安卓開發方面的利弊了如指掌。與市面上現有教程不同,這套教程將從業界實戰角度出發,提供一些 Kotlin 的屠龍之技。不妨試試吧!

  KOTLIN 的優勢
  • 在 Android 開發中獲得了很高的流行度,但它也被用於 Spring 5 等後端項目;
  • 從 Java 切換到 Kotlin 非常簡單 – 您只需安裝 Kotlin 外掛程式,將其添加到 Gradle 構建檔案中,然後單擊 “轉換” 就好了;
  • 包含智能擴充功能,協助開發人員構建乾淨的 API;
  • 在其類型系統中設有 null – null 問題是 Java 開發中的一個常見問題,由於 Android 經常使用 null 來表示值不存在,因此 Kotlin 通過將 null 直接設定在類型系統中來解決該問題;
  • 它比 Java 簡潔得多,這意味著代碼寫錯的幾率大大下降了;
  • 與 Java 可互操作 – 您可以在 Kotlin 中編寫新模組,無需擔心它們不能與現有 Java 代碼協同工作;Kotlin 相容所有 Java 庫和架構、JVM,並且可以與 Gradle 或 Maven 構建系統進行整合;
  • 開發人員可以從 Anko 庫 和 Github 上的 2000 多個 Kotlin 項目中汲取靈感;
  • 採用 Kotlin 不需要任何費用(除了學習和練習)。
  KOTLIN 的劣勢
  • 由於 Kotlin 文法簡潔(這既是好處也是挑戰),將整個團隊轉為用 Kotlin 開發時,學習曲線將會非常陡峭;
  • 編譯速度慢於 Java(儘管 Kotlin 在某些情況下被證明可以擊敗 Java);
  • 開發人員社區很小,這意味著學習資源有限,很多問題難以得到解答;看一看 Stackoverflow 你就大概瞭解情況了 – 只有大約 8000 個含有 Kotlin 標籤的問題,但含有 Java 標籤的問題卻高達 137 萬個;
  • 經驗豐富的 Kotlin 開發人員仍然很少見,因此為您的團隊尋找導師可能會很棘手;
  • 與純 Java 項目相比,Android Studio 自動完成和編譯的運行速度往往較慢。
  使用情境

以下是使用 Kotlin 編寫的兩個驚人應用:

  • Basecamp 3 Android app
  • KotlinConf Schedule Application

 

儘管 Kotlin 擁有了許多 Java 不具備的優點,但它仍然存在一些缺陷。當試用 Kotlin 時,請記住,對於那些已經找到適合自己的工具和策略的開發人員來說,切換到新語言並不一定是好事。

  結語

無論你喜歡使用Java還是Kotlin,對於開發人員,在熟練掌握了某種語言的基礎上,學習新的語言,有肋提升個人競爭力。不妨像文中提到的那些開發人員那樣,嘗試用這些語言來開發一些項目。實踐永遠是最好的磨練。

 

Java與Kotlin, 哪個是開發安卓應用的慣用語言?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.