Google将Kotlin语言作为Android应用开发的一级语言, 与Java并驾齐驱, 这是一个开发界的大事件大新闻, 连Google的亲儿子go语言也没有这种待遇, 而Kotlin貌似名不见经传。 这让我对Kotlin产生了极大的好奇心,这种能让得到Google如此宠幸的语言到底是何方神圣?
在网上查了相关资源后, 对Kotlin有了粗略的了解。 Kotlin是一种jvm平台语言, Kotlin编译器会将kotlin代码转换成jvm字符码,因此它和Java在本质上是相同的,都可以在Java虚拟机上运行。
Android 加入 Kotlin 编程语言支持 http://www.linuxidc.com/Linux/2017-05/143950.htm
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调用; 反正这两种代码的交互完全是无缝的。
经过初步了解, 可以确定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 的大腿以后, 前景更在一片波澜壮阔。