Kotlin 是一门面向 JVM、Android、JavaScript、Wasm 以及原生平台的开源静态类型编程语言。 它是由 JetBrains 开发的。该项目开始于 2010 年并且很早就已开源。 第一个官方 1.0 版发布于 2016 年 2 月。
目前发布的版本是 %kotlinVersion%,发布于 %kotlinReleaseDate%。
可以在 GitHub 上找到更多信息。
是。Kotlin 是免费的,已经免费并会保持免费。它是遵循 Apache 2.0 许可证开发的,其源代码可以在 GitHub 上获得。
Kotlin 既具有面向对象又具有函数式结构。你既可以按 OO 风格也可以按 FP 风格使用,还可以混合使用两种风格。 通过对诸如高阶函数、函数类型和 lambda 表达式等功能的一等支持,Kotlin 是一个很好的选择, 如果你正在进行或探索函数式编程的话。
Kotlin 更简洁。粗略估计显示,代码行数减少约 40%。 它也更安全——例如对不可空类型的支持使应用程序不易发生 NPE。 其他功能包括智能类型转换、高阶函数、扩展函数和带接收者的 lambda 表达式,提供了编写富于表现力的代码的能力以及易于创建 DSL 的能力。
兼容。Kotlin 与 Java 语言可以 100% 互操作,并且主要强调确保你现有的代码库可以与Kotlin 正确交互。你可以轻松地在 Java 中调用 Kotlin 代码以及在 Kotlin 中调用 Java 代码。 这使得采用 Kotlin 更容易、风险更低。内置于 IDE 的自动化 Java 到 Kotlin 转换器可简化现有代码的迁移。
Kotlin 可用于任何类型的开发,无论是服务器端、客户端 Web、 Android 还是多平台库。 随着原生 Kotlin(Kotlin/Native)平台目前的进展,还支持其他平台,如嵌入式系统、macOS 与 iOS。 人们将 Kotlin 用于移动端与服务器端应用程序、使用 JavaScript 或 JavaFX的客户端、以及数据科学, 仅举这几例。
可以。Kotlin 已作为 Android 平台的一等语言而支持。已经有数百种应用程序在使用 Kotlin 用于 Android 开发,比如 Basecamp、Pinterest 等等。更多信息请查看 Android 开发资源。
可以。Kotlin 与 JVM 100% 兼容,因此你可以使用任何现有的框架,如 Spring Boot、 vert.x 或 JSF。另外还有一些 Kotlin 写的特定框架,例如 Ktor。 更多信息请查看服务器端开发资源。
可以。除了用于后端 Web,你还可以使用 Kotlin/Wasm 用于客户端 Web。 Learn how to get started with Kotlin/Wasm.
可以。你可以使用任何 Java UI 框架如 JavaFx、Swing 或其他框架。 另外还有 Kotlin 特定框架,如 TornadoFX。
可以。Kotlin/Native 是 Kotlin 项目的一部分。它将 Kotlin 编译成无需虚拟机(VM)即可运行的原生代码。 可以在主流的桌面与移动端平台甚至某些物联网(IoT)设备上试用。 更多详细信息请查阅 Kotlin/Native 文档。
Kotlin 在 IntelliJ IDEA、 Android Studio 与 JetBrains Fleet 中都有完整的开箱即用支持(内置 JetBrains 开发的官方 Kotlin 插件)。
其他 IDE 与源代码编辑器(例如 Eclipse、Visual Studio Code 与 Atom)有 Kotlin 社区支持的插件。
还可以尝试使用 Kotlin Playground 在浏览器中编写、运行及共享 Kotlin 代码。
此外,还提供了命令行编译器,为编译与运行应用程序提供了直接的支持。
在 JVM 端,主要构建工具包括 Gradle、Maven、 Ant 和 Kobalt。还有一些可用于构建客户端 JavaScript 的构建工具。
当面向JVM 平台时,Kotlin 生成 Java 兼容的字节码。
当面向 JavaScript 时,Kotlin 会转译到 ES5.1,并生成与包括 AMD 和 CommonJS 在内的模块系统相兼容的代码。
当面向原生平台时,Kotlin 会(通过 LLVM)生成平台相关的代码。
Kotlin 会让你选择用于执行的 JVM 版本。默认情况下,Kotlin/JVM 编译器会生成兼容 Java 8 的字节码。 如果要利用 Java 新版本中提供的优化功能,可以将目标 Java 版本显式指定为 9 到 21。 请注意,这种情况下生成的字节码可能无法在较低版本中运行。 自 Kotlin 1.5起,编译器不支持生成兼容低于 Java 8 版本的字节码。
Kotlin 是受 Java、C#、JavaScript、Scala 以及 Groovy 等现有语言的启发。我们已经努力确保 Kotlin 易于学习, 所以人们可以在几天之内轻松转向、阅读和编写 Kotlin。 学习惯用的 Kotlin 和使用更多它的高级功能可能需要一点时间,但总体来说这不是一个复杂的语言。 如需了解更多信息,请查阅我们的学习资料。
有太多使用 Kotlin 的公司可列,而有些更明显的公司已经公开宣布使用 Kotlin,分别通过博文、Github 版本库或者演讲宣布,包括 Square、 Pinterest、 Basecamp 以及 Corda。
Kotlin 由 JetBrains 的一个工程师团队开发(目前团队规模为 100+)。 其首席语言设计师是 Michail Zarečenskij。除了核心团队,GitHub 上还有 250 多个外部贡献者。
最好的起始地方好是本网站(原文是英文官网)。从那里你可以下载编译器、 To start with Kotlin, you can install one of the official IDEs or try it online.
有许多关于 Kotlin 的图书。其中一些我们已经审阅过并且可以推荐作为入门图书。 这些都列在了图书页。 如需了解更多图书,请参见 kotlin.link 上社区维护的列表。
可以在学习 JetBrains Academy 的 Kotlin 核心课程创建可工作应用程序的同时学习所有 Kotlin 基础知识。
可以选择的一些其他课程:
- Pluralsight Course: Getting Started with Kotlin,作者:Kevin Jones
- O'Reilly Course: Introduction to Kotlin Programming,作者:Hadi Hariri
- Udemy Course: 10 Kotlin Tutorials for Beginneres,作者:Peter Sommerhoff
还可以在我们(官方)的 YouTube 频道上查看其他教程与内容。
有!Kotlin 有一个非常有活力的社区。Kotlin 开发人员常出现在 Kotlin 论坛、 StackOverflow 上并且更积极地活跃在 Kotlin Slack (截至 2020 年 4 月有近 30000 名成员)上。
有!现在有很多用户组和集会组专注于 Kotlin。你可以在网站上找到一个列表。 此外,还有世界各地的社区组织的 Kotlin 之夜活动。
有! KotlinConf 是由 JetBrains 主办的年度大会,汇集了来自世界各地的开发者、爱好者与专家,分享他们的 Kotlin 知识与经验。
除了技术讲座与研讨会之外,KotlinConf 还提供联络机会、社区互动与社交活动,与会者可以与其他 Kotliner 联系并交流想法。 它是在 Kotlin 生态系统内促进协作与社区建设的一个平台。
Kotlin 也会在全球不同地方举行大会。你可以在 官网上找到即将到来的会谈列表。
上。 可以订阅 Kotlin YouTube 频道以及在 Twitter 上关注 Kotlin。
网站上有一堆在线资源,包括社区成员的 Kotlin 文摘、 通讯、播客等等。
徽标可以在这里下载。
使用该徽标时,请遵循压缩包中的 guidelines.pdf
以及 Kotlin 品牌使用指南 中的简单规则。
如需了解更多信息,请查阅 Kotlin 品牌素材页。