2017年的 Google IO,對于廣大 Android 開發(fā)者而言最大的驚喜莫過于 Kotlin 橫空出世,作為Android開發(fā)的第一語言。但 Kotlin 真的是空降嗎?到底是何許人也呢告喊?不妨一起來看看。
Kotlin 簡歷
出生
提到一門語言嫁审,自然會問來自于哪里狗准?那么 ?Kotlin
一定沒有讓你你失望克锣,出自著名的 JetBrains
,一個搞IDE的公司腔长,著名的 IntelliJ IDEA
就是他們開發(fā)的袭祟。每天搞IDE的公司,開發(fā)出來的語言捞附,不用想都覺得他們比其他任何人應(yīng)該都更加了解巾乳,如何高效的編碼減少成本。2011年發(fā)行第一個版本∧裾伲現(xiàn)在最新版本已經(jīng)到了 Kotlin 1.1.3
胆绊。
?Kotlin
這個單詞,據(jù)說來源自圣彼得堡附近的一個小島(Kotlin Island)欧募,所以 ?Kotlin
官網(wǎng)的背景就是一個小島燈塔压状。(當(dāng)然現(xiàn)在火起來之后,一點也不孤獨跟继,更像是照亮大家前行)
家族
?Kotlin
一種基于 JVM
的靜態(tài)類型編程語言种冬,所以它是在 JVM
家族中,自然也擁抱了開源舔糖。
在這里我不是想去?夸贊 JetBrains
娱两,但不得不說他們真的很機智的選擇了 JVM
,這樣可以規(guī)避掉太多問題金吗,畢竟 Java
已經(jīng)足夠強大穩(wěn)定了那么多年十兢。
Kotlin 一個頗受爭議的語言
說它頗受爭議,并不是說它有什么問題摇庙,而是已經(jīng)有了那么多基于 JVM
語言旱物,別的不說就說近在身邊的 Java
,一直在熱門語言前三跟匆。為什么 JetBrains
會推出 Kotlin
這門“新語言”呢异袄?
之所以是加引號的新語言,因為如果你已經(jīng)接觸過其他類似的語言玛臂,就會覺得語法其實一點也不新烤蜕,比如 C#
,Swift
等。這也是在15年的時候迹冤,小組里面我一直抗拒的原因讽营。
- 基于玩爛的JVM?
?Kotlin
基于 JVM
泡徙,所以很多人會拿去跟 Java
對比橱鹏,?這也是被吐槽最厲害的原因,但 ?Kotlin
并不是另起爐灶,而是在 Java
基礎(chǔ)上進行擴展莉兰,所以官網(wǎng)也寫了一句大大的字:100% interoperable with Java? and Android?
挑围。
- 玩爛的語法糖?
真的糖荒,親身感受杉辙,?Kotlin
增加了很多語法糖,使得面向函數(shù)式編程不再是空談捶朵,極大的縮短了我們開發(fā)周期蜘矢。但很多人會說這不是封裝了下,加了點語法糖嗎综看?有什么好玩的品腹? 但既然能提供?我們開發(fā)效率,為什么要拒絕呢红碑?我們寫了那么多插件舞吭,寫了?那么多工具類,不就是為了不做?重復(fù)性的工作嗎句喷?
簡單的舉個例子把一個數(shù)組里面的元素轉(zhuǎn)換成另外一個新的數(shù)組:
val a = [....]
val b = a.map{B(it)}
Java
的時代镣典,我們也許只能老老實實的 for
循環(huán)了吧:
List a = [...];
ArrayList b....
for(..){
b.add(new B(.));
}
這里就不做過多展開了的,后續(xù)我會?深入的跟大家介紹的唾琼。
- ?穩(wěn)定性靠譜嗎?會不會像 Swift 那樣要學(xué)很多個版本的 Swift 呢澎剥?
我之所以當(dāng)時抗拒這門原因锡溯,最大的陰影其實來自于 Swift
, 每次更新之后我都想在打開 Xcode
,因為受不了滿屏的報錯哑姚,無法編譯祭饭。但用過兩年 ?Kotlin
之后,我可以很負(fù)責(zé)人的說叙量,很?靠譜倡蝙,這一點學(xué)習(xí)了 Java
向下兼容的優(yōu)良傳統(tǒng),給 ?Kotlin
點贊绞佩。每個新版幾乎都只是在改個版本號寺鸥,加點新功能或者是bug修復(fù)。
Kotlin 的未來
?開源就是前進的動力品山,越是頗受爭議胆建,越是后勁十足,加上 Google
已經(jīng)將 ?Kotlin
列為Android開發(fā)的第一語言肘交,相信發(fā)展速度會更快笆载,更多人會加入到 ?Kotlin
大家庭里。