前置知识
- 有
Java
编程基础
前言
作为一名 Java
使用者,相信大家对 Java 的各种规范已经深入了解,这些规范是一种行业标准,它使得 Java 具有了更好的兼容性。但随着函数式编程的兴盛,这些规范又开始束缚了开发者的创造,成为了拖累 Java 的因素。
所以,Java8 出现了,它基于 Java5 做了一些拓展,让Java更好的适应时代。
它提出了 高阶函数和lambda
、stream
类 和 optional
类,这几个让 Java
更简洁,可读性增强以及解决空安全。这是 Java
对自身的变革。
但在人们希望Java更好的同时,也有 “更好的Java” 的实践,学界和工业界分别 创造了 Scala
和 Kotlin
,并使他们成为了更好的 Java
。
但是,Scala
和 kotlin
作为不同的语言,他们各有自身优势。前者重于提高 Java
的广度;而后者重于提高 Java
的广度同时,继续保持易用性可规范性。所以在工业界看来,kotlin
才是最适合做业务的,称得上更好的 Java
。
下面,将带大家了解和比较 Scala
和 kotlin
的异同,以便更好的理解他们的设计理念,设计哲学。
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即拓展了语言的特性,也使得其更加易用。
kotlin
对 Java
极度兼容,其在用法方面用法是相对于Java做出了部分简化和改良,使得Java程序员很容易就可上手;而在兼容范围方面,kotlin
可以兼容到Java6,可以实现 Java
与 kotlin
之间无缝相互调用。这正是工业界所喜爱的。
为何要入门 kotlin
作为依靠 jvm 平台的语言,kotlin 和 Scala 都是将源文件编译为 class 文件,再交予 jvm 运行。所以这些语言并不会影响运行的性能,我们只需关注其是否能给我们带来开发效益上的提高即可。而事实上,kotlin 能给我们带来很大的开发效益,具体有以下几点。
- 代码量大幅减少。基于 kotlin 的语法简洁的特性,对比Java,能大幅减少我们的代码数量
- 提高开发效率。kotlin 使用了函数式等更优的语言特性,让我们在开发的时候效率大幅提升。
- 答复减少空指针异常。kotlin 默认属性不得为空,可以让空指针异常答复降低。
同时,Android 官方已指定 kotlin 为官方语言,且默认优先使用它在各种新功能上,譬如最小的 compose 只能使用 kotlin 语言。由此可知,kotlin 必然会成为Android 开发的最主要的语言,我们此时学习也是刻不容缓。
加油!永远相信我们的代码可以改变世界。