最近看到一則科技新聞, 大體內容是google將kotlin語言做爲android應用開發的一級語言, 與java並駕齊驅, 這是一個開發界的大事件大新聞, 連google的親兒子go語言也沒有這種待遇, 而kotlin貌似名不見經傳,以前根本連聽都沒據說過。 這讓我對kotlin產生了極大的好奇心,這種能讓獲得google如此寵幸的語言究竟是何方神聖?java
在網上查了相關資源後, 對kotlin有了粗略的瞭解。 kotlin是一種jvm平臺語言, kotlin編譯器會將kotlin代碼轉換成jvm字符碼,所以它和java在本質上是相同的,均可以在java虛擬機上運行。android
kotlin很是的年輕, 第一個版本是在2011年正式發佈的 git
kotlin是jetbrains公司開發的語言, JB公司馳名世界,生產的IDE雄霸天下, 和宇宙第一的visual studio也沒有正面衝突, 所以除非是.net系程序員,不然對這間公司不會陌生。程序員
kotlin有一個很是可愛的特性, 就是和Java不分彼此, 兩種語言的代碼能夠混編, 同時在一個項目中使用。 在我以前的認知中,開發程序代碼混編, .net平臺應該在這方面實踐處於領導地位, 咱們能夠用f#寫一個模塊, 編譯成.dll組件, 而後在c#項目中調用, 這也算一種代碼混編的形式,但卻不能在一個project中即寫c#代碼又寫vb或f#代碼。 而kotlin和java卻沒有這種侷限性, 只要不是天真的把混編理解爲能夠將kotlin代碼和java代碼混合寫在一個文件當中, 那麼無論你怎麼折騰都沒有問題。 你能夠用java寫一個類,讓kotlin繼承; 你能夠用kotlin寫一個函數 ,讓java調用; 反正這兩種代碼的交互徹底是無縫的。github
我在經過網絡資料大體瀏覽了一下語法,有興趣的同窗也能夠看看c#
https://github.com/huanglizhuo/kotlin-in-chinese網絡
通過初步瞭解, 能夠肯定kotlin的語法很是驚豔, 和java徹底是兩個極端。 相信只要不是從1995年穿越過來的程序員,確定會以爲如今的 java並不美麗。人家c#當初也和java一副德行, 可是人家求上進啊, 每個版本都添加各類符合時代潮流的先進語法特性,如今的c# 7.0各類牛逼 ,雖說c#是模仿java生長起來的,青出於藍也在情理之中, 但從如今二者間的差距來看, 這尼碼青的也未免太藍了。jvm
就拿武俠小說中的武功做個比喻, java就像是少林寺大和尚們練的絕技, 威力夠大, 練的好了能在武林中楊名立萬雄霸一方, 可是武功招數實在太過於樸實無華, 使將起來一板一眼, 一點瀟灑飄逸奪人眼球的感受也沒有。 而像c#、f#、haskell、scala之類的語言就像是降龍十八掌、六脈神劍、凌波微步、北冥神功同樣,使將出來每每是揮掌炸山頭,手指放激光,不但威力奇大, 並且招式出人意料,跟少林寺那些絕技相比, 不知道高到哪去了。 顯然,kotlin也屬於後者。函數
kotlin幾乎擁有全部c#有而java沒有的語法特性,在某些方面可能更勝一籌。 kotlin具有不少FP的特性, 但又不像scala那樣複雜難學,而且編譯速度和java同樣比scala快的多, 因此能夠說汲取了java和scala的優勢,但又摒棄它們的缺點。google
語法先進這個東西, 對程序運行的本質沒有任何影響 ,但對於代碼的質量和開發效率卻有長遠的影響 , 所以kotlin這門語言擁有很是值得使用的理由, 尤爲是抱上了google 的大腿之後, 前景更在一片波瀾壯闊。
所以,kotlin , 等待廣大開發者的臨幸吧。。。