Kotlin语言的特点和优劣势

Posted by

2017年文武双全开始学习Java和Kotlin,特别是对kotlin产生了非常大的兴趣。未来很长一段时间,Kotlin会是我的首选编程语言。学习了一段时间,感觉需要总结下kotlin的特点和优劣势。

第一:kotlin是一门什么样子的编程语言,kotlin的特点是什么?

kotlin官方网站对kotlin的描述以及特点的定义
kotlin官方网站对kotlin的描述以及特点的定义

如图所示,kotlin官方网站是这样定义这门编程语言的:用于现代多平台应用的静态编程语言,与 Java™ 和 Android™ 100% 可互操作。

 首先,它是一门现代化的编程语言。这里是跟java,C++这些上个世纪出身的编程语言相比,kotlin显得更现代化一点。他的现代化体现在,跟旧时代的编程语言相比,在很多方面有了现代化的改进。这一点,后面要细细说明,很多人确实不太理解。
 
 其次,可用于开发跨平台的应用。kotlin是一门真正全栈式的编程语言,可以开发web,Socket,安卓,js,NativeApp等。投资这门编程语言的收益率,太高了。
 
然后,它是一门静态编译型的编程语言。在很多专业的评测当中,性能基本跟原生Java相当。但是,某些项目会更省内存。使用Kotlin开发安卓,app的体积大约会增加1MB。
 
最后,与java和android 100%可互相操作。由于跟java一样,基于JVM引擎生成字节码,所以kotlin跟java和android,那是100%兼容的。说白一点,kotlin可以拿所有java的资源来用,干所有java能干的活,然后能比java干的更好。
 
接下来,我们来谈一谈kotlin的一些具体的优势。首先说说官方网站的解析:
 
kotlin官方自诩的kotlin第一大特点就是:简洁。当然这是跟原生java来比较的,如果跟php比较的话,kotlin还是稍微复杂一点。得益于开发工具的强大,熟练掌握kotlin活,开发效率会接近php甚至比php更高。这就是我作为一个phper感觉到恐怖的地方,这家伙有java的性能和php的开发效率。简直就是梦幻的编程语言。
 
github上有很多案例了,有人用kotlin改写了一个app,代码行数和函数数量下降了好几十个百分点。简洁是kotlin相对于原生java的一个巨大优势。说句实在话,原生java什么都好,就是语法略显啰嗦,开发效率低。而kotlin完美解决了这个问题。
 
kotlin官方自诩的kotlin第二大特点就是:安全。这个也是相对于C++和java来说的,kotlin完全彻底的解决了空指针报错的问题。结合强大的编译器,可以在编译阶段发现几乎所有可能存在NPE问题的代码,彻底解决恼人的NPE问题。
 
kotlin官方自诩的kotlin第三大特点就是:互操作性。kotlin基于JVM引擎,充分利用 JVM、Android 和浏览器的现有库。这个很吊,可以直接拿所有java的代码库来用。特别是用JetBrains公司的开发工具,各种智能转换,需要手动操作的部分极其的少。过去几十年java积累的各种牛逼的库,拿来就用。
 
kotlin官方自诩的kotlin第四大特点就是:工具友好。开发kotlin的公司JetBrains就是靠做开发工具吃饭的,语言和工具高度结合,真的是很强大。生产力,棒棒滴。
 
以上就是kotlin官方自吹自擂的kotlin的特点,接下来我补充说明几个。
 
kotlin支持函数式编程。kotlin对lambda表达式的支持十分的好,虽然lambda表达式增加了代码的复杂度,使代码的可读性下降,但是对于性能还是有一定提升的。
 
kotlin支持协程。协程的优势这里就不累述一点,简单了说就是用异步的方式在线程里执行一个请求。kotlin对协程的封装,那是相当不错的,github上面也已经有很多这方面的示例了。基于协程的安卓开发的代码,也有很多了,大家可以了解下。Go语言感觉没啥学的必要了,哈哈。Go能干的kotlin都能干,Go不能干的Kotlin也能干。
 
kotlin支持扩展函数。Kotlin 同 C# 和 Gosu 类似,能够扩展一个类的新功能而无需继承该类或使用像装饰者这样的任何类型的设计模式。 这通过叫做 扩展 的特殊声明完成。Kotlin 支持 扩展函数 和 扩展属性。这个特点非常棒!!!减少了使用设计模式的性能开销,同时又可以扩展类的功能。
 
kotlin支持泛型。很多Java开发人员喷Go的理由之一,就是Go语言不支持泛型。kotlin可是支持泛型的哦,而且比原生java的泛型还吊哦。这下看你们怎么喷,哈哈。虽然我觉得引入泛型,就提高编程语言的学习成本,降低开发效率,我也是不太喜欢泛型的。这种能用编译器解决的问题,最好还是都丢给机器去解决吧。
 
kotlin不再依赖XML。哈哈,不知道有多少人跟我一样反感XML。曾经作为创新象征的XML,应该很多人会觉得已经落伍了吧。哪怕是kotlin的HTML构建器,也比原生html代码量更少,非常的现代化。
 
kotlin的官方文档极其强大。不仅仅是开发工具棒,kotlin的官方文档也非常的棒。而且kotlin官方把文档放到github上面,因此非常容易在英文文档的基础上直接翻译整站的文档。文武双全阅读后发现,kotlin的中文文档,翻译的质量也是十分的高。说句实话,直接读中英文版的kotlin文档,基本不用买书了。直接上github上面,撸代码去了。
 
文武双全对kotlin这门编程语言的总结
 
吹了这么多的牛逼,最后做一个总结吧。为什么说kotlin是一门现代的编程语言呢,这门编程语言的设计符合很多现代编程语言的思维。简化编程语言,提升开发效率,跨平台开发,空安全,类型转换,协程,函数式编程,兼容庞大的资源库,工具友好等等。这些特点,是新一代的编程语言的追求的特色。比如说Go,Swift等。kotlin是这一轮新的编程语言的大潮中,综合实力非常突出的佼佼者。我十分看好kotlin的未来,这门编程语言的投资回报率,绝对是非常的高。
 
参考资料:
Kotlin的官方网站:https://kotlinlang.org/
Kotlin语言中文网站:https://www.kotlincn.net/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.