標籤:而且 google content 問題 tps 複雜 size 組件 少林寺
最近看到一則科技新聞, 大致內容是google將kotlin語言作為android應用開發的一級語言, 與java並駕齊驅, 這是一個開發界的大事件大新聞, 連google的親兒子go語言也沒有這種待遇, 而kotlin貌似名不見經傳,之前根本連聽都沒聽說過。 這讓我對kotlin產生了極大的好奇心,這種能讓得到google如此寵幸的語言到底是何方神聖?
在網上查了相關資源後, 對kotlin有了粗略的瞭解。 kotlin是一種jvm平台語言, kotlin編譯器會將kotlin代碼轉換成jvm字元碼,因此它和java在本質上是相同的,都可以在java虛擬機器上運行。
kotlin非常的年輕, 第一個版本是在2011年正式發布的
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調用; 反正這兩種代碼的互動完全是無縫的。
我在通過網路資料大致瀏覽了一下文法,有興趣的同學也可以看看
https://github.com/huanglizhuo/kotlin-in-chinese
經過初步瞭解, 可以確定kotlin的文法非常驚豔, 和java完全是兩個極端。 相信只要不是從1995年穿越過來的程式員,肯定會覺得現在的 java並不美麗。人家c#當初也和java一副德行, 但是人家求上進啊, 每一個版本都添加各種符合時代潮流的先進文法特性,現在的c# 7.0各種牛逼 ,雖然說c#是模仿java生長起來的,青出於藍也在情理之中, 但從現在兩者間的差距來看, 這尼碼青的也未免太藍了。
就拿武俠小說中的武功作個比喻, java就像是少林寺大和尚們練的絕技, 威力夠大, 練的好了能在武林中楊名立萬雄霸一方, 但是武功招數實在太過於樸實無華, 使將起來一板一眼, 一點瀟洒飄逸奪人眼球的感覺也沒有。 而像c#、f#、haskell、scala之類的語言就像是降龍十八掌、六脈神劍、淩波微步、北冥神功一樣,使將出來往往是揮掌炸山頭,手指放雷射,不但威力奇大, 而且招式出人意料,跟少林寺那些絕技相比, 不知道高到哪去了。 顯然,kotlin也屬於後者。
kotlin幾乎擁有所有c#有而java沒有的文法特性,在某些方面可能更勝一籌。 kotlin具備很多FP的特性, 但又不像scala那樣複雜難學,並且編譯速度和java一樣比scala快的多, 所以可以說汲取了java和scala的優點,但又摒棄它們的缺點。
文法先進這個東西, 對程式啟動並執行本質沒有任何影響 ,但對於代碼的品質和開發效率卻有長遠的影響 , 因此kotlin這門語言擁有非常值得使用的理由, 尤其是抱上了google 的大腿以後, 前景更在一片波瀾壯闊。
因此,kotlin , 等待廣大開發人員的臨幸吧。。。
kotlin, 一種新的android平台一級開發語言