隨著Kotlin的快速崛起,我們注意到越來(lái)越多的開(kāi)發(fā)者開(kāi)始關(guān)注這個(gè)新興的語(yǔ)言。Kotlin是一個(gè)基于JVM的新的編程語(yǔ)言,由JetBrains開(kāi)發(fā)。那么Kotlin語(yǔ)言有哪些優(yōu)缺點(diǎn)呢?粵嵌Android開(kāi)發(fā)給大家簡(jiǎn)單介紹一下。
Kotlin語(yǔ)言說(shuō)來(lái)也不是很新:是在2011年推出的,但火起來(lái)大家都知道是因?yàn)榍皫讉€(gè)月谷歌在I/O 2017上宣布它成為Android官方支持開(kāi)發(fā)語(yǔ)言。自此之后,現(xiàn)在,Kotlin開(kāi)始出現(xiàn)在各個(gè)語(yǔ)言榜單之上,而且由于JetBrains和Google的企業(yè)支持基礎(chǔ),正迅速得到應(yīng)用。
據(jù)Kotlin官方網(wǎng)站的信息,包括Atlassian、Pivotal、Uber、Pinterest、Evernote等知名技術(shù)公司正在積極地將Kotlin用于Android應(yīng)用開(kāi)發(fā)。與已經(jīng)發(fā)布22年的Java相比,Kotlin有一些明顯的改進(jìn):
提高團(tuán)隊(duì)的生產(chǎn)力?;贘ava的Kotlin消除了其前身的過(guò)時(shí)和繁瑣。語(yǔ)言緊湊、清晰、高效,語(yǔ)法簡(jiǎn)潔直觀。因此,Kotlin可以顯著提高團(tuán)隊(duì)效率:編寫(xiě)和部署新代碼所需的時(shí)間較少,這也有助于提高代碼可維護(hù)性。據(jù)Keepsafe的Android開(kāi)發(fā)人員A. J. Alt所表示,將“App Lock”應(yīng)用從Java轉(zhuǎn)換為Kotlin,總代碼量減少了30%。
與現(xiàn)有代碼兼容。Kotlin的優(yōu)點(diǎn)之一是其的Java互操作性。該語(yǔ)言適用于Java本身,及所有相關(guān)工具和框架,提供了豐富的生態(tài)系統(tǒng)。這也使得可以選擇逐漸遷移到Kotlin,或者在同一個(gè)項(xiàng)目中同時(shí)使用這兩種語(yǔ)言。
可維護(hù)性。由JetBrains構(gòu)建并支持,Kotlin為許多IDE(包括 Android Studio)提供了良好的支持。
更少的錯(cuò)誤。通過(guò)更緊湊和更清晰的代碼庫(kù),Kotlin允許在生產(chǎn)中減少錯(cuò)誤,生成更穩(wěn)定的代碼。編譯器在編譯時(shí)檢測(cè)所有可能的錯(cuò)誤,而不是運(yùn)行時(shí)。這使得Kotlin成為比Java更安全的替代品。
可靠。不同于Swift,Kotlin是一種更成熟的語(yǔ)言。在2011年推出后,在終的1.0版本發(fā)布之前,經(jīng)歷了多個(gè)Alfa和Beta階段,版本也與以前的版本反向兼容。
然而,在生產(chǎn)過(guò)程中使用Kotlin之前,仍需要考慮幾個(gè)“陷阱”:Kotlin雖然非常接近Java,但在許多方面依然不同。因此,想要切換語(yǔ)言的開(kāi)發(fā)者仍然面臨著一定的學(xué)習(xí)曲線。因此,如果你決定將Android開(kāi)發(fā)團(tuán)隊(duì)遷移到Kotlin,則需要對(duì)培訓(xùn)和時(shí)間進(jìn)行額外的投資。一些使用過(guò)Kotlin的開(kāi)發(fā)者反映編譯速度較慢,這是Kotlin的主要缺點(diǎn)之一。
不過(guò),在不同的測(cè)試環(huán)境下結(jié)果有所不同:在某些情況下,Kotlin以編譯速度擊敗Java,但有時(shí)它又比Java慢得多。雖然Kotlin正在迅速成長(zhǎng)為Android開(kāi)發(fā)的首要語(yǔ)言,但目前仍然只有一個(gè)小型的開(kāi)發(fā)者社區(qū)。這意味著用于學(xué)習(xí)該語(yǔ)言的資源有限,并且找出在應(yīng)用開(kāi)發(fā)過(guò)程中可能出現(xiàn)的問(wèn)題的答案會(huì)比較困難。
由于Kotlin對(duì)大多數(shù)開(kāi)發(fā)者來(lái)說(shuō)仍然比較新,可能很難找到有經(jīng)驗(yàn)的專業(yè)人士。雖然Kotlin在某些方面顯然優(yōu)于Java,但仍遠(yuǎn)未完美。如果你想嘗試Kotlin,建議雇用一個(gè)專門(mén)的開(kāi)發(fā)者,或讓你的部分團(tuán)隊(duì)成員去嘗試這種語(yǔ)言。即使它不會(huì)對(duì)你的應(yīng)用的性能或其 UI 帶來(lái)實(shí)際的結(jié)果,但也不會(huì)對(duì)其造成任何傷害。
總之,只要你想學(xué)Android開(kāi)發(fā),也可以與粵嵌一起共同推進(jìn)Android的發(fā)展,在更多的領(lǐng)域發(fā)揮作用,為自己創(chuàng)造一片新天地。