Kotlin TutorialsAndroid开发Android技术知识

[Kotlin Tutorials 0] 为什么要学习Kotli

2019-12-30  本文已影响0人  圣骑士wind

为什么要学习Kotlin

这篇文章的来源是看了陈皓的专栏, 里面有一个学习模板, 列出了学习新技术的时候首先要搞清楚的6个问题:

## 1.这个技术出现的背景, 初衷, 要达到什么样的目标或是要解决什么样的问题.
## 2.这个技术的优势和劣势分别是什么, 或者说, 这个技术的trade-off是什么.
## 3.这个技术使用的场景.
## 4.技术的组成部分和关键点.
## 5.技术的底层原理和关键实现.
## 6.已有的实现和它之间的对比.

本文收录于: https://github.com/mengdd/KotlinTutorials

1.这个技术出现的背景, 初衷, 要达到什么样的目标或是要解决什么样的问题.

历史:

Kotlin要解决的痛点:

Kotlin更现代化, 更方便简洁, 可以作为更好的一个替代.

Kotlin的目标:

2.这个技术的优势和劣势分别是什么, 或者说, 这个技术的trade-off是什么.

优势:

缺点:

我在网上找了找Kotlin的缺点, 发现都是一些早期的文章, 现在这些缺点感觉都站不住脚了, 或者都不能算是痛点.

3.这个技术使用的场景.

Android

Kotlin for Android

Kotlin目前是Android App开发的官方推荐语言.

服务器端

Kotlin for server side

因为Kotlin可以取代Java, 做之前Java做的任何事情. 所以它也可以写服务器端代码.

前端

Kotlin for JavasSript

Kotlin还可以编译JavaScript, 在浏览器中运行.

Kotlin/Native

Kotlin/Native

把Kotlin编译成本地语言, 不需要虚机也能运行.

它最初的设计目的就是为了在没有虚机的平台上编译, 比如嵌入式设备或iOS.

Kotlin/Native提供了和很多平台的互操作性(interoperability).
比如OC和Swift可以调用Kotlin代码, 反过来也可以.

它为后面的multiplatform提供了基础.

Multiplatform

Kotlin Multiplatform

Multiplatform目前(2019.5)还是一个Kotlin1.2和1.3上的实验项目.

目标是支持: JVM, Android, JavaScript, iOS, Linux, Windows, Mac甚至嵌入式系统, 从而能支持多平台的代码共享.

iOS

借助于Intel Multi-OS Engine等工具可以让Kotlin代码运行在iOS设备上.
(这个项目目前已经不支持了. )

桌面应用程序

可以使用Kotlin和TornadoFX, JavaFX一起来构建桌面应用程序.

4.技术的组成部分和关键点.

Kotlin的文档:
Kotlin reference

基本上经常拿出来说的卖点就是空安全, data class, 和Java的互相调用, 方便的集合操作, lambda和高阶函数等, 协程也是一个热点话题, 新的异步任务的写法.

5.技术的底层原理和关键实现.

Kotlin是基于JVM的语言.
通过Kotlin编译器生成的字节码与Java编译的字节码基本相同, 也因此与Java可以完全兼容.

Kotlin与Java编译过程的不同主要在于目标代码生成环节, Kotlin做了更多的工作, 比如生成getter/setter, 修改类属性为final等.

参考: Kotlin编译过程分析

6.已有的实现和它之间的对比.

对于Android开发者来说, Kotlin是为了取代Java而出现的.
它的主要优点: 更简洁, 更安全, 更先进, 更好用.

具体的点可以参见下面的参考资料,
第一个是官方列出的Kotlin和Java的对比, 第二个文章是Swift和Kotlin的对比.

参考:

上一篇 下一篇

猜你喜欢

热点阅读