2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Kotlin 语言 1.0Beta 发布,JetBrain 介绍其设计理念

  • 2015-11-05
  • 本文字数:1649 字

    阅读完需:约 5 分钟

Kotlin JetBrains 开发的现代编程语言,可运行于 JVM 环境同时也能用来开发 Android 应用。它的 1.0Beta 版本已经发布,这里是新版本的特性列表 ;

Kotlin 起源与设计理念

2010 年,长达是十年之久的 Java 开发让 JetBrains 的工程师认为老旧的 Java 语言已经严重阻碍了生产力。他们认为是时候开发一款现代化的 JVM 语言了,这也是因为他们有足够的资源和专家。本身做各种 IDEs 起家的 JetBrains 就开始着手新工具的开发——一个编程语言。

开发新语言有诸多因素需要考虑:首先之前的代码几乎全部用 Java 编写,所以要考虑平滑迁移的需求;新语言在生产力方面要有巨大提升;同时它要易于学习和理解。这样的工程牵扯到许多方面,不可能从一开始就满足所有需求。这就是为什么他们对核心设计选择进行了一段时间实验和验证,方式是持续收集 JetBrains 内部和外部的早期使用者的反馈报告,并根据反馈作出进一步的调整。

JetBrains 已经在 Intelli IDEA YouTrack 和其它产品中使用 Kotlin 有一段时间了。也有一些产品完全使用 Kotlin( account.jetbrains.com )编写.Kotlin 语言已经达到可与 Java 自由透明交互的地步,Kotlin 可以通过 versa 调用 Java 方法,源码可在同一项目中混合使用,甚至生成的.class 文件完全兼容 Java 工具。JetBrains 内部现在已经有一个超过 20 个开发人员的团队使用 Kotlin 开发。

目前已经有大量的开发人员使用 Kotlin 开发 web 服务后端和 Android 应用。下面是 GitHub 中的公开仓库中 Kotlin 代码行数的变化:

Kotlin 初印象

根据 JetBrains 开发人员自己的经验和外部用户总结的对 Kotlin 的印象有:

  • 更少代码量
  • 高可读性
  • 跟高的类型安全性
  • 更高的表现力
  • 同工具的交互操作流畅

Beta 版本的意义

  • 正在准备发布官方正式版本相关工作
  • 二进制格式已经完成
  • 主要的语言变化已经完成

兼容性

Kotlin 会很快发布正式版。在开发之初 JetBrains 就承诺了流畅的用户体验,这当然也包括 Kotlin 语言版本的兼容性。1.0 版本之后语言的所有变化都将是后向兼容的:

  • 新版本的编译器将兼容旧版本二进制文件,但旧版编译器或许不能兼容新的二进制文件,就像 javac 1.6 不能读取 javac 1.8 编译的 classes 文件。
  • 旧版本二进制文件将能够和新版本二进制文件一起在 runtime 一起运行,但新版本代码可能需要新的依赖。

以上的所有特性仅保证支持 JVM/Android 平台。

关于 Kotlin 的一些事实

  • 它是开源的(在 Apache 2.0 许可证下):编译器、运行时库和所有的工具,包括 IDE。
  • 它提倡函数式编程风格(同时也是一个多范式语言)
  • 它是静态编译的,相较于 Java 它没有运行时开销
  • 它通过 Quasar 支持高效安全的并发。
  • 它和IntelliJ IDEA 是绑定的(最终版和 OSS 社区版也是),同时也是开箱即用的。
  • 它有Android Studio、Eclipse、Maven、Gradle和 Ant 插件(更不用说 IntelliJ IDEA 和 TeamCity)。
  • 它有REPL
  • 它有一个活跃和有帮助的社区,提供有用的库。
  • 目前已经有两本关于它的书出版了: Kotlin in Action Kotlin for Android Developers

迁移

目前为止基本所有的 Java 或 Android 框架或库都能平滑地和 Kotlin 一起工作。当然还有像 Spring MVC、Vaadin 和 Jackson 等等其它框架和库。Kotlin 也有由 JetBrains 和社区开发的自己的框架和库。比如: Anko RxKotlin funKtionale kohesive kovenant Kobalt 构建工具等等

学习

学习资料链接: Koans Playground 介绍语言文档

安装方法: * IntelliJ IDEA 15高级版或者社区版):直接在创建一个Kotlin 项目或在Java 项目中创建Kotlin 文件。 * **Android Studio__:通过_ 插件管理器_ 安装插件。 * Eclipse:通过 MarketPlace 安装插件。 * 命令行:下载编译器

社区: Forum Slack get invite )、 StackOverflow GitHub (欢迎 PRs)。

新闻:博客 Twitter

问题追踪


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-05 18:004916
用户头像

发布了 32 篇内容, 共 20.1 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

TiFlash 表达式的实现与设计

TiDB 社区干货传送门

开放下载 | 飞天技术峰会-云原生加速应用构建分论坛资料开放下载

阿里巴巴云原生

阿里云 云原生

师文汇:OceanBase 4.0 产品核心能力解读

OceanBase 数据库

Dijkstra(迪杰斯特拉算法)的实现(C,C++,Matlab)

Five

算法 图论 8月月更

华为云算法零门槛:零基础教你AI试伊妆

程思扬

华为 API 华为云 开发者说

2022年网约车平台服务用户体验指数(UEI)

易观分析

用户体验 网约车平台

融云移动办公协同平台,助力政企数智化转型升级

融云 RongCloud

企业 即时通讯

swap去中心化交易所系统开发技术分析

开发微hkkf5566

多种姿势搞定Tidb集群监控大屏

TiDB 社区干货传送门

监控

看完年薪30W~120W程序员分别需要掌握的技能栈,我彻底悟了!

程序员小毕

Java 程序员 程序人生 后端 架构师

实战-记录一次大版本升级

TiDB 社区干货传送门

新版本/特性解读

pd-ctl 选项 --jq 格式化语法使用案例详解

TiDB 社区干货传送门

性能调优 实践案例 管理与运维 扩/缩容

独自一人开发一整套ERP系统是什么水平?

优秀

ERP系统

2022 全球 AI 模型周报

Zilliz

人工智能 深度学习 计算机视觉

SENSORO 智慧城市平台中的延时队列设计

SENSORO

大数据 物联网 智慧城市 延时队列

RT-Thread记录(十六、SFUD组件 — SPI Flash的读写)

矜辰所致

RT-Thread 8月月更 SFUD SPI设备

RT-Thread记录(十七、AT组件 — ESP8266使用 at_device 软件包联网)

矜辰所致

esp8266 RT-Thread 8月月更 AT组件

阿里巴巴全新出品Spring全家桶笔记:(Spring+SpringBoot+SpringCloud)

Java永远的神

Java spring 程序员 面试 程序人生

数字藏品:为何深受年轻人喜爱,到底有何魔力?

开源直播系统源码

数字藏品 数字藏品开发 数字藏品系统

使用函数计算自定义运行时快速部署一个 SpringBoot 项目 | 文末有礼

阿里巴巴云原生

阿里云 Serverless 云原生 springboot 函数计算

TCP异常场景:三次握手四次挥手丢包情况解析

Java全栈架构师

程序员 面试 TCP 计算机网络 秋招

上游sql通过drainer同步到kafka时在kafka中是什么样子的

TiDB 社区干货传送门

实践案例 管理与运维 版本测评 大数据场景实践 实时数仓场景实践

PCTP考试学习笔记之一:深入TIDB体系架构(下)

TiDB 社区干货传送门

TiDB 底层架构 管理与运维 TiDB 源码解读 TiKV 源码解读

历时10个月,1300+队伍参赛 第二届HarmonyOS开发者创新大赛奖项揭晓

极客天地

Dubbo 3 易用性升级之 Dubbo 官网大改版

阿里巴巴云原生

阿里云 开源 云原生 dubbo

前端开发技术培训班靠谱吗

小谷哥

深入理解Java虚拟机!京东大佬耗时半年肝出来的HotSpot VM源码剖析笔记真香(附完整源码)

Java全栈架构师

Java 源码 面试 程序人生 JVM

MySQL的redolog如何保证数据不丢?其中原理你真的知道吗?

Java全栈架构师

Java MySQL 数据库 程序员 程序人生

SBOM落地的关键一步——漏洞可利用性交流(VEX)

SEAL安全

软件供应链安全 漏洞管理

PCTP考试学习笔记之一:深入TIDB体系架构(上)

TiDB 社区干货传送门

管理与运维 TiDB 源码解读 TiKV 源码解读 TiKV 底层架构

2022 DEMO CHINA 创新中国峰会将于9月7-8日在无锡举办

创业邦

Kotlin语言1.0Beta发布,JetBrain介绍其设计理念_移动_百占辉_InfoQ精选文章