为什么谷歌会选择Kotlin

为什么谷歌会选择Kotlin_第1张图片

i use Kotlin

从去年8月份开始使用全Kotlin语言开发,但因为公司项目前期我依然使用了大量Java代码,以至于最后版本喜金会APP源码中一半是Java,一半是Kotlin。

为什么谷歌会选择Kotlin_第2张图片

对我来说,这其实是一个遗憾。因此,当我开发新的APP的时候,我强制要求团队必须使用全Kotlin语言开发,并且在Gradle脚本增加了代码检查,如果发现存在Java代码将导致编译不通过。

  task kotlinCheck {
        sourceSets.matching {it.name == "main"}.each {
            it.java.srcDirs.each {
                def fileTree = fileTree(dir: it.absolutePath)
                fileTree.each { File file ->
                    if(file.isFile()) {
                        if(file.name.endsWith(".java")) {
                            throw new GradleException("${rootProject.ext.dontAllowJavaCode}\n${file.absolutePath}")
                        }
                    }
                }
            }
        }
    }

    project.afterEvaluate {
        preBuild.dependsOn kotlinCheck
    }

偶遇Kotlin

遇到Kotlin其实是一个偶然,时间大约是在去年3,4月份的时候,突然收到Bugly推送的一篇文章,这篇文章盛赞了Kotlin语言。看完文章,我惊喜地发现,原来Kotlin语言和Swift语言很像。作为Swift语言的铁粉,我按耐不住内心的窃喜,马上下载了官方文档,决定尝试一番。而当我慢慢地发现Kotlin语言与Java语言完全兼容时,我知道,也许有一天Kotlin语言会成为谷歌官方的安卓开发语言,而当我看到铺天盖地的Kotlin成为谷歌官方语言的消息时,我依然有点惊讶,我没有想到这个决定居然来的这么快...

其实,严格来说,是Swift让我遇见了Kotlin,一门优秀的语言让我遇见了另外一门优秀的语言。那个时候其实有想转iOS的想法,Kotlin让我改变了这个想法。有了Kotlin,我依然可以在一个开源的平台上使用“Swift”,相对封闭的iOS,我更喜欢开源的感觉,长期在一个需要猜测底层实现的平台上开发,我想我会觉得枯燥。因此,我只把iOS当成我的第二开发平台,安卓依然是我最喜欢的开发平台。

长期官司压身

在Android的版权问题上,不要脸的Oracle公司在长达6年的时间里一直以Android部分Java代码侵犯Oracle公司版权为由对Google持续提起上诉。比较有意思的是,Java语言的原拥有者却力挺谷歌。

虽然Google有专门的公关团队来处理这类诉讼,可这样持续且影响力巨大的诉讼依然不利于Android的发展。在长期的官司上诉中,我们看到谷歌开始妥协了。

从Android 7.0开始,谷歌使用的API从Oracle JDK切换到了open JDK,这对于谷歌来说是一个艰难的决定。对于开发者来说,却倍感兴奋,这意味着长期的官司问题也许就此结束,Android系统开发又可以回归到一个正常的轨道,持续给全球的安卓用户带来惊喜。

我想,长期的官司压身,长期的高额诉讼费用,长期的人力资本,一定在谷歌Android团队掀起了不小的波澜,他们大概也在寻求一个新的语言来解决安卓开发的痛点问题,这也许就是Kotlin语言在Android团队中的萌芽吧!

Kotlin语言的影响力

从Kotlin语言支持Android开发的那一天起,Kotlin语言在全球Android开发者中就逐渐引起了强烈的反响。特别世界公认的安卓大神,开源社区的持续贡献者 Jake Wharton 更是专门发表了一个演讲,盛赞了Kotlin语言,这也是让我坚定使用Kotlin语言的一颗定心丸。

随着Kotlin语言的使用者越来越多,Kotlin相关的文章以及网站,资源也越来越多。甚至在中国也有很多Kotlin语言的粉丝建立了一些专门用来学习Kotlin语言的网站,带动了一批国内的Kotlin开发者。在国外的影响力更加不用说了,在这样一个背景下,谷歌的工程师也按耐不住想要在自己的工程里面尝试一把了。有人在Google的 DataBinding 源码中发现了部分Kotlin代码,这在安卓开发社区引起了无限的遐想...

注:DataBinding是Android开发MVVM框架的必备库。

Kotlin语言有什么优势?

一定会有人有这样的疑问,Kotlin语言在全球范围内获得了大量赞誉,可以说是掀起了一股Kotlin风,那它到底有什么优势呢?

简单来说,可以这样概括:

  • 完全兼容Java
  • Null safe
  • 支持lambda表达式(比Java8更好)
  • 支持扩展
  • 体验一致的开发工具链

更多关于Kotlin语言的介绍,请关注我的另一篇文章Hello,Kotlin

使用Kotlin对Android开发者意味着什么?

谷歌将Kotlin语言作为安卓开发语言是一个有人欢喜有人忧的决定。很多人开始担心,又要学习新的语言了,怎么办?而掌握了Kotlin语言开发安卓的同学又会窃喜,我早知道有这一天。

是的,没有办法,如果你还不熟悉Kotlin语言,赶紧去学习吧!欢迎关注我的,会不定期推送Kotlin相关的文章以及教程。

使用Kotlin开发,对于安卓开发来说,主要有下面几个有利的影响:

  • 更少的空指针异常
  • 更少的代码量
  • 更快的开发速度
  • 更一致的开发体验

Kotlin语言在解决上面这些安卓开发痛点问题上的确下了苦功,如果你还没有尝试过使用Kotlin语言开发安卓,赶紧去试一试吧!你应该也会爱上Kotlin。

近期安排

目前正在开发公司一款理财APP,这款APP使用全Kotlin语言开发,目前基本功能已经开发完成。这款APP将成为我的首款全Kotlin语言开发的APP,开发完成后我会专门写一篇文章说一下APP整体架构以及使用Kotlin语言开发的体验等。

接下来,我会出一系列的Kotlin语言视频教程,力求短小精悍,敬请期待!

欢迎加入Kotlin交流群

如果你也喜欢Kotlin语言,欢迎加入我的Kotlin交流群: 329673958 ,一起来参与Kotlin语言的推广工作。

大家也可以关注我的微信公众号,后期会运营起来,不定期推送一些安卓开发干货,敬请期待!

为什么谷歌会选择Kotlin_第3张图片
欧阳锋工作室

你可能感兴趣的:(为什么谷歌会选择Kotlin)