Kotlin 1.2:平台之间共享代码(译文)

本文作者: youngxhui

本文链接: http://youngxhui.github.io/2017/12/02/Kotlin-1-2-平台之间共享代码/

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!

前言

这是一个尝试,之前没有翻译过任何技术文章,做一个尝试,也算是学习,尽管现在这个译文在网上已经是满天飞了。

原文地址Kotlin 1.2 Released: Sharing Code between Platforms

正文

今天,我们将要发布 Kotlin 1.2。这是一个重要的新版本和一个大的步伐在我们朝着使用 Kotlin 在现代应用程序中的道路上。

在 Kotlin 1.1 中,我们正式的发布了 JavaScript 目标,允许你去编译 Kotlin 代码成为 JS 并且运行在浏览器上。在 Kotlin 1.2 中,我们将要添加 JVM 和 JavaScript 的代码重用成为可能。现在你可以写一次应用程序的逻辑代码,而在你的应用程序中所有层重用它——后端,浏览器前端和Android移动应用。我们也会在库上进行工作,帮助你重用更多的代码。比如跨平台库。

image

Kotlin 1.2 是已经绑定在 IntelliJ IDEA 2017.3中,将会在本周发布。如果你正在使用的是 Android Studio 或者 一个旧版本的 Intellij IDEA,你可以从 Tools | Kotlin | Configure Kotlin Plugin 更新框中安装新的版本。

这个版本包括了大量外部贡献者的工作,并且我们想感谢向我们反馈,提交问题和尤其是提交了PR的每个人。

多平台项目

一个多平台项目允许你编译在你的应用程序的多层 —— 后端,前端和Android应用 —— 在相同的代码基础上。这样的一个项目包含了 相同模块,与平台无关以及特定平台的模块,包含了特定平台的代码( JVM 或者 JS )和使用了特定平台的库。从通用模块调用特定平台的代码,你可以指定预期的声明——所有平台特定模块需要提供实际实现声明。

image

有关该功能的更多信息,请查看这个文档

如前所述,我们也在编写一组公共库允许你将更多的逻辑代码转移到公共代码:

  • kotlin.test,包括开箱即用的Kotlin1.2,让你写一次测试并且运行在JVM 和 JS 下;

  • kotlin.html支持 同构渲染 — 用相同的代码渲染 HTML 在后端和在前端;

  • kotlinx.serialization允许你轻松的对 Kotlin对象编组在你的应用程序的不同的层之间,使用 JSON 或者 ProtoBuf 进行序列化格式化。

请注意,多平台项目目前是一个实验性功能;这意味着这个功能是准备使用,但是我们也许需要去改变设计在之后的版本(并且如果我们这样做,我们将会提供代码迁移工具)。

编译性能

在1.2的发展过程中,我们花费了很多精力来使编译过程更快。我们已经比Kotlin1.1提高了大约 25% 并且我们看见进一步改进的巨大潜力,它将会在发布在 1.2.x的更新中。

下方的图片展示了两个用Kotlin的大型JetBrains项目不同的编译时间:


image

其他语言和库的改进

我们也做了许多小的改进在语言和标准库:

  • 更简洁的语法 用于将多个参数传递给注解(数组 文字(literals)) 不知如何翻译literals 译者注

  • 支持 lateinit 修饰在全局属性和局部属性,以及检查一个 lateinit 是否被初始化;

  • 更加聪明的智能推导改进的类型推断在一些情况下。

  • 标准库和 Java9 中引入的分包限制的兼容;

  • 新的 kotlin.math包在标准库中;

  • 新的标准库函数在处理序列和集合,包含了一组函数 为了拆分集合和序列为可能重叠的固定大小的组。

更多的信息和代码示例,请看 Kotlin1.2中新功能

世界各地的Kotlin

自从今年3月发布的Kotlin1.1以来,Kotlin已经取得了巨大的收获在世界各地。这是 KotlinConf 的高潮,我们第一次全球会议,有着1200参会者在11月2,3日的旧金山。我们已经记录了所有的会谈,并且视频已经可以看

Kotlin现在是一个Android开发官方支持的语言,开箱即用的Android Studio 3.0,已经谷歌发布了官方示例风格指南。结果是,在Android Studio中超过了 17% 的项目使用 Kotlin,包含来自很多热门的创业公司以及财富500强公司的许多应用程序。

image

在服务器端,Spring 5.0 已经发布,有着许多Kotlin支持的功能,而且 vert.x 已经支持Kotlin在3.4.0后。当然,Gradle支持开箱即用Kotlin DSL,而且 Gradle Kotlin DSL 项目正在迅速的接近1.0版本。

在Github上,开源的Kotlin代码行数已经超过了2.5亿。而在 Stack Overflow,Kotlin是增长最快的语言之一和最不反感的语言之一

image

围绕Kotlin的社区建立同样也是令人吃惊的,已经有超过100用户组在全世界,我们很难追踪到所有的人 —— 但是针对我们所知道的,这个会谈地图给了你一个很好的想法,kotlin是多么广泛的使用。

image

对于刚刚学习Kotlin的人来说,书籍的数量是不断的增长(包含我们自己的 "Kotlin in Action",现在有英文俄语日语中文葡萄牙语),线上课程,教程和其他资源

团队见面:网络研讨会和Reddit AMA

分享你更多的信息关于新版本,我们计划组织一个网络研讨会关于Kotlin1.2多平台项目在12月7日,18:00 CET。请注册;空间有限。

Kotlin团队也将会举办 AMA(Ask Me Anything) 在 Kotlin Reddit 上在12月5号。我们将开始中午开始(CET),并且我们接下来的24小时和你在一起。

如何升级

一如既往,你可以在线尝试Kotlintry.kotlinlang.org

  • 在 Maven,Gradle和npm中:使用1.2.0作为编译器和标准库的版本号。看这里

  • IntelliJ IDEA:2017.3已经和Kotlin1.2绑定,在早期版本中安装或者升级 Kotlin 插件到1.2.0版本。

  • Android Studio:安装或者升级插件通过 Plugin Manager

  • Eclips:安装插件在 MarketPlace

  • 命令行编译可以从Github发布页面上下载。

兼容性 在Kotlin1.2的语言和标准库是向后兼容的(模块错误):如果一些编译和运行在1.0或者1.1,将会继续在1.2上运行。帮助逐渐共享的打团队,我们将提供不使用新特性的编译开关。这里是一个包含可能的缺陷文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343