Kotlin
标题历史简介Kotlin是JetBrains团队开发的一门基于 JVM 的,现代的、注重工程实用性的静态类型编程语言。Kotlin可以编译成Java字节码,也可以编译成JavaScript、Native、而且它是由 Jetbrains 开发的。Kotlin 编译为字节码,则意味着它在运行时使用 JVM(Java虚拟机)将字节码编译为机器码。语法简单优雅、表现力丰富、抽象扩展方便、代码可重用性好,.
标题
历史简介
Kotlin是JetBrains团队开发的一门基于 JVM 的,现代的、注重工程实用性的静态类型编程语言。Kotlin可以编译成Java字节码,也可以编译成JavaScript、Native、而且它是由 Jetbrains 开发的。Kotlin 编译为字节码,则意味着它在运行时使用 JVM(Java虚拟机)将字节码编译为机器码。
语法简单优雅、表现力丰富、抽象扩展方便、代码可重用性好,同时也支持面向对象和函数式编程的多范式编程。Kotlin可以编译成Java字节码运行在JVM平台和Android平台,也可以编译成JavaScript运行在浏览器环境,而且还可以直接编译成机器码的系统级程序,直接运行在嵌入式、iOS、MacOS/Linux/Windows等没有JVM环境的平台。
那么 JavaScript 呢? 事实上,它使用目标 ECMAScript 5.1 将 Kotlin 代码转换为 JavaScript。 虽然我不是 JavaScript 专家,但是可以查看官方文档以获取更多详细信息。
Kotlin 的一个厉害的特性在于能够编译原生,并支持更多没有 JVM 的平台 – 现在,Kotlin Native 可以在 Mac OS、Linux、Raspberry Pi 和 iOS(通过在 Mac 上交叉编译)上使用 LLVM 生成可执行文件。 Windows 平台尚不支持,但他们正在开发中。
看上去非常像Scala,但更简单。 它不遵循特定的编程哲学,如函数式风格或面向对象风格。Kotlin具备现代(也有称下一代的)静态编程语言的很多特点。
它是一门非常优秀、优雅有趣、流畅实用的语言。
时间线
2017年I/O大会,官宣支持Kotlin
2019年I/O大会,宣布 Kotlin-first,Kotlin 编程语言成为 Android 应用程序开发人员的首选语言。
性能
运行性能
- 大部分场景两者执行效率一致;
- 有内联函数的场景Kotlin执行效率会更高如:lambda 表达式;
- inline特性:设置某些高频方法进行inline操作,减少了运行时进栈出栈和保存状态的开销;
- 使用Kotlin只会比Java的包多80K左右;
编译性能
- clean构建即全量构建Java比Kotlin稍快;
- Gradle daemon运行和增量编译的开启,Kotlin编译速度与java一样快或略快于Java。
- 开启gradle daemon,即在~/.gradle/gradle.properties文件中,增加org.gradle.daemon=true
- 在项目的gradle.properties中增加kotlin.incremental=true 开启kotlin的增量编译。
性能相关资料
资源
专栏
入门
- kotlinlang 官网镇楼
- kotlin官方英文文档
- kotlin官方中文文档
- kotlin-guides google android 使用kotlin示例 5*
- kotlin-in-chinese
- awesome-kotlin 很多优秀资源,扩展眼界
- kotlin-koans 小练习项目能掌握很多语法糖还能学测试TDD
- kotlin_tips 汇总 用Kotlin 简洁、务实、高效、安全地开发的 tips
- Kotlin基金会 Kotlin起飞的基石
- 使用Kotlin优雅的开发Android应用
- 为什么我要改用Kotlin
- Kotlin 1.2 里程碑版本正式发布,编译器和标准库日趋稳定
- CSDN日报 —— Kotlin 专场
- 使用Kotlin进行Android开发
- 我为什么放弃java学习Kotlin?
- 使用Kotlin来开发Android【安卓巴士博文大赛】
- Kotlin 编程语言的类和继承
- Kotlin在安卓中的一些tips
- Kotlin 的包
- 也赶个时髦,说说Kotlin那些事
- Kotlin 数据类 —— 只用来保存数据的类
- Kotlin 密封类 —— 受限的类继承结构
- Kotlin 在 Android 开发中的 16 个建议
- Kotlin 编程语言的基本语法
- Kotlin 的函数定义和使用
- Kotlin语法基础,控制流
- Kotlin中的面向对象(一)
- Android开发技术周报特刊之Kotlin Issue#1
- Kotlin 的 This 表达式
- 17 位谷歌 Android 开发专家是如何看待 Kotlin 的?
- 一张图让你了解Kotlin的过去、现在和将来
- Kotlin 跟 findViewById 的类型推导冲突问题
- 为什么你必须摒弃 Java ,全面转向 Kotlin 语言?
- Kotlin中的面向对象(二)
- 为什么 Kotlin 会是我使用的下一款编程语言
- Kotlin学习之路(一)
- 在 Java 中调用 Kotlin 语言的方法
- 开发技术周报特刊之Kotlin Issue#2
- 在 Kotlin 语言中调用 JavaScript 方法
- Kotlin: Java 6 废土中的一线希望 *
- 《From Java To Kotlin》从Java到Kotlin·译 (双语对比)
- 快速入门 Kotlin 的 11 招
- Android 开发之 Kotlin 初始篇
- Kotlin学习笔记(一):走进Kotlin的世界
- Kotlin基本语法
- 进行 Kotlin 实战开发前,你应了解的那些技术点
- Google 拥抱的 Kotlin 是否为 Android 应用开发的最佳选择?
- 使用Kotlin创建更快的命令行工具
- Kotlin 为何能比 Java 做得更好?这里有你想要的答案
- From Java to Kotlin
- 不服来战,看Kotlin如何完爆Java
- 隆重推出 Android KTX,让 Kotlin 的开发更美妙!
- Android Pie SDK 与 Kotlin 更合拍
- Kotlin和Java混合开发总结(基于Kotlin1.3.0版本)
教程
- 31 天,从浅到深轻松学习 Kotlin
- 快速高效学习 Kotlin | Kotlin Bootcamp 课程介绍
- Refactoring to Kotlin (重构为 Kotlin) 谷歌官方教程
- 码上开学 扔物线出品,有意思,但需催更
中级
- Kotlin系统入门与进阶:慕课网
- 当Kotlin遇见RxJava多数据源
- Kotlin 函数与函数式编程浅析
- Kotlin 的委托和委托属性
- Kotlin 的高阶函数和 Lambda 表达式
- Kanary:基于Kotlin的可扩展RESTful API Web框架
- Kotlin教程之「协程」
- Kotlin网络库Fuel的设计之道
- Kotlin源码阅读
- Kotlin之数组和集合
- 对比!Kotlin 与 Java 变量初始化顺序的区别
- Kotlin 每日清单 鸿神推荐
实现设计模式
掌握基本后,练习设计模式。巩固基础的同时把设计模式也学了。
- Design-Patterns-In-Kotlin dbacinsk大神
- 当设计模式遇上 Kotlin 掘金翻译dbacinsk项目
- Kotlin 语言下设计模式的不同实现
- Kotlin 语言下设计模式的不同实现
高级
生态圈
- Exposed
- Kotlin Flow,流式编程
Multiplatform
项目
生态
更多推荐
所有评论(0)