為什麼選擇Kotlin?

編程語言 Kotlin Java Google 黑客日 2017-05-23

為什麼選擇Kotlin?

這兩天的Kotlin的新聞很多,因為Google的力推,Kotlin迅速成為JAVA圈的新貴。參考:Kotlin被Google官宣了,還不看看什麼是Kotlin

下面我們簡單探討一下為什麼有些人喜歡Kotlin超過Java。

簡單的說,Kotlin的很多特性使得它比Java更容易寫出簡潔易懂的代碼,但不會犧牲性能或安全性。

Kotlin編譯為字節碼,所以它可以和Java一樣執行。它具有與Java相同的編譯時檢查(以及其他的,比如內置的空值檢查)。最重要的是,Kotlin的語言特性和標準庫函數能夠寫出簡潔有效的代碼

為什麼選擇Kotlin?

為什麼簡潔

簡潔是程序員生產力的關鍵因素。

最早有彙編。每行代碼都給了你,但是整個程序要做什麼的說明卻很少。這使得讀寫代碼都很困難,因為你必須在頭腦中一次性記住很多代碼。

更高級的語言使我們能夠將更多的想法放在每一行代碼中。例如,在一行代碼裡面實現對列表排序在大多數現代語言來說都是小事情。當每行代碼表達能力更大的時候,編寫更大的程序也會更容易。

不過,儘管如此,我們並不是要把儘可能多的想法包含在每行代碼中。但如果代碼太簡單,那麼它也變得很難理解。其實需要一個平衡。正則表達式是這個問題的典型例子。很強大,很簡潔,很難懂。

當比較Kotlin和Java時,應該說Kotlin比Java更簡潔。很重要的一點是:Kotlin不為了實現簡潔而犧牲可理解性。

一個簡潔性的例子

在Java中,一個不可變的Value Class(值對象)包括實現構造函數,getter,hashCode(),equals()和toString()。你可能還希望有Builder和Mutator

直接略過JAVA代碼,來看看在Kotlin中使用數據類(data class)來實現所有這些多麼容易:

// 構造器,getters,hashCode(),equals()和toString()
data class MonthYear(val month:Int,val year:Int)
//命名變量替代builders 
val now = MonthYear(month = 5,year =2017 )
//通過copy()來改變值
val nextMonth = now.copy(month = 6)

數據類(data class)顯然比Java的值類(value class)更簡潔。同時,他們也更容易理解:從上面的示例中,你已經瞭解到了有關數據類的知識了。

表達同樣的意思,Kotlin代碼更簡潔和更容易理解 。Kotlin裡面有很多這種能幫助程序編寫更好代碼的功能和函數。這就是Kotlin超越Java的地方。

為什麼選擇Kotlin?

Android的紅利

對Android開發人員,還有一個重要的原因: Kotlin可以獨立於操作系統更新。

新的Java特性(如流API)有助於縮小Java和Kotlin之間的差距。由於Java特性與Android操作系統相關,因此經常會錯過新的語言特性和標準庫API。相比之下,你可以在Kotlin發佈的時刻開始使用任何新特性。

為什麼選擇Kotlin?

生態系統支持

如果沒有工具和支持,一個再好的語言都變得一文不值。因此,Kotlin的另一個重要方面是其良好的開發環境。

它是由JetBrains開發的,該公司以製作優秀的開發者工具(IntelliJ IDEA,Webstorm等)而聞名。所以他們能確保Kotlin擁有你所需要的所有工具。

而現在,Kotlin正式由Google為Android提供支持。這個大腿,我就問,還有誰?!

入門操作

如果你想立即動手編碼,暫時不關注語言的更多細節,推薦下面這些入門資料:

  • Kotlin Koans(try.kotlinlang.org) - 一系列簡單的編碼練習,演示Kotlin的基本功能。

  • adventofcode.com - 一個有趣的編碼拼圖系列,非常適合學習任何新的語言。

  • 在你的Java代碼中開始使用Kotlin。Kotlin和Java是可互操作的,所以很容易在您的代碼庫的一小部分上進行Kotlin的試用。

相關推薦

推薦中...