最近看到一則科技新聞, 大致內(nèi)容是google將kotlin語(yǔ)言作為android應(yīng)用開(kāi)發(fā)的一級(jí)語(yǔ)言, 與java并駕齊驅(qū), 這是一個(gè)開(kāi)發(fā)界的大事件大新聞, 連google的親兒子go語(yǔ)言也沒(méi)有這種待遇, 而kotlin貌似名不見(jiàn)經(jīng)傳,之前根本連聽(tīng)都沒(méi)聽(tīng)說(shuō)過(guò)。 這讓我對(duì)kotlin產(chǎn)生了極大的好奇心,這種能讓得到google如此寵幸的語(yǔ)言到底是何方神圣?

 

在網(wǎng)上查了相關(guān)資源后, 對(duì)kotlin有了粗略的了解。 kotlin是一種jvm平臺(tái)語(yǔ)言, kotlin編譯器會(huì)將kotlin代碼轉(zhuǎn)換成jvm字符碼,因此它和java在本質(zhì)上是相同的,都可以在java虛擬機(jī)上運(yùn)行。

 

kotlin非常的年輕, 第一個(gè)版本是在2011年正式發(fā)布的 

 

kotlin是jetbrains公司開(kāi)發(fā)的語(yǔ)言, JB公司馳名世界,生產(chǎn)的IDE雄霸天下, 和宇宙第一的visual studio也沒(méi)有正面沖突, 因此除非是.net系程序員,否則對(duì)這間公司不會(huì)陌生。

 

kotlin有一個(gè)非??蓯?ài)的特性, 就是和Java不分彼此, 兩種語(yǔ)言的代碼可以混編, 同時(shí)在一個(gè)項(xiàng)目中使用。 在我之前的認(rèn)知中,開(kāi)發(fā)程序代碼混編, .net平臺(tái)應(yīng)該在這方面實(shí)踐處于領(lǐng)導(dǎo)地位, 我們可以用f#寫(xiě)一個(gè)模塊, 編譯成.dll組件, 然后在c#項(xiàng)目中調(diào)用, 這也算一種代碼混編的形式,但卻不能在一個(gè)project中即寫(xiě)c#代碼又寫(xiě)vb或f#代碼。 而kotlin和java卻沒(méi)有這種局限性, 只要不是天真的把混編理解為可以將kotlin代碼和java代碼混合寫(xiě)在一個(gè)文件當(dāng)中,  那么不管你怎么折騰都沒(méi)有問(wèn)題。 你可以用java寫(xiě)一個(gè)類(lèi),讓kotlin繼承; 你可以用kotlin寫(xiě)一個(gè)函數(shù) ,讓java調(diào)用; 反正這兩種代碼的交互完全是無(wú)縫的。

 

我在通過(guò)網(wǎng)絡(luò)資料大致瀏覽了一下語(yǔ)法,有興趣的同學(xué)也可以看看

 

https://github.com/huanglizhuo/kotlin-in-chinese

網(wǎng)友評(píng)論