Android专题Kotlin篇

探究“新语言”-Kotlin的前世今生及编程前瞻

2020-10-19  本文已影响0人  千夜零一

Kotlin的前世今生

  虽然大多数人知道/听说kotlin的时间并不长,但其实它并不是一门很新的语言。Kotlin是由JetBrains公司开发与设计的,早在2011年,该公司就公布了Kotlin的第一个版本,并在2012年将其开源,但早期的Kotlin并未受到太多的关注。2016年,Kotlin发布了1.0正式版,这表示着Kotlin已经足够成熟和稳定了。自此Android开发语言终于有了另一种选择,Kotlin逐渐受到了广泛的关注。
  在Android系统诞生的前9年时间里,Google都只提供了Java这一种语言来开发Android应用程序。不过从2017年开始,这一切都发生了改变。Google在2017年的I/O大会上宣布,Kotlin正式成为Android的一级开发语言,和Java平起平坐,Android Studio也对Kotlin进行了全面的支持。两年之后,Google又在2019年的I/O大会上宣布,Kotlin已经成为Android的第一开发语言,虽然Java仍然可以继续使用,但Google更加推荐开发者使用Kotlin来编写Android应用程序,而且未来提供的很多官方API也将优先考虑Kotlin版本。
  然而现实情况是,很多人对Java太熟悉了,不愿意花费额外的事件再去学习一门新语言,再加上国内不少公司对于新技术比较保守,不敢贸然改用新语言去承担一份额外的风险,因此目前Kotlin在国内的普及程度并不高。
  但是在海外,Kotlin的发展速度已经势如破竹。根据统计,Google Play商店中排名前1000的App中,有超过60%的App已经使用了Kotlin语言,而且这个比例每年还在不断上升。Android官方文档的代码已经优先显示Kotlin版本,官方的视频教程以及Google的一些开源项目,也改用Kotlin来实现。


面试优先考虑

  往往很多时候我们的面试结果能够决定我们的薪资水平,而随着Kotlin的迅猛发展,越来越多的公司都将“熟练使用Kotlin语言编程”作为面试优先考虑项和面试加分项。于是乎,在接触了一段时间的Kotlin后,我也被Kotlin的强大所折服,于是便有了系统学习Kotlin的想法,以博客的形式记录我的学习脚步。


Kotlin语言相较于Java而言

  一个词总结,Kotlin语言更加“简洁”。


Java语言的运行机制

  可能会有人问了,为什么讲Kotlin要说到Java语言的运行机制?难道是为了让人云里雾里摸不清楚头脑?非也!编程语言大致分为两大类:编译型语言解释型语言

问题:Java语言属于编译型还是解释型语言?

  对于这个问题,即使是做了很多年Java开发的人都可能会答错。有Java编程经验的人或许会说,Java代码肯定是先编译再运行的,因为javac是编译命令啊,因此Java属于编译型语言。恭喜你,答错了!虽然Java代码确实是要先编译再运行,但是Java代码编译之后生成的并不是计算机可识别的二进制文件,而是一种特殊的class文件,这种class文件只有Java虚拟机(Android中叫做ART,一种移动优化版的虚拟机)才能识别,而这个Java虚拟机担当着解释器的角色,它会在程序运行时将编译后的class文件解释成计算机可识别的二进制数据后再执行,因此准确来说,Java属于解释型语言


Kotlin语言诞生及其工作原理

  了解了Java语言的运行机制之后,发现其实Java虚拟机并不直接和我们编写的Java代码打交道,而是直接和编译之后生成的class文件打交道。那么如果我开发了一门新的编程语言,然后自己做个编译器,让它将这门新语言的代码编译成同样规格的class文件,Java虚拟机能不能识别呢?当然是可以的,Kotlin语言就是这样的工作原理。
  Java虚拟机并不关心是从Java编译而来的,还是从Kotlin编译而来的,只要是符合规格的class文件,它都是能识别的。这也就是为何Google开发的Android操作系统,而JetBrains作为一个第三方公司可以开发出一门编程语言来开发Android应用程序的原因所在啊!


Kotlin语言的魅力所在

  Kotlin的语法更加简洁。对于同样的功能,使用Kotlin开发的代码量可能会比使用Java开发的减少50%甚至更多。
  另外,Kotlin的语法更加高级,相比于Java比较老旧的语法,Kotlin增加了很多现代高级语言的语法特性,使得开发效率大大提升。
  而且Kotlin语言在安全性方面下了很大功夫,几乎杜绝了空指针这个全球崩溃率最高的异常。
  它还具有比这些特性更为重要的特性,那就是它和Java是100%兼容的。Kotlin可以直接调用使用Java编写的代码,也可以无缝使用Java第三方的开源库。这使得Kotlin在加入了诸多新特性的同时,还继承了Java的全部财富。

上一篇下一篇

猜你喜欢

热点阅读