Kotlin学习笔记-[优缺点]

前言

kotlin作为官方认证的Android的首先开发语言,其优势自然不言而喻。

优势

从上一篇编译过程,我们也大致了解到经过词法分析,语法分析,语义分析,而后转化为中间代码,最后生成java字节码,这一步,也是可以转化为其他类型的代码的。

  1. 完美支持java,和原生java交互。支持js。
  2. 现代工程实践的完美产物。
  3. 提倡组合,少用继承,类定义默认为final。
  4. 空安全。
  5. 扩展和委托。
  6. IDEA 的完美支持,接入特别方便。
    ......

劣势

然而,工程上的使用也有一些问题需要注意到:

  1. 我们在导入kotlin时,伴随而来的是一个支持库,会被编译到我们的apk中。大致有将近6000个方法,可见包大小必然会增加。


    Kotlin学习笔记-[优缺点]_第1张图片
    Kotlin支持库
  2. 另外在我们书写代码时,虽然是简化了我们书写,但是编译后生成的代码并不一定会少,反而会增加。如下面两个类,TestActivity是Kotlin写的,Test2Activity是java写的。同样的功能,但是TestActivity里的方法居然增加了。大致原因可以看下这篇博客:Kotlin属性引发的方法数问题

    Kotlin VS Java 方法数
  3. Kotlin 对于编译时注解。我们在使用java编程时,常用到编译时注解。显而易见,apt是在javac 的过程中作用,而Kotlin 也是属于原生代码的,并不会生成.java文件。Kotlin对其的支持不是很好,推出了kapt ,现在功能比较缺失,这里也不好应用到生产环境。

总结

  1. 其实,我们在写一些新的项目时,可以完全的上手Kotlin,在写代码时注意一些属性的定义,尽量减少方法数的快速膨胀。
    Kotlin的函数式编程方式也可以使你的代码更加的优雅:array,map 等已原生支持。
    拉姆达表达式的支持会使你的代码更紧凑。
  2. 而对于一些已处于维护的稳定的项目,首先包大小的扩增肯定是需要考虑到的因素,可以通过剪裁的方式接入,但是也是有一定的成本的。

参考

  • Kotlin属性引发的方法数问题
  • 谈谈Kotlin特性在开发中的应用
  • Kapt Blog

你可能感兴趣的:(Kotlin学习笔记-[优缺点])