带你踏入Kotlin大门(一)|kotlin初识


带你踏入Kotlin大门(一)|kotlin初识

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

带你踏入Kotlin大门(一)|kotlin初识 - 掘金 (juejin.cn)

带你踏入kotlin大门(二)|基本功_变量篇 - 掘金 (juejin.cn)

带你踏入kotlin大门(三)|基本功_函数篇 - 掘金 (juejin.cn)

带你踏入kotlin大门(四)|基本功_逻辑控制篇 - 掘金 (juejin.cn)

带你踏入kotlin大门(五)|基本功_类和继承篇 - 掘金 (juejin.cn)

带你踏入Kotlin大门(六)|基本功_接口和特殊类篇 - 掘金 (juejin.cn)

前置知识

  • Java 编程基础

前言

作为一名 Java 使用者,相信大家对 Java 的各种规范已经深入了解,这些规范是一种行业标准,它使得 Java 具有了更好的兼容性。但随着函数式编程的兴盛,这些规范又开始束缚了开发者的创造,成为了拖累 Java 的因素。

所以,Java8 出现了,它基于 Java5 做了一些拓展,让Java更好的适应时代。

它提出了 高阶函数和lambdastream类 和 optional类,这几个让 Java 更简洁,可读性增强以及解决空安全。这是 Java 对自身的变革。

但在人们希望Java更好的同时,也有 “更好的Java” 的实践,学界和工业界分别 创造了 ScalaKotlin ,并使他们成为了更好的 Java

但是,Scalakotlin 作为不同的语言,他们各有自身优势。前者重于提高 Java 的广度;而后者重于提高 Java 的广度同时,继续保持易用性可规范性。所以在工业界看来,kotlin 才是最适合做业务的,称得上更好的 Java

下面,将带大家了解和比较 Scalakotlin 的异同,以便更好的理解他们的设计理念,设计哲学。

Scala是什么

Scala 语言是Java的研发者之一、Java5 中泛型的创造者 ——Martin Odersky 教授的作品。该语言与 Java 一样,是依靠JVM平台的。它被创造出来的初衷是突破Java的约束和规范,让其合理的服务于学术,同时也具有实用价值。

Scala 在突破 Java 的约束和规范的时候,做了大量的拓展,使得 Scala 可以实现很多的编程特性。但是由于其突破了Java编程规范约束,它的语法被认为过于学院派,虽然强大灵活,但是其语言逻辑的不同,使得它不容易学懂;其不守规范的多选择性,也让其难以在工业界收到一致的好评。

但是 Scala 在大数据领域已是热门语言,该领域的众多知名项目正是由此语言开发的。可见,Scala 的灵活性虽未讨得大部分人的追捧,但是其对 Java 的拓展和解放也引得很多人的认可。

kotlin更好吗

同样的,kotlin 也是一门作为依靠 JVM 平台而出现的语言。它由大名鼎鼎的 JetBrains 公司打造,目的很简单,就是改良 Java ,致力成为“更好的Java”。

Kotlin 也是在突破Java的束缚,但其突破束缚的程度确是有限的。它在保留Java大部分重要的规范的同时,也提出了很多可以提高生产力的拓展,譬如默认属性不可空,数据类,智能推导等。这使得kotli~n即拓展了语言的特性,也使得其更加易用。

kotlinJava 极度兼容,其在用法方面用法是相对于Java做出了部分简化和改良,使得Java程序员很容易就可上手;而在兼容范围方面,kotlin可以兼容到Java6,可以实现 Javakotlin 之间无缝相互调用。这正是工业界所喜爱的。

为何要入门 kotlin

作为依靠 jvm 平台的语言,kotlin 和 Scala 都是将源文件编译为 class 文件,再交予 jvm 运行。所以这些语言并不会影响运行的性能,我们只需关注其是否能给我们带来开发效益上的提高即可。而事实上,kotlin 能给我们带来很大的开发效益,具体有以下几点。

  1. 代码量大幅减少。基于 kotlin 的语法简洁的特性,对比Java,能大幅减少我们的代码数量
  2. 提高开发效率。kotlin 使用了函数式等更优的语言特性,让我们在开发的时候效率大幅提升。
  3. 答复减少空指针异常。kotlin 默认属性不得为空,可以让空指针异常答复降低。

同时,Android 官方已指定 kotlin 为官方语言,且默认优先使用它在各种新功能上,譬如最小的 compose 只能使用 kotlin 语言。由此可知,kotlin 必然会成为Android 开发的最主要的语言,我们此时学习也是刻不容缓。

加油!永远相信我们的代码可以改变世界。


文章作者: DYJ
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 DYJ !
评论
  目录