├── README.md ├── assets └── readme │ ├── kotlin_group.jpg │ └── translator.png ├── generateList.py ├── original ├── A New Open Source Web Site.md ├── A little lesson learned from Java.md ├── Advanced Features of Anko.md ├── An Interview with Andy Selvig, Author of Kara Web Framework.md ├── Anko 0.6 is Released.md ├── Announcing Anko for Android.md ├── Announcing KotlinConf.md ├── Announcing the Support Program for Kotlin User Groups and Events.md ├── Better Annotation Processing Supporting Stubs in kapt.md ├── Call for Feedback Java Statics, Result Expressions and More.md ├── Call for Feedback Upcoming Changes in Kotlin.md ├── Calling on EAPers.md ├── Catch up with our Kotlin Team at Devoxx Belgium.md ├── Contest Go Cross-Platform with Kotlin!.md ├── Contributing to Kotlin (Kontributing).md ├── DSLs in Kotlin Part 1. What’s in the toolbox + Builders.md ├── Dogfooding Kotlin and M3.1.md ├── Early access program for Kotlin 1.2 has been started.md ├── Eclipse Plugin Alpha is Out!.md ├── Feedback Request Limitations on Data Classes.md ├── Fibers and Actors in Kotlin with Quasar.md ├── First glimpse of Kotlin 1.1 Coroutines, Type aliases and more.md ├── Follow-up New Class Object Syntax.md ├── Free Kotlin Webinar on Wednesday, October 10th.md ├── Full-Day Kotlin Workshop October 6th in Malmö, Sweden.md ├── Gradle Daemon Support for Faster Compilation.md ├── Gradle Meets Kotlin.md ├── Hello World.md ├── How do you traverse a map.md ├── How to configure Kotlin in your project.md ├── Improving Java Interop Top-Level Functions and Properties.md ├── JavaScript Interop.md ├── Join Live Webinar — Functional Programming with Kotlin.md ├── Join Live Webinar — Quasar and Kotlin.md ├── KAnnotator 0.1 is out.md ├── Kotlin 1.0 Beta 2 is Out!.md ├── Kotlin 1.0 Beta 3 is Out!.md ├── Kotlin 1.0 Beta 4 is Out!.md ├── Kotlin 1.0 Beta Candidate is Out!.md ├── Kotlin 1.0 Release Candidate is Out!.md ├── Kotlin 1.0 Released Pragmatic Language for JVM and Android.md ├── Kotlin 1.0.1 is Here!.md ├── Kotlin 1.0.2 is Here.md ├── Kotlin 1.0.3 Is Here!.md ├── Kotlin 1.0.4 is here.md ├── Kotlin 1.0.5 is here.md ├── Kotlin 1.0.6 is here!.md ├── Kotlin 1.0.7 is out.md ├── Kotlin 1.1 Beta 2 is here.md ├── Kotlin 1.1 Beta Is Here!.md ├── Kotlin 1.1 Event Report.md ├── Kotlin 1.1 Event in Your City.md ├── Kotlin 1.1 Event.md ├── Kotlin 1.1 Release Candidate is Here.md ├── Kotlin 1.1 Released with JavaScript Support, Coroutines and more.md ├── Kotlin 1.1 What’s coming in the standard library.md ├── Kotlin 1.1 is also for Android Developers.md ├── Kotlin 1.1-M02 is here!.md ├── Kotlin 1.1-M03 is here!.md ├── Kotlin 1.1-M04 is here!.md ├── Kotlin 1.1-What’s coming in the standard library.md ├── Kotlin 1.1.1 is out.md ├── Kotlin 1.1.2 is out.md ├── Kotlin 1.1.3 is out.md ├── Kotlin 1.1.4 is out.md ├── Kotlin 1.1.50 is out.md ├── Kotlin 1.1.60 is out.md ├── Kotlin 1.2 Beta is out.md ├── Kotlin 1.2 Beta2 is out.md ├── Kotlin 1.2 M2 is out.md ├── Kotlin 1.2 Released Sharing Code between Platforms.md ├── Kotlin 1.2.20 is out.md ├── Kotlin Census 2017.md ├── Kotlin Digest 2015.md ├── Kotlin Digest 2016.Q1.md ├── Kotlin Eclipse Plugin 0.2.0.md ├── Kotlin Eclipse Plugin 0.3.0.md ├── Kotlin Eclipse Plugin 0.5.0.md ├── Kotlin Eclipse Plugin 0.7 Is Here!.md ├── Kotlin Educational Plugin.md ├── Kotlin Evolves How to Keep Your Code Up.md ├── Kotlin Future Features Survey Results.md ├── Kotlin Goes Open Source!.md ├── Kotlin M1 Candidate.md ├── Kotlin M1 is Out!.md ├── Kotlin M11 is Out!.md ├── Kotlin M12 is out!.md ├── Kotlin M13 is out!.md ├── Kotlin M14 is out!.md ├── Kotlin M2 Candidate.md ├── Kotlin M2 is Out!.md ├── Kotlin M3 is Out!.md ├── Kotlin M4 is Out!.md ├── Kotlin M5 is Out!.md ├── Kotlin M5.1.md ├── Kotlin M5.2 IntelliJ IDEA 12.1 and Gradle.md ├── Kotlin M5.3 IntelliJ IDEA 13, Delegated Properties and more.md ├── Kotlin M6 is here!.md ├── Kotlin Native IDE Support Preview.md ├── Kotlin Native v0.3 is out.md ├── Kotlin Native v0.4 released Objective-C interop WebAssembly and more.md ├── Kotlin Native v0.5 released calling Kotlin from Swift and C LLVM 5 and more.md ├── Kotlin NetBeans plugin beta is out!.md ├── Kotlin Night in London Recordings.md ├── Kotlin Night in London.md ├── Kotlin Night in San Francisco Recordings.md ├── Kotlin Post-1.0 Roadmap.md ├── Kotlin Session and JetBrains Booth at 33rd Degree Conference.md ├── Kotlin Session at Devoxx, November 16th.md ├── Kotlin Skills Matter Events in London, England.md ├── Kotlin Web Demo is out!.md ├── Kotlin Workshop Material for you to use.md ├── Kotlin census call to action.md ├── Kotlin gets support for S-expressions.md ├── Kotlin on Android. Now official.md ├── KotlinConf - New Workshop and Community Event by JetBrains and Realm.md ├── KotlinConf - Speaker List Announced.md ├── KotlinConf 2017 Session Recordings and Photos are Here!.md ├── KotlinConf Keynote Recap.md ├── Kotlin_Native Tech Preview Kotlin without a VM.md ├── Kotlin_Native v0.2 is out.md ├── Kotlin’s Android Roadmap.md ├── Learn Kotlin with “Advent of Code”.md ├── Let’s Kode Together!.md ├── M10 is out.md ├── M6.1 Released.md ├── M6.2 Available.md ├── M7 Release Available.md ├── M8 is out!.md ├── M9 is coming.md ├── M9 is here!.md ├── MCE2015 Kotlin Session and JetBrains Booth.md ├── Making Platform Interop even smoother.md ├── Meet the Kotlin Team at Gradle Summit.md ├── Mixed-Site Variance in Kotlin.md ├── Modifiers vs Annotations.md ├── More Deprecations Coming.md ├── More changes Enum Syntax, Another Deprecation and More.md ├── Multiple Inheritance Part 1 Problems with the existing design.md ├── Multiple Inheritance Part 2 Possible directions.md ├── New Style for User Groups.md ├── Our first book about Kotlin is out.md ├── Ranges Reloaded.md ├── Slides and Video Kotlin@JVMLS 2011.md ├── Slides from the JVM Language Summit presentations.md ├── Spek – A Specification Framework.md ├── StrangeLoop Slides+Video.md ├── Talk @ GeekOUT Tallinn Language Design Trade-Offs (Kotlin and Beyond).md ├── The Dot Operator.md ├── The Great Syntactic Shift.md ├── The Kotlin Language 1.0 Beta is Here!.md ├── The Kotlin issue tracker is now public.md ├── The Road Ahead.md ├── Try Kotlin in Your Browser New Look and More Features.md ├── Type-Safe Web with Kotlin.md ├── Upcoming Change Function Types Reform.md ├── Upcoming Change More Null-safety for Java.md ├── Upcoming Change Syntax For Annotations.md ├── Upcoming Change “Class Objects” Rethought.md ├── Upcoming Feature Deprecations.md ├── Use Kotlin with npm, webpack and react.md ├── Webinar Recording Functional Programming with Kotlin.md ├── Webinar Recording. Quasar Efficient and Elegant Fibers, Channels and Actors.md ├── Webinar recording Developing Multiplatform Projects in Kotlin 1.2.md ├── What’s new in Standard Library M13 and M14.md ├── Why JetBrains needs Kotlin.md ├── Working with Kotlin in Android Studio.md ├── Writing Kotlin in the Browser.md ├── kapt Annotation Processing for Kotlin.md ├── “Static constants” in Kotlin.md └── “Surround with…” comes to Kotlin.md └── translated ├── A New Open Source Web Site.md ├── A little lesson learned from Java.md ├── Advanced Features of Anko.md ├── An Interview with Andy Selvig, Author of Kara Web Framework.md ├── Anko 0.6 is Released.md ├── Announcing Anko for Android.md ├── Announcing KotlinConf.md ├── Announcing the Support Program for Kotlin User Groups and Events.md ├── Better Annotation Processing Supporting Stubs in kapt.md ├── Call for Feedback Java Statics, Result Expressions and More.md ├── Call for Feedback Upcoming Changes in Kotlin.md ├── Calling on EAPers.md ├── Catch up with our Kotlin Team at Devoxx Belgium.md ├── Contest Go Cross-Platform with Kotlin!.md ├── Contributing to Kotlin (Kontributing).md ├── DSLs in Kotlin Part 1. What’s in the toolbox + Builders.md ├── Dogfooding Kotlin and M3.1.md ├── Early access program for Kotlin 1.2 has been started.md ├── Eclipse Plugin Alpha is Out!.md ├── Feedback Request Limitations on Data Classes.md ├── Fibers and Actors in Kotlin with Quasar.md ├── First glimpse of Kotlin 1.1 Coroutines, Type aliases and more.md ├── Follow-up New Class Object Syntax.md ├── Free Kotlin Webinar on Wednesday, October 10th.md ├── Full-Day Kotlin Workshop October 6th in Malmö, Sweden.md ├── Gradle Daemon Support for Faster Compilation.md ├── Gradle Meets Kotlin.md ├── Hello World.md ├── How do you traverse a map.md ├── How to configure Kotlin in your project.md ├── Improving Java Interop Top-Level Functions and Properties.md ├── JavaScript Interop.md ├── Join Live Webinar — Functional Programming with Kotlin.md ├── Join Live Webinar — Quasar and Kotlin.md ├── KAnnotator 0.1 is out.md ├── Kotlin 1.0 Beta 2 is Out!.md ├── Kotlin 1.0 Beta 3 is Out!.md ├── Kotlin 1.0 Beta 4 is Out!.md ├── Kotlin 1.0 Beta Candidate is Out!.md ├── Kotlin 1.0 Release Candidate is Out!.md ├── Kotlin 1.0 Released Pragmatic Language for JVM and Android.md ├── Kotlin 1.0.1 is Here!.md ├── Kotlin 1.0.2 is Here.md ├── Kotlin 1.0.3 Is Here!.md ├── Kotlin 1.0.4 is here.md ├── Kotlin 1.0.5 is here.md ├── Kotlin 1.0.6 is here!.md ├── Kotlin 1.0.7 is out.md ├── Kotlin 1.1 Beta 2 is here.md ├── Kotlin 1.1 Beta Is Here!.md ├── Kotlin 1.1 Event Report.md ├── Kotlin 1.1 Event in Your City.md ├── Kotlin 1.1 Event.md ├── Kotlin 1.1 Release Candidate is Here.md ├── Kotlin 1.1 Released with JavaScript Support, Coroutines and more.md ├── Kotlin 1.1 What’s coming in the standard library.md ├── Kotlin 1.1 is also for Android Developers.md ├── Kotlin 1.1-M02 is here!.md ├── Kotlin 1.1-M03 is here!.md ├── Kotlin 1.1-M04 is here!.md ├── Kotlin 1.1-What’s coming in the standard library.md ├── Kotlin 1.1.1 is out.md ├── Kotlin 1.1.2 is out.md ├── Kotlin 1.1.3 is out.md ├── Kotlin 1.1.4 is out.md ├── Kotlin 1.1.50 is out.md ├── Kotlin 1.1.60 is out.md ├── Kotlin 1.2 Beta is out.md ├── Kotlin 1.2 Beta2 is out.md ├── Kotlin 1.2 M2 is out.md ├── Kotlin 1.2 Released Sharing Code between Platforms.md ├── Kotlin 1.2.20 is out.md ├── Kotlin Census 2017.md ├── Kotlin Digest 2015.md ├── Kotlin Digest 2016.Q1.md ├── Kotlin Eclipse Plugin 0.2.0.md ├── Kotlin Eclipse Plugin 0.3.0.md ├── Kotlin Eclipse Plugin 0.5.0.md ├── Kotlin Eclipse Plugin 0.7 Is Here!.md ├── Kotlin Educational Plugin.md ├── Kotlin Evolves How to Keep Your Code Up.md ├── Kotlin Future Features Survey Results.md ├── Kotlin Goes Open Source!.md ├── Kotlin M1 Candidate.md ├── Kotlin M1 is Out!.md ├── Kotlin M11 is Out!.md ├── Kotlin M12 is out!.md ├── Kotlin M13 is out!.md ├── Kotlin M14 is out!.md ├── Kotlin M2 Candidate.md ├── Kotlin M2 is Out!.md ├── Kotlin M3 is Out!.md ├── Kotlin M4 is Out!.md ├── Kotlin M5 is Out!.md ├── Kotlin M5.1.md ├── Kotlin M5.2 IntelliJ IDEA 12.1 and Gradle.md ├── Kotlin M5.3 IntelliJ IDEA 13, Delegated Properties and more.md ├── Kotlin M6 is here!.md ├── Kotlin Native IDE Support Preview.md ├── Kotlin Native v0.3 is out.md ├── Kotlin Native v0.4 released Objective-C interop WebAssembly and more.md ├── Kotlin Native v0.5 released calling Kotlin from Swift and C LLVM 5 and more.md ├── Kotlin NetBeans plugin beta is out!.md ├── Kotlin Night in London Recordings.md ├── Kotlin Night in London.md ├── Kotlin Night in San Francisco Recordings.md ├── Kotlin Post-1.0 Roadmap.md ├── Kotlin Session and JetBrains Booth at 33rd Degree Conference.md ├── Kotlin Session at Devoxx, November 16th.md ├── Kotlin Skills Matter Events in London, England.md ├── Kotlin Web Demo is out!.md ├── Kotlin Workshop Material for you to use.md ├── Kotlin census call to action.md ├── Kotlin gets support for S-expressions.md ├── Kotlin on Android. Now official.md ├── KotlinConf - New Workshop and Community Event by JetBrains and Realm.md ├── KotlinConf - Speaker List Announced.md ├── KotlinConf 2017 Session Recordings and Photos are Here!.md ├── KotlinConf Keynote Recap.md ├── Kotlin_Native Tech Preview Kotlin without a VM.md ├── Kotlin_Native v0.2 is out.md ├── Kotlin’s Android Roadmap.md ├── Learn Kotlin with “Advent of Code”.md ├── Let’s Kode Together!.md ├── M10 is out.md ├── M6.1 Released.md ├── M6.2 Available.md ├── M7 Release Available.md ├── M8 is out!.md ├── M9 is coming.md ├── M9 is here!.md ├── MCE2015 Kotlin Session and JetBrains Booth.md ├── Making Platform Interop even smoother.md ├── Meet the Kotlin Team at Gradle Summit.md ├── Mixed-Site Variance in Kotlin.md ├── Modifiers vs Annotations.md ├── More Deprecations Coming.md ├── More changes Enum Syntax, Another Deprecation and More.md ├── Multiple Inheritance Part 1 Problems with the existing design.md ├── Multiple Inheritance Part 2 Possible directions.md ├── New Style for User Groups.md ├── Our first book about Kotlin is out.md ├── Ranges Reloaded.md ├── Slides and Video Kotlin@JVMLS 2011.md ├── Slides from the JVM Language Summit presentations.md ├── Spek – A Specification Framework.md ├── StrangeLoop Slides+Video.md ├── Talk @ GeekOUT Tallinn Language Design Trade-Offs (Kotlin and Beyond).md ├── The Dot Operator.md ├── The Great Syntactic Shift.md ├── The Kotlin Language 1.0 Beta is Here!.md ├── The Kotlin issue tracker is now public.md ├── The Road Ahead.md ├── Try Kotlin in Your Browser New Look and More Features.md ├── Type-Safe Web with Kotlin.md ├── Upcoming Change Function Types Reform.md ├── Upcoming Change More Null-safety for Java.md ├── Upcoming Change Syntax For Annotations.md ├── Upcoming Change “Class Objects” Rethought.md ├── Upcoming Feature Deprecations.md ├── Use Kotlin with npm, webpack and react.md ├── Webinar Recording Functional Programming with Kotlin.md ├── Webinar Recording. Quasar Efficient and Elegant Fibers, Channels and Actors.md ├── Webinar recording Developing Multiplatform Projects in Kotlin 1.2.md ├── What’s new in Standard Library M13 and M14.md ├── Why JetBrains needs Kotlin.md ├── Working with Kotlin in Android Studio.md ├── Writing Kotlin in the Browser.md ├── kapt Annotation Processing for Kotlin.md ├── “Static constants” in Kotlin.md └── “Surround with…” comes to Kotlin.md /assets/readme/kotlin_group.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bennyhuo/KotlinBlogTranslation/88c16787b7386d6d8e2418abed07f57b949a5de8/assets/readme/kotlin_group.jpg -------------------------------------------------------------------------------- /assets/readme/translator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bennyhuo/KotlinBlogTranslation/88c16787b7386d6d8e2418abed07f57b949a5de8/assets/readme/translator.png -------------------------------------------------------------------------------- /generateList.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | import os 3 | from datetime import datetime 4 | 5 | import sys 6 | 7 | from dateutils import dateutils 8 | import urllib 9 | 10 | os.chdir("original") 11 | files = os.listdir(".") 12 | fileMap = {} 13 | 14 | for file in files: 15 | f = open(file, "r") 16 | f.readline() 17 | f.readline() 18 | datetimeString = f.readline().replace("date:", "").strip() 19 | time = dateutils.timeStampFromString(datetimeString, "%Y-%m-%d %H:%M:%S") 20 | fileMap[time] = [file, datetimeString] 21 | 22 | sortedKeys = fileMap.keys() 23 | sortedKeys.sort(reverse=True) 24 | 25 | 26 | #readme = open("README.md", "w") 27 | readme = sys.stdout 28 | 29 | head = """Kotliner.cn 计划同步翻译 Kotlin 官方博客,以下是经过处理的原文以及经过谷歌翻译的译文,如果愿意参加到翻译当中,请加 QQ 群讨论:162452394 30 | 31 | 翻译时直接修改对应译文,不要修改格式。另外,如需在发布后接受打赏,可以将 reward 设置为 true,并且提供微信和支付宝二维码图片的地址(可以外链,也可以直接上传到本仓库 /assets/文章名/ 目录,地址写绝对路径,比如 /assets/文章名/wechat.png)。 32 | 33 | 34 | 标题 | 发表时间 | 译文地址 | 译者 35 | ---|---|---|---\n""" 36 | 37 | readme.write(head) 38 | 39 | for key in sortedKeys: 40 | file = fileMap[key][0] 41 | name = file[:-3] 42 | encodedFile = urllib.quote(file) 43 | readme.write("[" + name + "](original/" + encodedFile + ") |" + fileMap[key][1] + "| [译文](translated/" + encodedFile +")| |\n") 44 | -------------------------------------------------------------------------------- /original/Announcing KotlinConf.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Announcing KotlinConf" 3 | date: 2017-03-14 21:57:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/announcing-kotlinconf/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Over the past year we have seen significant growth in Kotlin adoption, represented not only by the lines of Kotlin code on GitHub ( [8M new lines of code since 1.0 release](https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1/) ) but also by the numerous companies that have been reaching out to us about their usage, the number of talks being presented by community members at conferences, the increase in new frameworks and libraries, new user groups and meet-ups, as well as community events 18 | To thank the wonderful Kotlin community, and to also share the most exciting things happening in Kotlin, we’re happy to announce 19 | -------------------------------------------------------------------------------- /original/Catch up with our Kotlin Team at Devoxx Belgium.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Catch up with our Kotlin Team at Devoxx Belgium" 3 | date: 2013-11-04 12:36:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/11/catch-up-with-our-kotlin-team-at-devoxx-belgium/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Devoxx LogoMeet JetBrains and Kotlin team members Svetlana Isakova and Aleksei Sedunov, November 11-15, at the sold-out [Devoxx Belgium](http://www.devoxx.be/#/) conference. We invite you to **stop by our booth** for an **impromptu demo**, some **great gifts** and a chance to **win a free personal license**. 18 | Don’t miss the following great Kotlin events: 19 | **Hackergarten Hands-on Coding** 20 | On Tuesday, November 12th, Aleksei will be participating in the Hackergarten hands-on coding event. He will get you started with the Kotlin language and will help you write a plugin for IntelliJ IDEA in Kotlin. [Unpuzzling Kotlin: Bringing Clarity to Your Code](http://www.devoxx.be/dv13-svetlana-isakova.html?presId=3575) Join Svetlana and Aleksei Thursday, November 14th, 10:50 -11:50 in Room 6. In this talk we’re going to tell the story of Java puzzlers from the Kotlin perspective which would demonstrate how Kotlin design helps to eliminate some problematic issues found in Java. In particular, we’d consider such aspects as expressions and control structures, exception handling, object and classes, nullable types and extensions. 21 | #### **About Svetlana Isakova
22 |
** 23 | 24 | #### **About Aleksei Sedunov** 25 | 26 | To get a taste of the upcoming action, watch this short video of the awesome people and atmosphere at the JetBrains booth from Devoxx 2012. 27 | 28 | {% raw %} 29 |

30 | {% endraw %} 31 | 32 | *For complete Devoxx Belgium 2013 information, please visit: http://www.devoxx.be/.* 33 | -------------------------------------------------------------------------------- /original/Dogfooding Kotlin and M3.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Dogfooding Kotlin and M3.1" 3 | date: 2012-10-10 13:06:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/10/dogfooding-kotlin-and-m3-1/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | After releasing [Kotlin M3](http://blog.jetbrains.com/kotlin/2012/09/kotlin-m3-is-out/) , we immediately started [dogfooding](http://en.wikipedia.org/wiki/Eating_your_own_dog_food) Kotlin. Working on [KAnnotator](https://github.com/abreslav/kannotator) — a static analysis tool that will automatically infer nullability annotations for libraries — helps us tremendously at prioritizing issues. As a result, we roll out a bugfix update: [Kotlin M3.1](http://plugins.intellij.net/plugin?pr=idea&pluginId=6954) ( [list of closed issues](http://youtrack.jetbrains.com/issues/KT?q=resolved+date%3A+2012-09-12+..+2012-10-10) ). We recommend to run it with the latest [IntelliJ IDEA 12 EAP](http://confluence.jetbrains.com/display/IDEADEV/IDEA+12+EAP) . 18 | A few highlights: 19 | 20 | * A bunch of annoying exceptions and performance problems. 21 | * Referring to inner enums fixed. 22 | * Super-calls from object literals fixed. 23 | * A few back-end fixes, including bridge methods and debugger-related things. 24 | * You can now run all tests in a package/module. 25 | 26 | BTW, [this talk](http://blueskybd.vo.llnwd.net/o16/oracle/CON5934_mp4_5934_001.html) I presented at [JavaOne](https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=5934) a week ago covers some new features in M3. Slides are available [here](http://confluence.jetbrains.net/display/Kotlin/Talks+and+Publications) . Other talks can be watched [here](http://confluence.jetbrains.net/display/Kotlin/Talks+and+Publications) . 27 | 28 | {% raw %} 29 |

 

30 | {% endraw %} 31 | 32 | -------------------------------------------------------------------------------- /original/Fibers and Actors in Kotlin with Quasar.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Fibers and Actors in Kotlin with Quasar" 3 | date: 2015-06-04 18:44:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/06/fibers-and-actors-in-kotlin-with-quasar/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | In the [previous post](http://blog.jetbrains.com/kotlin/2015/05/kotlin-m12-is-out/) we mentioned that the [Quasar](http://docs.paralleluniverse.co/quasar/) library now supports Kotlin, providing awesome support for fibers (lightweight threads), Go-like channels, Erlang-like actors, and other asynchronous tools. 18 | Our friends from [Parallel Universe](http://www.paralleluniverse.co/) have published a [blog post](http://blog.paralleluniverse.co/2015/06/04/quasar-kotlin/) that dives into details of using Quasar with Kotlin. Even in the unlikely case that multithreading doesn’t concern you much, Quasar/Kotlin integration is a great example of a “DSL” library written in Kotlin, it uses 19 | 20 | * data classes 21 | * top-level functions 22 | * lambdas 23 | * annotated expressions 24 | * when-expressions 25 | * inline functions 26 | 27 | to build a natural-looking and efficient API, and the [blog post](http://blog.paralleluniverse.co/2015/06/04/quasar-kotlin/) explains it very well. 28 | Enjoy! 29 | -------------------------------------------------------------------------------- /original/Follow-up New Class Object Syntax.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Follow-up: New Class Object Syntax" 3 | date: 2015-03-14 10:57:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/03/follw-up-new-class-object-syntax/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | In the [previous post](http://blog.jetbrains.com/kotlin/2015/03/upcoming-change-class-objects-rethought/) I explained the rethought design of what used to be called “class objects”: they are now more uniform with normal nested objects, have names (name may be omitted, but a default one will be used by the compiler), and we can write extensions to them. 18 | One of the goals of that post was to gather feedback on the term we proposed, namely “default object”, and many of you rightfully stated in the comments that the term has a disadvantage: it is easily misread for “a default instance of the class”. **Now we are looking for a better term** and need some more feedback… 19 | **Update**: thanks to everyone, with your help, we chose `companion`. 20 | We are talking about a modifier in front of the word **object**: 21 | 22 | {% raw %} 23 |

24 | {% endraw %} 25 | 26 | ```kotlin 27 | class KotlinClass { 28 |     ??? object { 29 |         fun callMeOnTheClassName() { ... } 30 |     } 31 | } 32 | ``` 33 | 34 | {% raw %} 35 |

36 | {% endraw %} 37 | 38 | Our candidates are: 39 | 40 | * default object 41 | * attached object 42 | * companion object 43 | * manifest object 44 | 45 | We’d be very grateful if you **shared your thoughts** about these candidates in the comments. 46 | Thanks! 47 | *P.S. There was a proposal of simply using a naming convention instead of a modifier. This comment explains why we decided in favour of a modifier. Also note that this convention would be used a lot more often than others, and others are subject to reconsideration under the upcoming language design review.* 48 | -------------------------------------------------------------------------------- /original/Free Kotlin Webinar on Wednesday, October 10th.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Free Kotlin Webinar on Wednesday, October 10th" 3 | date: 2012-09-25 11:06:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/09/free-kotlin-webinar-on-wednesday-october-10th/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Join me (Andrey Breslav) and [Hadi Hariri](http://www.jetbrains.com/devnet/academy/experts/Hadi_Hariri.html) in a [webinar](https://www4.gotomeeting.com/register/662905759) about [Kotlin M3](http://blog.jetbrains.com/kotlin/2012/09/kotlin-m3-is-out/) . We will discuss the new features and our plans, give some demos and answer **your questions**. 18 | The free webinar will take place **Wednesday, October 10th at 16:00** [CET (Central European Time)](http://wwp.greenwichmeantime.com/time-zone/europe/european-union/central-european-time/) . Space is **limited**, please [register here](https://www4.gotomeeting.com/register/662905759) . 19 | Looking forward to meeting you there! And have a nice Kotlin! 20 | -------------------------------------------------------------------------------- /original/Full-Day Kotlin Workshop October 6th in Malmö, Sweden.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Full-Day Kotlin Workshop October 6th in Malmö, Sweden" 3 | date: 2014-08-20 14:53:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2014/08/full-day-kotlin-workshop-october-6th-in-malmo-sweden/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Edument_1Edument, a JetBrains Training and Consulting Partner, will be providing a full day of Kotlin hacking on Monday, October 6, 2014, in the lovely city of Malmö. 18 | 19 | * Full-Day Kotlin Workshop: learn more and register now. 20 | 21 | The hands-on workshop will begin by walking through the basic syntax, and work its way towards unit testing and language features such as object orientation and functional programming. In the afternoon we will consider use-cases such as writing a domain-specific language and seeing how the syntax and semantics of Kotlin help with some common problems that you may encounter in languages such as Java and C#. 22 | Snacks and drinks will be provided during the day. 23 | Space for this Kotlin Workshop is limited; learn more and register now 24 | -------------------------------------------------------------------------------- /original/Gradle Daemon Support for Faster Compilation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Gradle Daemon Support for Faster Compilation" 3 | date: 2015-08-05 15:20:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/08/gradle-daemon-support-for-faster-compilation/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We are currently working on improving compilation times. Today we are happy to invite you to try Kotlin `0.12.1230` making use of the Gradle Daemon. It eliminates startup costs, and your builds run faster. 18 | ## Background 19 | 20 | Among other things, loading classes of the compiler and warmup activities of the JVM seem to contribute a lot to the time it takes `kotlinc` to run. This is why we are looking into ways of using the same compiler instance over and over again: no need for loading gives better compilation times. 21 | Since other tools running on the JVM seem to suffer from the same issues, there’s substantial infrastructure facilitating such things. Gradle has its [Daemon](https://docs.gradle.org/current/userguide/gradle_daemon.html) , a long-running process (actually, it can be many processes) whose essential function is to keep tools loaded and therefore run them without the startup costs of class loading and JIT-compilation. 22 | ## Try it out 23 | 24 | We have fixed some issues that prevented Kotlin to leverage this functionality. It works reliably in Gradle 2.4 and higher (for Gradle upgrade instructions see [Gradle docs](https://docs.gradle.org/current/userguide/gradle_wrapper.html) ). Android Studio uses the daemon by default, so you don’t have much to do, simply specify Kotlin version “0.12.1230” in your `build.gradle` file: 25 | 26 | {% raw %} 27 |

28 | {% endraw %} 29 | 30 | ```kotlin 31 | buildscript { 32 |   repositories { 33 |     ... 34 |   } 35 |   dependencies { 36 |     classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.1230' 37 |     ... 38 |   } 39 | } 40 | ``` 41 | 42 | {% raw %} 43 |

44 | {% endraw %} 45 | 46 | **NOTE**: we get the full-scale speedups only after a few runs of the build. The first time we run cold and wait for the warmup, the second time most of the warmup is gone, and the build completes faster. Subsequent runs may get slightly faster too, because of the JIT. 47 | ## Feedback 48 | 49 | Please tell us if your builds have gotten faster with this change. Some project details (like LOCs and actual build times) would be appreciated. 50 | Thanks! 51 | -------------------------------------------------------------------------------- /original/Gradle Meets Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Gradle Meets Kotlin" 3 | date: 2016-05-18 06:18:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/05/gradle-meets-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Back at **JavaOne 2015**, during a lunch break we started chatting with **Hans Dockter, CEO of Gradle**. A couple of days after the conference, a few of us were at the Gradle offices talking about what would be the beginning of the collaboration between JetBrains and Gradle; to bring first-class tooling and support for a static language to Gradle. 18 | Today, at the [Kotlin Night in San Francisco](http://info.jetbrains.com/Kotlin-Night-2016.html) -------------------------------------------------------------------------------- /original/Hello World.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Hello World" 3 | date: 2011-07-19 22:13:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/07/hello-world-2/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Today at the [JVM Language Summit](http://openjdk.java.net/projects/mlvm/jvmlangsummit/) , JetBrains is unveiling the new project we’ve been working on for almost a year now. The project is **Kotlin**, a new statically typed programming language for the JVM. 18 | With Kotlin, we’re building upon the many years of experience creating development tools for different languages, and hoping to provide a language which is productive enough for today’s environment and at the same time simple enough for the ordinary programmer to learn. 19 | Right now Kotlin is under active development and nowhere near mature enough to be used by anyone outside of the development team. What you can do today is read the [language documentation](http://confluence.jetbrains.net/display/Kotlin/Welcome) and leave feedback on the design of the language — what features you like, which ones are missing, what’s confusing and so on. 20 | One thing to note: since we’re a development tools company, we’re building first-class IDE support for Kotlin in parallel with the language itself. And as soon as the language reaches its beta stage (currently planned for the end of 2011), we’ll release both the compiler and the development tools as open-source under the Apache 2 license. 21 | There’s still a huge amount of work ahead of us, and we’re excited to hear what you guys think about our latest endeavor. So let the discussions begin! 22 | -------------------------------------------------------------------------------- /original/Join Live Webinar — Functional Programming with Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Join Live Webinar — Functional Programming with Kotlin" 3 | date: 2015-10-19 12:43:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/10/join-live-webinar-functional-programming-with-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Join us this **Thursday, October 22nd, 14:00 – 15:00 GMT** (10:00 – 11:00 AM EDT) for our free webinar, [Functional Programming with Kotlin](http://info.jetbrains.com/Kotlin-Webinar-October2015-registration.html) with Mike Hearn 18 | In this talk, Mike Hearn will provide a brief introduction to programming in Kotlin via worked, practical examples, with a focus on functional programming. 19 | Topics covered will include: 20 | 21 | * Use of functional transforms 22 | * Immutability 23 | * Lazyness and working with lazy infinite sequences 24 | * The use of funKtionale, a library that extends Kotlin with a few features known from Haskell 25 | * Pattern matching 26 | * Reactive user interfaces 27 | 28 | Everyone is [welcome](http://info.jetbrains.com/Kotlin-Webinar-October2015-registration.html) ! 29 | You can ask questions to Mike and suggest themes for future webinars in comments. 30 | -------------------------------------------------------------------------------- /original/Join Live Webinar — Quasar and Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Join Live Webinar — Quasar and Kotlin" 3 | date: 2015-09-14 12:00:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/09/join-live-webinar-quasar-and-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Join us 
18 | **Wednesday, September 16th, 16:00 – 17:00 CET** (10:00 – 11:00 AM EDT) for our free webinar, [Quasar: Efficient and Elegant Fibers, Channels and Actors](http://info.jetbrains.com/Kotlin-Webinar-September2015-registration.html) with Fabio Tudone. 19 | Quasar fibers bring true lightweight threads to the JVM as well as Erlang-like actors, Go-like channels and Dataflow programming: this means we can efficiently use straightforward blocking APIs and regular stack-based control flow rather than submitting to cumbersome and infectious async and monadic styles. 20 | After an introduction about fibers, their workings and Quasar’s additional abstractions we’ll explore how Quasar uses Kotlin 21 | 22 | * data classes 23 | top-level functions 24 | lambdas 25 | annotated expressions 26 | when-expressions 27 | inline functions 28 | * top-level functions 29 | lambdas 30 | annotated expressions 31 | when-expressions 32 | inline functions 33 | * lambdas 34 | annotated expressions 35 | when-expressions 36 | inline functions 37 | * annotated expressions 38 | when-expressions 39 | inline functions 40 | * when-expressions 41 | inline functions 42 | * inline functions 43 | 44 | to offer an extremely lean and expressive API. 45 | Everyone is [welcome](http://info.jetbrains.com/Kotlin-Webinar-September2015-registration.html) ! 46 | You can ask questions to Fabio and suggest themes for future webinars in comments. 47 | -------------------------------------------------------------------------------- /original/Kotlin 1.0.1 is Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.0.1 is Here!" 3 | date: 2016-03-16 23:54:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/03/kotlin-1-0-1-is-here/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | It’s been a month since we released [Kotlin 1.0](http://blog.jetbrains.com/kotlin/2016/02/kotlin-1-0-released-pragmatic-language-for-jvm-and-android/) , and while our user base roughly doubled during this time, we prepared the first bugfix update. 18 | Kotlin 1.0.1 starts a series of 1.0.X versions delivering safe bug fixes and performance improvements to the language (as well as other parts of the project), and new features to our tools and integrations. This time it’s only relatively small IDE features, but bigger things are on the horizon for 1.0.2 and later. 19 | ## Changes in 1.0.1 20 | 21 | Please find the full change log [here](https://github.com/JetBrains/kotlin/releases/tag/1.0.1) . Some numbers and highlights: 22 | 23 | * it’s 47 fixes in the compiler, library and Gradle plugin improvements (performance), 24 | * Compatibility with Gradle 2.12, 25 | * IDE features: 26 | 27 | 28 | Compatibility with IDEA 2016, 29 | Kotlin Education Plugin (for IDEA 2016), 30 | KT-9752 More usable file chooser for “Move declaration to another file”, 31 | KT-9697 Move method to companion object and back, 32 | * Compatibility with IDEA 2016, 33 | * Kotlin Education Plugin (for IDEA 2016), 34 | * KT-9752 More usable file chooser for “Move declaration to another file”, 35 | * KT-9697 Move method to companion object and back, 36 | * and 39 assorted fixes in the IDE. 37 | 38 | We thank the participants of the EAP who tried the preview builds and reported feedback. Please join the [EAP](https://discuss.kotlinlang.org/t/kotlin-1-0-1-eap/1525) and let’s make Kotlin better together! 39 | -------------------------------------------------------------------------------- /original/Kotlin 1.0.3 Is Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.0.3 Is Here!" 3 | date: 2016-06-30 18:52:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/06/kotlin-1-0-3-is-here/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We are delighted to present **Kotlin 1.0.3**. This update is not full of brand new and shiny features, it is more about bug fixes, tooling improvements and performance boosts. That’s why you’ll like it 😉 Take a look at the full [change log](https://github.com/JetBrains/kotlin/blob/1.0.3/ChangeLog.md) and issues stats by subsystem: 18 | Kotlin 1.0.3. Fixed issues
19 |
20 | 21 | Specifically we want to express our gratitude to our contributors whose commits are included in 1.0.3 namely [Yaroslav Ulanovych](https://github.com/yarulan) , [Jake Wharton](https://github.com/JakeWharton) and [Kirill Rakhman](https://github.com/cypressious) . Kirill has done more than a dozen improvements to formatter and submitted 20+ commits — great job, Kirill, we really appreciate it. Here we also want to thank each and every one of our EAP users who tested and provided their priceless feedback on 1.0.3 prerelease builds. 22 | Although this update is not feature-rich, there are several important improvements and features which are worth highlighting here: 23 | ## What’s new in the compiler: 24 | 25 | 26 | * New option -jdk-home to specify the JDK against which the code is compiled 27 | * Options to specify Kotlin language version (-language-version) and target Java version (-jvm-target) (will have effect in 1.1, added now for forward compatibility) 28 | * More efficient bytecode (no more iterator in indices loop, avoid unnecessary operations with Unit) 29 | * Various improvements to diagnostic messages 30 | 31 | ## What’s new in the IDE: 32 | 33 | 34 | * Autosuggestion for Java to Kotlin conversion for Java code copied from browser and other sources outside of the IDE 35 | 36 | -------------------------------------------------------------------------------- /original/Kotlin 1.0.7 is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.0.7 is out" 3 | date: 2017-03-15 22:21:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-0-7-is-out/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We’re happy to announce that Kotlin 1.0.7, the last update in the Kotlin 1.0.x series, is out. The main focus of this update is to backport the fixes related to Gradle and annotation processing so that they become available to those who can’t upgrade to version 1.1 at this time. The complete list of fixes is available in the [changelog](https://github.com/JetBrains/kotlin/blob/1.0.7/ChangeLog.md) . 18 | To use the new version in your Maven or Gradle builds, simply change the Kotlin version number in your build scripts. The command-line compiler can be downloaded from the [Github release page](https://github.com/JetBrains/kotlin/releases/tag/v1.0.7) . 19 | In IntelliJ IDEA and Android Studio, we recommend to use the 1.1 version of the plugin, and to switch the language version to 1.0 if you’re using Kotlin 1.0.7 to build your project. If you do want to install the version 1.0.7 of the plugin, you can do so by downloading the version for your IDE from the [Kotlin plugin Web site](https://plugins.jetbrains.com/plugin/6954-kotlin) and using the “Install plugin from disk…” button. 20 | As usual, if you run into any problems with the new release, you’re welcome to ask for help on the [forums](https://discuss.kotlinlang.org/) , on Slack (get an invite [here](http://kotlinslackin.herokuapp.com/) ), or to report issues in the [issue tracker](https://youtrack.jetbrains.com/issues/KT) . 21 | Let’s Kotlin! 22 | -------------------------------------------------------------------------------- /original/Kotlin 1.1 Event Report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.1 Event Report" 3 | date: 2017-04-06 23:21:00 4 | author: Alina Dolgikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/04/kotlin-1-1-event-report/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | The Kotlin 1.1 release was warmly met by the community. To demonstrate the new features in Kotlin 1.1, JetBrains offered an online event. All those interested were able to watch a live stream of Andrey Breslav’s demo presentation and get their questions answered during a Q&A session. 18 | This motivated many local communities to meet up: more than 30 user groups hosted events in 21 countries. 19 | You can find the full list of the events at [the Kotlin community web page](http://kotlinlang.org/community/talks.html?time=kotlin) . Over 3000 people joined the broadcast on the day of the event. 20 | The recording of the demo presentation and the Q&A is available on YouTube: 21 | 22 | {% raw %} 23 |

24 | {% endraw %} 25 | 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | ## Kotlin 1.1 Event Feedback 32 | 33 | If you watched the live stream, we want to know what you think! Please share your feedback by [completing this form](https://docs.google.com/forms/d/e/1FAIpQLSdgKsJzwc1ToAusi-xpEiiE1O4t3HA5xjlbZXDU5Mg0i3qvNg/viewform) . It should only take about 7-10 minutes. Your input is very important in helping us improve all future Kotlin events. 34 | ## Kotlin Future Features Survey 35 | 36 | future_features_collage_2
37 | 38 | We also offered all communities to make an impact on Kotlin future. Event organizers received survey kits and event participants could have a say on the most expected features in an off-line mode. The survey gained much attention, and we’ve now placed it online to listen to the wider community. Now you can [have your say on the Kotlin future](https://docs.google.com/forms/d/e/1FAIpQLSdnCgBonEV5pwN8L903BzdYb9Baf0dpwsJ5YrKnxLveiLFkEQ/viewform) online! 39 | Please note it’s more likely that you won’t see those features in v1.2, but we will take your opinion into account when prioritizing our work. 40 | -------------------------------------------------------------------------------- /original/Kotlin 1.1 Event in Your City.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.1 Event in Your City" 3 | date: 2017-03-21 21:51:00 4 | author: Alina Dolgikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-event-in-your-city-2/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We are holding the [Kotlin 1.1 event on March 23](https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-event-2/#more-4726) . Tune in to the live stream [at JetBrains TV](http://jb.gg/kotlinevent1_1) and see **Andrey Breslav’s demo presentation** about the key features of Kotlin 1.1, including coroutines, JavaScript back-end and more. 18 | Start tweeting your questions today and get answers during the **Q&A session live stream** on March 23. Use the hashtag #kotlinqa. 19 | We hold 2 live streams to accommodate different time zones. See **the detailed schedule and guidelines** [in the blogpost](https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-event-2/#more-4726) . 20 | Check if there is a **Kotlin 1.1 event in your city**. If you don’t find a local community event, join the live stream individually. 21 | 22 | {% raw %} 23 |

Kotlin_1_1event_map

24 | {% endraw %} 25 | 26 | Please note that the time of the live stream for the US has been changed to PDT time. The first live stream will start at 9 am PDT and the second at 11 am PDT. 27 | -------------------------------------------------------------------------------- /original/Kotlin 1.1 What’s coming in the standard library.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.1: What’s coming in the standard library" 3 | date: 2017-01-25 00:15:00 4 | author: ilya.gorbunov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-whats-coming-in-the-standard-library/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | ## Java 9 preparations 18 | 19 | Java 9 is coming and brings [Project Jigsaw](http://openjdk.java.net/projects/jigsaw/spec/sotms/) to the table — the Java platform module system. One of the constraints it imposes is that no two modules can declare public API in the same package. The situation, when there are two modules that contribute to the same package, is called “split” package. 20 | We face this issue with split packages in our runtime artifacts: first, kotlin-runtime and kotlin-stdlib modules share a lot of kotlin.* packages, second, kotlin-runtime and kotlin-reflect share kotlin.reflect package. What we’re going to do to make our artifacts more friendly to the module system: 21 | 22 | 0. We merge kotlin-runtime and kotlin-stdlib into the single artifact kotlin-stdlib. Also we’re going to rename kotlin-runtime.jar, shipped in the compiler distribution, to kotlin-stdlib.jar, to reduce the amount of confusion caused by having differently named standard library in different build systems. 23 | 24 | That rename will happen in two stages: in 1.1 there will be both kotlin-runtime.jar and kotlin-stdlib.jar with the same content in the compiler distribution, and in 1.2 the former will be removed. 25 | 26 | -------------------------------------------------------------------------------- /original/Kotlin 1.1-What’s coming in the standard library.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.1: What’s coming in the standard library" 3 | date: 2017-01-25 00:15:00 4 | author: ilya.gorbunov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | translator: 13 | translator_url: 14 | source_url: https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-whats-coming-in-the-standard-library/ 15 | --- 16 | 17 | ## Java 9 preparations 18 | 19 | Java 9 is coming and brings [Project Jigsaw](http://openjdk.java.net/projects/jigsaw/spec/sotms/) to the table — the Java platform module system. One of the constraints it imposes is that no two modules can declare public API in the same package. The situation, when there are two modules that contribute to the same package, is called “split” package. 20 | We face this issue with split packages in our runtime artifacts: first, kotlin-runtime and kotlin-stdlib modules share a lot of kotlin.* packages, second, kotlin-runtime and kotlin-reflect share kotlin.reflect package. What we’re going to do to make our artifacts more friendly to the module system: 21 | 22 | 0. We merge kotlin-runtime and kotlin-stdlib into the single artifact kotlin-stdlib. Also we’re going to rename kotlin-runtime.jar, shipped in the compiler distribution, to kotlin-stdlib.jar, to reduce the amount of confusion caused by having differently named standard library in different build systems. 23 | 24 | That rename will happen in two stages: in 1.1 there will be both kotlin-runtime.jar and kotlin-stdlib.jar with the same content in the compiler distribution, and in 1.2 the former will be removed. 25 | 26 | -------------------------------------------------------------------------------- /original/Kotlin 1.1.1 is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin 1.1.1 is out" 3 | date: 2017-03-14 20:29:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-1-is-out/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Today we’re releasing the first bugfix update for **Kotlin 1.1**. The primary focus of this update is to address regressions causing incorrect code generation; we wanted to get those fixes out as quickly as possible. The details are available in the [changelog](https://github.com/JetBrains/kotlin/blob/1.1.1/ChangeLog.md) . 18 | The specific changes worth highlighting are: 19 | 20 | * Gradle incremental compilation is now enabled by default. You can still turn it off as described in the documentation if you need to. 21 | * Kotlin plugins are now available in the Gradle plugin portal. See the documentation for usage instructions. 22 | * Using function types with receivers as parameter types of JavaScript external declarations is no longer allowed. Previously, lambdas passed to such parameters weren’t invoked with correct arguments, and there’s no easy workaround for this issue, so for now we’ve decided to disable the functionality. 23 | 24 | We’ve also updated the Kotlin [Eclipse](https://marketplace.eclipse.org/content/kotlin-plugin-eclipse) and [NetBeans](http://plugins.netbeans.org/plugin/68590/kotlin) plugins to include Kotlin 1.1.1, so you can enjoy the benefits of the new Kotlin version regardless of your IDE choice. 25 | ## How to update 26 | 27 | To update the IDEA plugin, use Tools | Kotlin | Configure Kotlin Plugin Updates and press the “Check for updates now” button. Also, don’t forget to update the compiler and standard library version in your Maven and Gradle build scripts.
28 | 29 | The command-line compiler can be downloaded from the [Github release page](https://github.com/JetBrains/kotlin/releases/tag/v1.1.1) . 30 | As usual, if you run into any problems with the new release, you’re welcome to ask for help on the [forums](https://discuss.kotlinlang.org/) , on Slack (get an invite [here](http://kotlinslackin.herokuapp.com/) ), or to report issues in the [issue tracker](https://youtrack.jetbrains.com/issues/KT) . 31 | Let’s Kotlin! 32 | -------------------------------------------------------------------------------- /original/Kotlin Census 2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Kotlin Census 2017 3 | author: Roman Belov 4 | date: 2017-10-18 18:55:00 5 | source_url: https://blog.jetbrains.com/kotlin/2017/10/kotlin-census-2017/ 6 | tags: 7 | categories: 官方动态 8 | --- 9 | 10 | Hello! 11 | Every year we run the Kotlin Census survey so we can get the latest feedback from you, and how you are using Kotlin in your projects. If you still don’t use Kotlin, we would like to understand your reasons why and your opinion of the language is exceptionally important for us as well. If you filled out the survey last year, thank you, it would be really helpful if you could please do it again: we’re interested in the up-to-date information, we’ve also added a few new questions and response options based on last year’s results. 12 | As such, we’re asking you if you could kindly give us two minutes of your time and fill out the following survey. 13 | Please note that by providing us with your details, you are not automatically giving us consent to use your name, application or company name. We would always ask for written confirmation from you before doing so. 14 | 15 | {% raw %} 16 |

17 | {% endraw %} 18 | 19 | Thank you! 20 | // '); 22 | // ]]>Industry leading security – <a href=”https://www.surveygizmo.com/”>SurveyGizmo</a>. <a href=”https://www.surveygizmo.com/s3/3910712/951a8e107774??jsfallback=true”>Please take my survey now</a> 23 | -------------------------------------------------------------------------------- /original/Kotlin Eclipse Plugin 0.7 Is Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Eclipse Plugin 0.7 Is Here!" 3 | date: 2016-06-03 17:48:00 4 | author: Nikolay Krasko 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/06/kotlin-eclipse-plugin-0-7-is-here/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We are happy to present a new release of our plugin for Eclipse IDE. Along with the support for Kotlin **1.0.2** compiler, this update brings very important features and improvements. 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | The code formatting feature was rebuilt in this release. Instead of our first naive implementation we have mostly managed to port the advanced formatter from the Kotlin IntelliJ Idea plugin into Eclipse. This means that [a lot of fixes](https://youtrack.jetbrains.com/issues/KT?q=Formatter%20State:%20Fixed%20Subsystems:%20IDE) are already there and upcoming improvements will be picked up automatically! 24 | 25 | {% raw %} 26 |

27 | {% endraw %} 28 | 29 | New line auto-indent also benefitted from this code reuse and now shows far more predictable and smart behaviour. 30 | It was possible to add missing classes imports one-by-one with a quick-fix since 0.1.0 version, and now we’ve improved on that by introducing the *Organize Imports* feature. It will clean unused imports, add missing imports for classes used in the file and resort them. 31 | 32 | {% raw %} 33 |

34 | {% endraw %} 35 | 36 | Our completion got several fixes in prioritizing variants and is now far more usable. Also not-imported classes are now suggested in completion popup at once and will be inserted together with the corresponding import. 37 | 38 | {% raw %} 39 |

40 | {% endraw %} 41 | 42 | Several quick-fixes about missing or illegal modifiers were added: 43 | 44 | * It’s now possible to add an open modifier to a declaration which is overridden or subclassed. 45 | 46 | -------------------------------------------------------------------------------- /original/Kotlin Educational Plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Educational Plugin" 3 | date: 2016-03-17 18:47:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/03/kotlin-educational-plugin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We always said that Kotlin is really easy to learn. And it is! But it’s not only about the language: learning materials make a difference too. Today we are making another important step in this direction. We are happy to present Kotlin Educational Plugin. 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | Kotlin Edu is a plugin for IntelliJ [IDEA 2016.1](http://blog.jetbrains.com/idea/2016/03/intellij-idea-2016-1-is-here/) which lets you take learning courses. A course contains a number of tasks, and every task has several placeholders which you need to fill in correctly to solve it. 24 | At the moment, there is only one course — the well-known Kotlin Koans, which has been available [online](http://try.kotlinlang.org/koans) for some time and gained considerable popularity among Kotlin learners. The offline versions of the Koans has pretty similar user experience but with all strengths of refactorings and intention actions available in IntelliJ IDEA! 25 | If you have any questions about Kotlin Koans, feel free to ask them in the *#koans* channel in [our Slack](http://kotlinslackin.herokuapp.com) . 26 | P.S. If you want to create your own course, contact us directly [via email](mailto:roman.belov@jetbrains.com) . 27 | -------------------------------------------------------------------------------- /original/Kotlin Goes Open Source!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Goes Open Source!" 3 | date: 2012-02-14 10:32:00 4 | author: Ann Oreshnikova 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/02/kotlin-goes-open-source-2/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | -------------------------------------------------------------------------------- /original/Kotlin Night in London.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Night in London" 3 | date: 2016-09-28 12:48:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/09/kotlin-night-in-london/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We’re holding another [Kotlin Night](https://info.jetbrains.com/Kotlin-Night-London.html) , but this time in London. We’ve brought together members of the community that have been and are currently using Kotlin in production, to come and speak to us about their experiences. As well as share some tips and tricks. 18 | In collaboration with Trifork and GOTO London 2016, we’re holding this free event on the **12th of October 2016** at the CodeNode venue. We’ll have talks, chats and drinks.
19 | 20 | Given spaces are limited, we encourage you to [sign up sooner rather than later](https://info.jetbrains.com/Kotlin-Night-London.html) ! 21 | 22 | {% raw %} 23 |

kotlinnightlondon2016

24 | {% endraw %} 25 | 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | For details on talks, please check the [event page](https://info.jetbrains.com/Kotlin-Night-London.html) . 32 | 17:30 – 18:00 – **Registration and Welcome** 33 | 18:00 – 18:45 –** 10 Things I’m loving about Kotlin. ***Graham Tackley. Kaleida* 34 | 18:45 – 19:30 –  **Expressive Kotlin. ***Nat Pryce and Duncan McGregor, Springer Nature* 35 | 19:30 – 20:00 – **Snacks and Drinks** 36 | 20:00 – 20:45 – **Using Sealed Classes to build Concursus API. ***Dominic Fox, OpenCredo* 37 | 38 | {% raw %} 39 |

 

40 | {% endraw %} 41 | 42 | ## GOTO Conference and Kotlin Workshop 43 | 44 | We’re also offering a [discount for GOTO London 2016](https://secure.trifork.com/london-2016/registration/registration.jsp?promotionCode=kotlin100) which can be used either for the conference or the [full day Kotlin Workshop being held](https://gotocon.com/london-2016/presentations/show_presentation.jsp?oid=7892) . 45 | -------------------------------------------------------------------------------- /original/Kotlin Session and JetBrains Booth at 33rd Degree Conference.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Session and JetBrains Booth at 33rd Degree Conference" 3 | date: 2013-03-01 09:09:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/03/kotlin-session-and-jetbrains-booth-at-33rd-degree-conference/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | JetBrains and Kotlin are participating in the 33rd Degree Conference in **Warsaw, Poland**. Join 1,200 attendees **March 13-15** for [92 sessions](http://2013.33degree.org/main/schedule) from [58 speakers](http://2013.33degree.org/speaker/list) . Come by our booth and learn what’s new in **Project Kotlin**, as well as the upcoming **IntelliJ IDEA 12.1 release**. Be sure to mark your calendar for our **two sessions** with JetBrains Technical Evangelist [Hadi Hariri](https://twitter.com/hhariri) . 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | **Kotlin: Beyond Dogmatism**
24 | *Thursday, March 14th, 10:10 AM – 11:10 AM, Room D* 25 | Kotlin is a new language developed by JetBrains and licenses under Apache 2 OSS License, targeting the JVM and JavaScript. When presented, the typical questions asked are “Why another language? What core fundamentals does it bring to the table?” Tell you what, let’s move beyond dogmatism and be pragmatic. Let’s focus on the problems we’re trying to solve when developing applications and see why and how Kotlin can help us. 26 | **Developers: Prima Donnas of the 21st Century**
27 | *Friday, March 15th from 13:10 – 14:10* 28 | “We are developers. We are creators. We are misunderstood by customers, by managers and even co-workers; we are undervalued and often overworked. People don’t appreciate the value we put in our craft and our drive for innovation. We are central to business in the 21st century yet people don’t appreciate us!” Of course you are, but you also forgot to mention: You suck at communication. You often put business at risk based on personal ambitions and waste serious amounts of time trying to improve and discuss the wrong things, all in the name of the next great thing that’s going to solve it all. You’ve completely forgotten the plot! Don’t believe me? Why don’t you come along to this talk and get a wakeup call. But don’t expect to be treated nicely. 29 | For full details on the event please visit [33rd Degree Conference website](http://2013.33degree.org/) . 30 | -------------------------------------------------------------------------------- /original/Kotlin Session at Devoxx, November 16th.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Session at Devoxx, November 16th" 3 | date: 2012-11-08 12:09:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/11/devoxx-kotlin-session/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Devoxx LogoNovember 12th-16th the JetBrains team will travel to**Devoxx** in Antwerp, Belgium. We would like to invite you to stop by our **booth** and also to our **Kotlin session** with [Hadi Hariri](http://twitter.com/hhariri) . 18 | Join us for ***Putting Kotlin to the Test***, **Friday**, **November 16th** from **11:50am – 12:50pm**. 19 | We look forward to meeting you there! 20 | -------------------------------------------------------------------------------- /original/Kotlin Skills Matter Events in London, England.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Skills Matter Events in London, England" 3 | date: 2013-01-28 09:51:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/01/kotlin-skills-matter-events-in-london-england/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | JetBrains has two free Kotlin events coming to London in April and May. Both sessions will be held at [Skills Matter eXchange](http://skillsmatter.com/location-details/home/1611/96) and registration is required. We hope to see you there! 18 | **In the Brains of Andrey Breslav: Introduction to Kotlin** 19 | Join Andrey for his talk **Wednesday, April 3rd at 18:30** and get an overview of the Kotlin language and the principles behind it. Among other things, the following features will be covered: 20 | 21 | * Static null-safety 22 | * Extension functions 23 | * Higher-order functions and type-safe builders 24 | * Smart casts: Kotlin’s lightweight pattern matching 25 | * Enhancing existing Java APIs with Kotlin 26 | * Developing mixed Kotlin/Java projects 27 | 28 | **Hadi Hariri’s Introduction to Kotlin Workshop** 29 | Hadi will be hosting a free workshop **Thursday, May 2nd beginning at 9:00 AM**. There will be a **limit of 20 delegates** so you need to be quick. Lunch will be provided courtesy of JetBrains. 30 | In this hands-on workshop, you will learn about the basics of the language. You’ll discover some of the advantages that it offers, understand how to get the best of Object Orientation and Functional paradigms, create custom DSL’s and remove some of the pain of other popular languages such as Java and C#. You’ll see how to test your code, interop with existing frameworks as well as discover some of the new frameworks, such as web development frameworks, already available for Kotlin. 31 | *The workshop will be hands-on, so bring your laptop, and for the best results, have IntelliJ Ultimate OR the free Community Edition installed.* 32 | -------------------------------------------------------------------------------- /original/Kotlin Web Demo is out!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin Web Demo is out!" 3 | date: 2012-01-10 19:16:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/01/kotlin-web-demo-is-out/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | It’s been a little more than a year since the first commit was pushed to our source control, and we are happy to announce the first public preview of Kotlin. 18 | This preview works as follows: 19 | 20 | * You go to http://kotlin-demo.jetbrains.com and it loads a code editor in your browser: 21 | * You check out examples, modify them or even solve our sample toy-problems; 22 | * You run your code on a JVM running on our server, so that you can use familiar JDK classes; 23 | * Or, alternatively, you compile you code to JavaScript and run it in your browser: 24 | 25 | Note that the JavaScript back-end is a pre-alpha version, so it may refuse to compile some of your programs. 26 | 27 | 28 | {% raw %} 29 |

30 | {% endraw %} 31 | 32 | **Experimental features** 33 | By default, you get error highlighting only when you run your program. But you can try out some of the features we are experimenting with and turn on “as-you-type” error highlighting:
34 |
35 | If you choose “Server”, the editor starts talking to a type checker service hosted on our server. If you choose “Client”, a type checker is loaded as a (so far rather big) Applet which runs on your machine. 36 | Both “Server” and “Client” options give you code completion as well:
37 | 38 | Please, note that these features are **experimental** and feel free to report any problems to us. 39 | **Coming soon** 40 | This demo will be developed further for you to have more fun. Among other things we plan to add the following: 41 | 42 | * Standard Library of extension functions that make using JDK collections and other common APIs more pleasant (things like map()/filter() and so on); 43 | * Code Challenge: currently we offer a few sample problems in the form of code snippets containing test data. This will be extended to contest-like automated testing system. 44 | * More Examples: There’s always some more to show off [Have fun!](http://kotlin-demo.jetbrains.com) -------------------------------------------------------------------------------- /original/Kotlin Workshop Material for you to use.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Kotlin Workshop Material for you to use 3 | author: Hadi Hariri 4 | date: 2017-07-27 12:36:00 5 | source_url: https://blog.jetbrains.com/kotlin/2017/07/kotlin-workshop-material-for-you-to-use/ 6 | tags: 7 | categories: 官方动态 8 | --- 9 | 10 | We’ve just pushed major updates to a new repository we created that contains material for a Kotlin Workshop. In addition to code samples covering all major Kotlin topics, it has presentation slides, as well as exercises and questions for students to complete. 11 | This is material that myself and others at JetBrains are using for Kotlin workshops that we’re delivering. It is divided up into Introduction and Advanced and usually pans across two days. We’ve licensed it under Creative Commons and you are welcome to use it for yourselves to learn Kotlin and/or deliver your own workshop. And of course, being open source, contributions are more than welcome! 12 | Kotlin Workshop Material 13 | ## Reminder of upcoming workshops 14 | 15 | As a reminder, if you’re interested in attending some of the upcoming workshops, myself and Svetlana will be delivering a few in the coming months: 16 | 17 | * 14th and 15th August – Sydney, Australia 18 | * 20th September – Melbourne, Australia 19 | * 28th September – Brisbane, Australia 20 | * 4th October – Oslo, Norway 21 | 22 | Hope to see some of you there! 23 | -------------------------------------------------------------------------------- /original/Kotlin census call to action.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kotlin census: call to action" 3 | date: 2016-09-01 17:06:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/09/kotlin-census-call-to-action/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Many times we’re asked by people working with or planning to work with Kotlin, what our adoption rate is and who’s using Kotlin and what for. 18 | While we do accept [pull requests](https://github.com/JetBrains/kotlin-web-site/blob/master/_data/companies-using-kotlin.yml) and run into an occasional *tweet* we would really like to know first-hand from you, whether you’re using Kotlin in production and if so, how, and what issues you have faced. This not only helps us answer the question when someone asks about our adoption, but learn more about our community. With close to 4000 people on our [Kotlin Slack](http://kotlinslackin.herokuapp.com/) alone, it’s hard to keep track of every piece of feedback! 19 | As such, we’re asking you if you could kindly give us two minutes of your time and fill out the following survey. Please note that by providing us your details, you are not automatically giving us consent to use your name, application or company name. We would ask for written confirmation from you before doing so. 20 | Thank you! 21 | -------------------------------------------------------------------------------- /original/KotlinConf - Speaker List Announced.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: KotlinConf – Speaker List Announced 3 | author: Hadi Hariri 4 | date: 2017-07-17 14:53:00 5 | source_url: https://blog.jetbrains.com/kotlin/2017/07/kotlinconf-speaker-list-announced/ 6 | tags: 7 | categories: 官方动态 8 | --- 9 | 10 | Is it November yet? 11 | KotlinConf 2017 is a little more than 100 days away and we are super excited to announce our 48 awesome speakers! We are thrilled to have such a wonderful group of people and companies representing the Kotlin community. 12 | 13 | {% raw %} 14 |

KotlinConf

15 | {% endraw %} 16 | 17 | 18 | {% raw %} 19 |

20 | {% endraw %} 21 | 22 | Early Bird tickets have followed the lead of Super Early Bird registration, and have sold out. Regular admission tickets are available while supplies last. If you’re considering attending KotlinConf, wait no longer to register or you might miss out. 23 | As a reminder, KotlinConf will be held November 2-3 in beautiful San Francisco, California, at Pier 27. JetBrains team members and passionate community speakers will share their knowledge, experience and philosophy around Kotlin in a wonderful setting. 24 | Two days of learning, networking and fun await you. Register today and reserve your seat! 25 | We look forward to meeting you in San Francisco this fall! 26 | -------------------------------------------------------------------------------- /original/KotlinConf 2017 Session Recordings and Photos are Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: KotlinConf 2017 Session Recordings and Photos are Here! 3 | author: Robert Demmer 4 | date: 2017-12-08 12:26:00 5 | source_url: https://blog.jetbrains.com/kotlin/2017/12/kotlinconf-2017-session-recordings-and-photos-are-here/ 6 | tags: 7 | categories: 官方动态 8 | --- 9 | 10 | At last, they’re here! 11 | All KotlinConf session recordings are now available with their accompanying slides. Watch the talks you missed, and rewatch the ones you loved, all at your own leisure! While you’re at it, take a look at the newly published photo gallery and see if you can find yourself, friends, or colleagues. 12 | For a quick recap, check out the highlights video below and if you want, continue straight through the KotlinConf playlist on JetBrainsTV. 13 | We would like to thank all of our wonderful speakers and take this opportunity to highlight some of the top talks as rated by KotlinConf attendees. 14 | Top Five Rated Talks: 15 | * Kotlin Puzzlers by Anton Keks 16 | * The Road to Kotlintown by Huyen Tue Dao and Christina Lee 17 | * Two Stones, One Bird: Implementation Tradeoffs by Christina Lee 18 | * Party Keynote by Michael Carducci 19 | * How to Kontribute by Yoshinori Isogai 20 | About KotlinConf 2017 21 | The first-ever KotlinConf took place November 2-3, 2017, at Pier 27 in San Francisco, California. The conference featured 50 speakers presenting 45 talks across 3 tracks. More than 1,200 passionate attendees from 46 countries participated at KotlinConf. None of this would have been possible without our 17 event partners. 22 | Thanks to all who took part, we hope to meet many more of you at future events! 23 | -------------------------------------------------------------------------------- /original/Learn Kotlin with “Advent of Code”.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Learn Kotlin with “Advent of Code”" 3 | date: 2015-12-18 22:08:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/12/try-kotlin-with-advent-of-code/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Christmas is coming! Are you prepared? It’s time to gift yourself with a new language!
18 | 19 | Have you already checked out the amazing series of puzzles [“Advent of Code”](http://www.adventofcode.com) by [Eric Wastl](http://was.tl/) ? These tasks have pretty lean and expressive solutions in Kotlin due to it’s functional programming features. 20 | Try to solve them all! In Kotlin! 21 | 22 | {% raw %} 23 |

cover

24 | {% endraw %} 25 | 26 | You can write your solutions in [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/download/) which is free and supports Kotlin out of the box. 27 | Moreover you can solve tasks in the [Kotlin playground](http://try.kotlinlang.org) right in your browser. We’ve added special template for “Advent of Code” puzzles: 28 | 29 | {% raw %} 30 |

31 | {% endraw %} 32 | 33 | Wish You a Merry Kotlin! 34 | -------------------------------------------------------------------------------- /original/Let’s Kode Together!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Let’s Kode Together!" 3 | date: 2012-02-13 09:07:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/02/lets-kode-together/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | As [Kotlin Web Demo](http://kotlin-demo.jetbrains.com/) is the simplest way to try Kotlin. Today we unveil some new features that make it even more fun. 18 | **HTML5 Canvas** 19 | We added support for HTML5 Canvas (for the JavaScipt back-end) so that you can now do something like: 20 |
21 | Watch it in action on YouTube: [http://youtu.be/iee75Dtw83k](http://youtu.be/iee75Dtw83k) **Note** that in order to use Canvas, you need to select the JavaScript (Canvas) run configuration in the panel on the right. 22 | **Sharing your programs** 23 | Also, you can now save a program you wrote in and share a public link to it: 24 | 25 | 0. Go to the Web Demo, and log in with you Google, Facebook or Twitter account. 26 | 1. Write a program, e.g. solve a problem from the Problems section, Save it in your private space. 27 | 2. Share your solution with everyone: press the Public link button next to your saved program and press the button next to the URL, or share the link any other way. 28 | 29 | As an example, here’s a public link to the program from the video above:
30 | http://kotlin-demo.jetbrains.com/?publicLink=104074971561017308771626401859
31 | (It is written by Pavel Talanov.) 32 | **P.S.** BTW, you can now have **local functions** in your programs, as well as the new form of **when**. 33 | -------------------------------------------------------------------------------- /original/MCE2015 Kotlin Session and JetBrains Booth.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "MCE2015: Kotlin Session and JetBrains Booth" 3 | date: 2015-01-15 14:32:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/01/mce2015-kotlin-session-and-jetbrains-booth/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | **February 5th and 6th**, MCE2015 takes control of the iconic Kinoteka cinema at the **Palace of Culture and Science in Warsaw, Poland**. Initially a conference for developers by developers, this year’s event expands to embrace all mobile creators – developers, designers and tech leaders. 18 |
19 | At **MCE2015** and**JetBrains booth** will be Anastasia Kazakova, Maxim Medvedev and Svetlana Isakova, who has a talk at the conference. Come by and learn about the latest advancements in our tools for mobile development including: **Kotlin for Android** and **AppCode with Swift support**. You may also be interested in having a look at our recent interview with **Maxim discussing Swift support in AppCode**. 20 | Be sure to catch our Kotlin session on the second day of the conference. 21 | ## ***Svetlana IsakovaKotlin, the Swift of Android*** 22 | 23 | **Presented by Svetlana Isakova**
24 | **February 6th, 15:00, Auditorium 3** 25 | Apple has introduced “a better language” for iOS developers. But what options do we have for Android? Surely, Kotlin should be under consideration! Android Studio is now based on IntelliJ IDEA, the “native” environment for Kotlin. 26 | Kotlin can help you reduce the amount of code you write for Android applications and at the same time make it readable and more maintainable. In this session we’re going to see how certain constructs and DSL’s can be used to make Android more enjoyable. 27 | -------------------------------------------------------------------------------- /original/Meet the Kotlin Team at Gradle Summit.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Meet the Kotlin Team at Gradle Summit" 3 | date: 2016-06-13 13:28:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/06/meet-the-kotlin-team-at-gradle-summit/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | You’ve probably heard the news announcing that you’ll soon be able to [write your Gradle build scripts and plugins in Kotlin](https://blog.jetbrains.com/kotlin/2016/05/gradle-meets-kotlin/) . At the Kotlin Night in San Francisco, Hans Dockter from Gradle demoed the first prototype of the support. After the initial announcement, we’ve continued our work together with the Gradle team to flesh out the prototype and bring it closer to the release. And next week, at the [Gradle Summit in Palo Alto](https://gradlesummit.com/) , we’ll be sharing the details on our progress. 18 | In addition to presentations by Gradle developers and users, you’ll see [the keynote by Dmitry Jemerov from the Kotlin team](https://gradlesummit.com/schedule/kotlin) , talking about the DSL support features of Kotlin and their use in the Gradle build script DSL. And in the expo area, you’ll be able to chat with developers working on Kotlin, IntelliJ IDEA and TeamCity, who will help you with any questions related to the use of Gradle together with JetBrains products. 19 | The summit will be on June 23-24th in Palo Alto, California, and [the registration is open](https://info.gradlesummit.com/conference/palo_alto/2016/06/register) . Looking forward to seeing you there! 20 | -------------------------------------------------------------------------------- /original/More Deprecations Coming.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "More Deprecations Coming" 3 | date: 2015-04-06 12:55:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/04/more-deprecations-coming/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | There are two more items on the language cleanup list: backing-field syntax and static type assertion operator. 18 | ## Backing Fields 19 | 20 | When you have a property and you don’t implement at least one of its accessors (`get` or `set`) manually, such a property gets a *backing field*, i.e. a piece of storage holding its value: 21 | 22 | {% raw %} 23 |

24 | {% endraw %} 25 | 26 | ```kotlin 27 | var foo: Foo? = null 28 |     set(v) { 29 |         ... 30 |     } 31 |     // default getter is used 32 | ``` 33 | 34 | {% raw %} 35 |

36 | {% endraw %} 37 | 38 | you can access the backing field through the name of the property prefixed with the `$` sign: 39 | 40 | {% raw %} 41 |

42 | {% endraw %} 43 | 44 | ```kotlin 45 | $foo = 2 46 | ``` 47 | 48 | {% raw %} 49 |

50 | {% endraw %} 51 | 52 | This may be needed to bypass the custom accessor(s). 53 | This feature is rather rarely used, and also clashes visually with string templates (`"$foo"`, surprisingly, has nothing to do with backing fields), so we want to get rid of it. 54 | In case you really need it, your workaround is *backing property*: 55 | 56 | {% raw %} 57 |

58 | {% endraw %} 59 | 60 | ```kotlin 61 | private var _backing: Foo? = null 62 | var foo: Foo? 63 |     get() = _backing 64 |     set(v) { 65 |         ... 66 |     } 67 | ``` 68 | 69 | {% raw %} 70 |

71 | {% endraw %} 72 | 73 | Since no getters or setters are generated for private properties, the resulting byte code will be exactly the same. 74 | ## Static Type Assertions 75 | 76 | Another rarely used feature is the following syntax: 77 | 78 | {% raw %} 79 |

80 | {% endraw %} 81 | 82 | ```kotlin 83 | foo(bar, null: Baz) 84 | ``` 85 | 86 | {% raw %} 87 |

88 | {% endraw %} 89 | 90 | The type after colon in an expression specifies the *expected static type* of it, i.e. this is not a cast, but simply an instruction to the compiler to make sure that the static type of this expression is actually “Bar”. The fact that it’s hard to explain has something to do with this being rarely used (I think Kotlin’s test data is the only major client). So, we are withdrawing this syntax, and maybe will make use of it later (possibilities include array/list slices and C-style ternary conditionals). 91 | In case you needed this syntax to disambiguate your overloads, `as` is a good workaround. 92 | -------------------------------------------------------------------------------- /original/Our first book about Kotlin is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Our first book about Kotlin is out" 3 | date: 2017-02-10 20:00:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/02/our-first-book-about-kotlin-is-out/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We’re happy to announce that [Kotlin in Action](https://www.manning.com/books/kotlin-in-action) – a book about Kotlin written by the members of the Kotlin team – is now out, as both a eBook and a printed book. The book is written for experienced Java developers and covers all aspects of the language, without focusing on any specific problem domain. We received a lot of positive feedback about the book during Manning’s Early Access Preview program, so we hope that you’ll enjoy it too! 18 | 19 | {% raw %} 20 |

Kotlin in Action book

21 | {% endraw %} 22 | 23 |
24 | 25 | Two chapters from the book, covering Kotlin’s type system and its support for domain-specific languages, are available as a [free preview](https://www.manning.com/books/kotlin-in-action#downloads) on the publisher’s Web site. And in our online mini-IDE for Kotlin, you can try out all examples from the book, starting from the [very first one](http://try.kotlinlang.org/#/Kotlin%20in%20Action/chapter%201/1.1/1.1_ATasteOfKotlin.kt) , also for free. 26 | To accompany the release of the book, Manning is offering a special discount, valid today only: you can get half off the book if you enter the code *dotd021017au* during checkout. 27 | Happy reading, and have a nice Kotlin! 28 | -------------------------------------------------------------------------------- /original/Slides and Video Kotlin@JVMLS 2011.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Slides and Video: Kotlin@JVMLS 2011" 3 | date: 2011-09-07 15:25:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/09/video-kotlinjvmls-2011/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Our slides and video from the JVM Language Summit 2011 is available via [Dr. Dobb’s](http://drdobbs.com/java/231500204) . Enjoy. 18 | -------------------------------------------------------------------------------- /original/Slides from the JVM Language Summit presentations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Slides from the JVM Language Summit presentations" 3 | date: 2011-07-20 23:16:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/07/slides-from-the-jvm-language-summit-presentations/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Just a quick note: we’ve published the slides from the presentation and workshop that we gave on the JVM Language Summit.
18 | The [presentation](http://confluence.jetbrains.net/download/attachments/40702623/JVMLS_talk_2011.pdf?version=1&modificationDate=1311201742425) covers higher-order functions and typesafe builders, and the [workshop](http://confluence.jetbrains.net/download/attachments/40702623/JVMLS_workshop_2011.pdf?version=1&modificationDate=1311201781543) covers classes, multiple inheritance, generics and class objects. 19 | -------------------------------------------------------------------------------- /original/Spek – A Specification Framework.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Spek – A Specification Framework" 3 | date: 2014-02-17 17:20:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2014/02/speka-specification-framework/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | For a while now, a [few](http://twitter.com/orangy) [of](http://twitter.com/jonyzzz) [us](https://plus.google.com/111179551284404865949/about) have been working on a project called Spek, a framework that allows you to write executable specifications. It allows you to write specifications (i.e. tests) in a more human-readable, and what’s more important, descriptive manner, without having to resort to long test names, underscores or regular expressions. 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | It’s now reached its first milestone where it’s suitable enough to start being used on projects and we’re ready for feedback and feature requests! It even has its [own site](http://jetbrains.github.io/spek) . 24 | ## A brief introduction 25 | 26 | Spek is a Specification Framework. If you’re familiar with Jasmine, Mocha, RSpec or Machine Specifications, then you’ll immediately see the resemblance. 27 | 28 | {% raw %} 29 |

image

30 | {% endraw %} 31 | 32 | If you’re not familiar, let me briefly explain: 33 | 34 | * Given – Establish the context of the test, i.e, Arrange 35 | * On – Execute the action, i.e. Act 36 | * It – Validate the results, i.e. Assert 37 | 38 | Spek allows you to have more than one action for the same context. That is for the same *given*you can have multiple *on’s*. It also allows you to have more than assertion (*it) *for the same action. 39 | ## Spek is not only for Kotlin 40 | 41 | Spek is written in Kotlin. Specifications you write will also be in Kotlin. However, as Kotlin is 100% compatible with Java, you can test new and existing Java code with Spek. 42 | ## How do I run it? 43 | 44 | IntelliJ IDEA supports Spek, so does TeamCity. There’s also a console runner which outputs Text and HTML (needs improvement). 45 | 46 | {% raw %} 47 |

image

48 | {% endraw %} 49 | 50 | ## Try it 51 | 52 | Hoping that you like what you see, head over to the [Spek web site](http://jetbrains.github.io/spek) to find out more. It’s still in “EAP” so the more issues reported, the better. And since it’s OSS (Apache 2) [contributions are more than welcome](http://github.com/jetbrains/spek) . 53 | -------------------------------------------------------------------------------- /original/StrangeLoop Slides+Video.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "StrangeLoop Slides+Video" 3 | date: 2011-11-17 16:47:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/11/strangeloop-slidesvideo/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Slides and video from the talk I gave at [StrangeLoop](https://thestrangeloop.com/sessions/the-kotlin-programming-language) this year is available [here](http://www.infoq.com/presentations/The-Kotlin-Programming-Language) :
18 |  19 | -------------------------------------------------------------------------------- /original/Talk @ GeekOUT Tallinn Language Design Trade-Offs (Kotlin and Beyond).md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Talk @ GeekOUT Tallinn: Language Design Trade-Offs (Kotlin and Beyond)" 3 | date: 2013-06-10 15:27:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/06/talk-geekout-tallinn-language-design-trade-offs-kotlin-and-beyond/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | This week I’m speaking at [GeekOUT Tallin](http://geekout.ee/) , and my colleagues Mikhail Vink and Sergey Karashevich are holding a 15-minute DEMO on Thursday, telling you about cool stuff in JetBrains’ IDEs. 18 | The topic of my talk is “**Language Design Trade-Offs (Kotlin and Beyond)**“, so one can summarize it as “why designing languages is SO interesting”. 19 | 20 | {% raw %} 21 |

22 | {% endraw %} 23 | 24 | **Abstract** 25 |

If your programming language is small, you’re probably born before 1950, and your first computer was bigger than your present apartment. And even those languages are not so small. One spends quite some time to master a programming language. Why?

26 |

Because there are very many decisions “compressed” into the form of a language. Nothing limits a programmer’s imagination like a compiler, and nothing limits a language design like a real world with all of its “legacy”, compatibility concerns, performance limitations, generations-old habits and leaky abstractions.

27 |

This talk is about tradeoffs: why we, as language designers, do (or rather did) this and not that.

28 | See you on [Friday, 14 June 2013 11:30 @ Room 2](http://geekout.ee/schedule/andrey-breslav-jetbrains-building-jvm-languages/) UPD: 29 | 30 | * Slides for this talk 31 | * More slides and videos about Kotlin 32 | 33 | -------------------------------------------------------------------------------- /original/The Kotlin issue tracker is now public.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "The Kotlin issue tracker is now public" 3 | date: 2011-08-03 10:24:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/08/the-kotlin-issue-tracker-is-now-public/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Following the tradition of other JetBrains projects, we’ve opened up the issue tracker for Kotlin to the public. In the issue tracker, you can see some of our thinking and things we’re working on, and you can also file issues asking for new features in the language or changes in the current design. We hope that the tracker will let us keep the discussion more structured than the comments in the blog and on Confluence pages. 18 | The URL for the tracker is: [http://youtrack.jetbrains.net/issues/KT](http://youtrack.jetbrains.net/issues/KT) -------------------------------------------------------------------------------- /original/Try Kotlin in Your Browser New Look and More Features.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Try Kotlin in Your Browser: New Look and More Features" 3 | date: 2015-04-16 20:24:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/04/try-kotlin-in-your-browser-new-look-and-more-features/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We released [Kotlin Web Demo](http://kotlin-demo.jetbrains.com) quite a while ago, it did a good job helping people try Kotlin right in the browser and share runnable code with each other. Now, a shiny new version is ready, it’s time to retire the old one. 18 | Meet [try.kotlinlang.org](http://try.kotlinlang.org) , as new incarnation of a web-based mini-IDE for Kotlin. 19 | ## Features 20 | 21 | The new version brings 22 | 23 | * Shiny new design 24 | * Full-screen mode 25 | * JUnit support (including a smart Test Results view) 26 | * Multi-file projects (some files in our examples, such as tests, are read-only) 27 | * Navigation from stack traces to code 28 | 29 | 30 | {% raw %} 31 |


32 | try.kotlinlang.org
33 |

34 | {% endraw %} 35 | 36 | ## Sharing Your Code 37 | 38 | You can log in with your Google, Facebook or Twitter accounts. When logged in, you can create new projects and copy example projects to change them. 39 | Any saved project (our example or your custom code) can be shared by **simply copy-and-pasting the link from the address bar**. 40 | For example, here’s a [link to an example program](http://try.kotlinlang.org/#/Examples/Problems/Sum/Sum.kt) .
41 | And this is [the link to my code about expressing Go’s defer as a Kotlin library](http://try.kotlinlang.org/#/UserProjects/-1984665128/1040749715610173087711460271843) . 42 | ## Old Web Demo 43 | 44 | The old Web Demo is retired, and put into a read-only mode for the time being. You can still run your programs, but can not modify them or create new ones. 45 | All accounts and programs created for Kotlin Web Demo have been migrated to [try.kotlinlang.org](http://try.kotlinlang.org) . 46 | ## Feedback 47 | 48 | Your feedback is welcome, as usual. 49 | **Enjoy**! 50 | -------------------------------------------------------------------------------- /original/Type-Safe Web with Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Type-Safe Web with Kotlin" 3 | date: 2013-06-17 18:13:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/06/type-safe-web-with-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | We [told you](http://blog.jetbrains.com/kotlin/2013/01/an-interview-with-andy-selvig-author-of-kara-web-framework/) about [Kara Web Framework](http://karaframework.com/) a while ago. It is written in Kotlin and relies on type-safe builders. It doesn’t have to be the only web framework for Kotlin, but the general principles seem good, so I wrote an article about these principles: **Type-Safe Web with Kotlin**, it gives an overview of the framework design, and then gives many details about builders, extensions and so on. 18 | **Examples** used in this article are available at [https://github.com/abreslav/kara-files/blob/master/src/tutorial.kt](https://github.com/abreslav/kara-files/blob/master/src/tutorial.kt) and [https://github.com/abreslav/kara-files/blob/master/src/small_builder.kt](https://github.com/abreslav/kara-files/blob/master/src/small_builder.kt) **Slides** from my talk given at JPoint in Saint Petersburg are also available [online](https://prezi.com/hndtabwcfy5h/type-safe-web-with-kotlin-jpoint/) .
19 | The talk was given in Russian, video accessible is [here](http://javapoint.ru/talks/12/) . 20 | -------------------------------------------------------------------------------- /original/Use Kotlin with npm, webpack and react.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Use Kotlin with npm, webpack and react" 3 | date: 2017-04-18 15:23:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/04/use-kotlin-with-npm-webpack-and-react/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | With Kotlin 1.1, targeting JavaScript in the Kotlin compiler has officially reached production-ready status. Of course, having compiler support is not enough to be able to solve real-life problems, so we continue our work on integrating Kotlin into the larger JavaScript ecosystem. 18 | Today, we’d like to present two new projects: a Gradle plugin integrating Kotlin with npm, webpack and karma, and a full-stack application sample with a Kotlin/JVM backend and a Kotlin/JS frontend built with React. 19 | ## Kotlin Frontend Plugin 20 | 21 | The [Kotlin frontend plugin](https://github.com/Kotlin/kotlin-frontend-plugin) allows you to build and deploy a Kotlin frontend application using webpack. You can use npm packages as dependencies of your application, and the plugin will take care of downloading them and bundling them into the resulting JS file. The plugin also integrates with Karma, allowing you to run the tests of your application. And for optimal workflow, the plugin supports continuous compilation and hot reload, ensuring that you always see an up-to-date version of your application in the browser. 22 | The [README](https://github.com/Kotlin/kotlin-frontend-plugin/blob/master/README.md) file gives instructions for using the plugin, and the examples directory contains a [simple example](https://github.com/Kotlin/kotlin-frontend-plugin/tree/master/examples/frontend-only) showing how you can apply it in a real project. 23 | ## Kotlin React Example [Thinkter](https://github.com/Kotlin/kotlin-fullstack-sample) is an example of a modern full-stack application built in Kotlin. The backend runs under Jetty and uses [Ktor](https://github.com/kotlin/ktor) , a Kotlin Web application framework developed by the Kotlin team. The frontend uses React; a set of React wrappers for Kotlin is [provided as part of the project](https://github.com/Kotlin/kotlin-fullstack-sample/tree/master/frontend/src/org/jetbrains/react) . You’re welcome to use the wrappers in your project and adapt them to your own needs. Note that we’re working on evolving the React wrappers internally, and we’re considering releasing them as a separate open-source library. 24 | To see what Kotlin React code looks like, you can check out [one of the components](https://github.com/Kotlin/kotlin-fullstack-sample/blob/master/frontend/src/org/jetbrains/demo/thinkter/NewThoughtComponent.kt) of the application. 25 | Your feedback on these releases is very much welcome! Please file issues on GitHub, stop by the [forums](https://discuss.kotlinlang.org/) , or join the #javascript channel on the [Kotlin Slack](http://slack.kotlinlang.org/) . 26 | -------------------------------------------------------------------------------- /original/Webinar Recording Functional Programming with Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Webinar Recording: Functional Programming with Kotlin" 3 | date: 2015-11-05 13:21:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/11/webinar-recording-functional-programming-with-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | The recording of our October 22nd webinar, **Functional Programming with Kotlin**, is now available on [JetBrainsTV YouTube channel](https://youtu.be/AhA-Q7MOre0) . 18 | In this talk, Mike Hearn provides a brief introduction to programming in Kotlin via practical example: creating a textfield with the autocomplete suggestions while typing. Demo project is available on [GitHub](https://github.com/mikehearn/KotlinFPWebinar) . 19 | Topics covered include: 20 | 21 | * Use of functional transforms 22 | * Immutability 23 | * Lazyness and working with lazy infinite sequences 24 | * The use of funKTionale, a library that extends Kotlin with a few features known from Haskell 25 | * Pattern matching 26 | * Reactive user interfaces 27 | 28 | 29 | {% raw %} 30 |

31 | {% endraw %} 32 | 33 | 34 | {% raw %} 35 |

36 | {% endraw %} 37 | 38 | The video includes the time stamps following the [agenda announced](http://blog.jetbrains.com/kotlin/2015/10/join-live-webinar-functional-programming-with-kotlin/) :
39 | `00:08` — Intoduction and demo application
40 | `05:00` — `apply` function
41 | `05:45` — Introduce NGram data class
42 | `08:22` — Creating extension methods
43 | `09:55` — Working with lazy infinite sequences
44 | `10:35` — `map` function
45 | `11:10` — `to` function and infix notation
46 | `14:35` — Destructuring of data classes
47 | `19:20` — `filter`, `let` and `all` functions
48 | `23:00` — Debug lazy code
49 | `24:20` — Add completions to UI
50 | `25:18` — Load data in a functional way
51 | `28:30` — Improve performance of the data loading
52 | `33:20` — Improve the UI responsiveness in RX style
53 | `40:05` — Using [Kovenant](https://github.com/mplatvoet/kovenant) library
54 | `42:03` — Using [funKTionale](https://github.com/MarioAriasC/funKTionale) library
55 | `44:10` — Currying
56 | `45:35` — Questions 57 | About the Presenter: 58 | Thanks to all the attendees for the questions! If you still have some, please, contact Mike or our team. 59 | You are welcome to suggest themes for future webinars in comments. 60 | *Let’s kotlin!* 61 | -------------------------------------------------------------------------------- /original/Webinar Recording. Quasar Efficient and Elegant Fibers, Channels and Actors.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Webinar Recording. Quasar: Efficient and Elegant Fibers, Channels and Actors" 3 | date: 2015-09-21 13:40:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/09/webinar-recording-quasar-efficient-and-elegant-fibers-channels-and-actors/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | The recording of our September 16th webinar, **Quasar: Efficient and Elegant Fibers, Channels and Actors**, is now available on [JetBrainsTV YouTube channel](https://youtu.be/Nmob2MB2Qo8) . 18 | In this webinar, Fabio Tudone shows how to use Quasar for creation of highly concurrent software. He covers basics of Kotlin syntax and shows how Quasar uses Kotlin strengths to offer concise and expressive API. 19 | Demo project is available on [GitHub](https://github.com/circlespainter/quasar-kotlin-jetbrains-webinar/releases) . 20 | The video includes the time stamps following the [agenda announced](http://blog.jetbrains.com/kotlin/2015/09/join-live-webinar-quasar-and-kotlin/) :
21 | 00:55 – What are Quasar and Fibers?
22 | 12:22 – What are Quasar Channels?
23 | 15:50 – What are and why using Quasar Fibers?
24 | 21:15 – From Async to efficient Fiber-Sync with Quasar
25 | 27:13 – Quasar Actors and Selective Receive
26 | 37:54 – Quasar Dataflow
27 | 45:19 – Pulsar: Quasar’s idiomatic API for Clojure
28 | 45:19 – Comsat: existing APIs on steroids with Quasar Fibers
29 | 47:07 – Comsat Web Actors for HTTP, SSE and WebSockets
30 | 49:58 – Capsule: deploy Quasar and any JVM applications 31 | 32 | {% raw %} 33 |

34 | {% endraw %} 35 | 36 | About the Presenter: 37 | Thanks to all the attendees for the questions! If you still have some, please, contact Fabio or our team. 38 | You are welcome to suggest themes for future webinars in comments. 39 | *Let’s kotlin!* 40 | -------------------------------------------------------------------------------- /original/Webinar recording Developing Multiplatform Projects in Kotlin 1.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Webinar recording: Developing Multiplatform Projects in Kotlin 1.2 3 | author: Roman Belov 4 | date: 2017-12-11 19:07:00 5 | source_url: https://blog.jetbrains.com/kotlin/2017/12/webinar-recording-developing-multiplatform-projects-in-kotlin-1-2/ 6 | tags: 7 | categories: 官方动态 8 | --- 9 | 10 | Last week the webinar “Developing Multiplatform Projects in Kotlin 1.2” took place. Thanks to all participants for coming and good questions. Today we are happy to publish the recording of it. Don’t hesitate to suggest more themes for new webinars in comments. See you next time! 11 | 12 | {% raw %} 13 |

14 | {% endraw %} 15 | 16 | 17 | {% raw %} 18 |

19 | {% endraw %} 20 | 21 | A flagship feature of Kotlin 1.2 is building multiplatform projects. A multiplatform project allows you to reuse your business logic code, written in Kotlin, between all tiers of an application – the server code running under the JVM, the browser running JavaScript, as well as mobile apps. The shared portion of the code is compiled to all platforms and may delegate to platform-specific implementations of certain APIs or libraries. The platform-specific parts are also written in Kotlin and have full access to the features of each of the supported platforms. 22 | In this talk, we’ll look at the language and IDE features that enable multiplatform development in Kotlin, as well as libraries that can be used in multiplatform code. We’ll study an example project that demonstrates isomorphic HTML rendering (reusing the rendering code between the frontend and the backend), as well as other features of Kotlin multiplatform development. 23 | About the Presenter: 24 | -------------------------------------------------------------------------------- /translated/A New Open Source Web Site.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]A New Open Source Web Site" 3 | date: 2014-07-15 09:00:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2014/07/a-new-open-source-web-site/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们有一个新的网站和一个新的 [域!](http://kotlinlang.org) {% raw %} 18 |

Main Page

19 | {% endraw %} 20 | 21 | ## 22 | 23 | 24 | 它是开源的 25 | 26 | 开发一种开源语言,没有开源网站和文档是没有意义的。我们通过逐渐将所有旧站点从以前的平台移植到 Jekyll。新网站全部以 Markdown(实际上是 Kramdown,Markdown 的风格)编写,并在 GitHub 上托管。事实上,我们已经很容易做出贡献。几乎每一页都有一个编辑页图标: 27 | 28 | {% raw %} 29 |

EditPage

30 | {% endraw %} 31 | 32 | ### 贡献欢迎 33 | 34 | 网站上还有一些待处理的项目。我们仍然需要移植在作品中的整个语法。此外,API 文档仍然需要移植。我们正在做很多工作,但由于这是一个开放源码项目,欢迎任何和所有的贡献。所以如果你还没有准备好为 Kotlin 源代码做贡献, [请提供文档,教程和其他内容](http://kotlinlang.org/contribute.html) 。我们可以使用我们可以获得的所有帮助。 35 | 如果你想贡献,修改或任何东西,只需点击它,并在浏览器中直接在 GitHub 上编辑并发送拉出请求。您当然也可以使用 Jekyll 进行存储库并进行本地更改。有关的说明 [存储库页面](https://github.com/JetBrains/kotlin-web-site) 。 36 | ## 新内容 37 | 38 | 文档部分是所有资源 Kotlin 的切入点。 39 | 40 | {% raw %} 41 |

FAQ

42 | {% endraw %} 43 | 44 | 除了已经移植现有的文档外,我们还有新的教程,视频截屏和更多的文档。我们还列出了所有活动以及外部资源部分,其中介绍了为 Kotlin 编写的 OSS 项目。 45 | ### Kotlin Koans 46 | 47 | 与网站一起,我们发布了一个新的教程,这是一系列以单元测试失败的形式的练习,可以让您快速上手,不仅使用 Kotlin 语法,还可以使用一些习语。 [你能让他们全部通过吗?](http://kotlinlang.org/docs/tutorials/koans.html) ## 48 | 49 | 50 | 社区资源 51 | 52 | 我们收集了大部分社区资源 [单页](http://kotlinlang.org/community.html) 。 53 | 看一看。试试看。让我们知道你的想法。 54 | -------------------------------------------------------------------------------- /translated/Announcing KotlinConf.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Announcing KotlinConf" 3 | date: 2017-03-14 21:57:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/announcing-kotlinconf/ 13 | translator: SnakEys 14 | translator_url: https://github.com/SnakeEys 15 | 16 | --- 17 | 在过去一年中,我们看到了Kotlin在编程语言中的显著成长,其表现不仅仅是Github社区的代码行数([自1.0版本发布以来800万行新增代码](https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1/)),同样还包括众多公司向我们介绍和反馈Kotlin的使用情况、社区成员在各类大会中所提及的次数,新的框架、依赖库以及用户群组社区数量都呈以数量级的增加。 18 | 19 | 为了感谢令人赞叹的Kotlin社区,也为了分享Kotlin中无比令人兴奋的事情,我们很高兴的宣布将于2017年11月在旧金山举办一场为期两天的盛会:[KotlinConf](https://kotlinconf.com/)。 20 | 21 | {% raw %} 22 | KotlinConf 23 | {% endraw %} 24 | 25 | 26 | 我们会在近期开启早鸟预订,赶快注册吧。 27 | 28 | ### 征文企事 29 | 本次演讲的嘉宾包括**Andrey Breslav**以及**Erik Meijer**,当然我们会在短期内宣布更多的嘉宾以及主题。但这场盛会最不可或缺的人就是你,作为Kotlin社区的成员也可以参与到此次活动中来。因此,我们诚邀您来与我们分享与Kotlin相关的内容。2017年5月1日之前您都可以向我们提交相关主题。 30 | 31 | 关于此次活动若有任何疑问,请发送邮件至[info@kotlinconf.com](info@kotlin.com),或在[Slack](https://kotlinlang.slack.com/)上使用#kotlinconf标签向我们提问,赞助行为请联系[sponsorship@kotlinconf.com](sponsorship@kotlinconf.com)。 32 | 33 | **2017对于Kotlin而言注定是不平凡的一年,希望能在11月与您共同庆祝** -------------------------------------------------------------------------------- /translated/Announcing the Support Program for Kotlin User Groups and Events.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Announcing the Support Program for Kotlin User Groups and Events" 3 | date: 2017-01-30 21:42:00 4 | author: Alina Dolgikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/01/announcing-the-support-program-for-kotlin-user-groups-and-events/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 今天我们推出了一个新的 [社区部分在我们的网站](https://kotlinlang.org/community/) ! 18 | 19 | {% raw %} 20 |

Explore Kotlin Community

21 | {% endraw %} 22 | 23 | 它将为您提供组织 Kotlin 相关活动的准则,以及 JetBrains 管理的支持说明。我们现在很高兴地宣布,我们已经正式确定了 Kotlin 周围的用户组和活动的支持流程。 24 | 令人兴奋的是,到 2016 年,全球超过 15 万的开发商尝试了 Kotlin。我们现在有一个惊人的社区,这使我们能够举办 Kotlin 专门的会谈和聚会。我们还举行了两场 Kotlin 之夜:第一场 [在旧金山](https://blog.jetbrains.com/kotlin/2016/06/kotlin-night-recordings/) 另一个 [在伦敦](https://blog.jetbrains.com/kotlin/2016/09/kotlin-night-in-london/) 。更好的是,你,社区,开始组织这些活动,我们在这里帮助。看到更多 Kotlin 夜的需求也是很好的。 25 |
26 | 27 | 我们提供以下程序: 28 | ## [Kotlin 用户组支持计划](https://kotlinlang.org/community/user-groups.html) [我们感谢您的工作,并希望能帮助您找到合作伙伴和演讲者,并帮助您推广您的活动。我们可以给你赃物,并给你一个建议。请](https://docs.google.com/forms/d/e/1FAIpQLSdkLbD_SPbXZDVW2nQPgUiLCW4HOSXysOVK1jPLcShPfyhkNA/viewform) 填写您的用户组的表单 [ 或者随时通过](mailto:alina@jetbrains.com) 电子邮件。 29 | ## [Kotlin 之夜支援计划](https://kotlinlang.org/community/kotlin-nights.html) [我们鼓励所有想组织 Kotlin Nights 活动的人这样做。我们可以在商品方面提供支持,并通过媒体渠道宣传您的活动。我们有一个 Kotlin Night Kit 可供您使用,其中包括准则,品牌宣传材料和演讲者和参加者的 sw。。如果您需要帮助接触潜在的合作伙伴或任何其他步骤,请随时 ping 我们](mailto:alina@jetbrains.com) 电子邮件。 30 | ## [Kotlin Talks&Speakers 支持](https://kotlinlang.org/community/talks.html) [如果您是演讲者,请告诉我们即将举行的活动,我们将向您发送一件 T 恤和贴纸给与会者。顺便说一句,他们可以在线为大家在线](https://www.stickermule.com/user/1069238064/stickers) Stickermule [ 和](https://www.ptxstore.com/jetbrains/product_info.php?products_id=3011) 服装店 [。查看新活动网页和](https://docs.google.com/forms/d/e/1FAIpQLSfeXstxUcBsOypWtE9McIpYU82szB3yIYkU-30fNXOVoJocEQ/viewform) 提交你的演讲 [ 出现在全球](https://kotlinlang.org/community/talks.html) Kotlin 活动地图。 31 | JUG 和 GDG 也被鼓励参与!如果您有 Kotlin 相关的会谈或专门的会议, [提交他们](https://docs.google.com/forms/d/e/1FAIpQLSfeXstxUcBsOypWtE9McIpYU82szB3yIYkU-30fNXOVoJocEQ/viewform) 我们将为您找出最佳的支持计划。 32 | 此外,我们为软件开发的用户组提供了标准的 JetBrains 社区支持计划,以及社区驱动的事件,而不仅仅是 Kotlin 相关的。 [你可以很容易地在这里申请](https://www.jetbrains.com/support/community/?fromMenu#section=communities) 。 33 | 如果你有任何问题,请 ping [阿丽娜](mailto:alina@jetbrains.com) 谁会乐意帮你的。 34 | -------------------------------------------------------------------------------- /translated/Calling on EAPers.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Calling on EAPers" 3 | date: 2016-08-04 21:44:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/08/calling-on-eapers/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 在 JetBrains,我们一直相信我们的早期访问计划的工具,让开发人员有机会在准备好后立即使用最新的功能或修复程序。我们已经遵循了与 Kotlin 相同的理念,当然知道用语言,一些决定可能会困扰你的生活。 18 | 这就是为什么在 Kotlin 的发布之前,我们将会有里程碑式的发布,其功能和重要的变化对我们早期的采用者(包括我们自己在 JetBrains),收集关于是否按设计工作的反馈。这个发布 - 反馈调整周期在许多场合已被证明是非常宝贵的,并且肯定有助于塑造 Kotlin 1.0。 19 | 但是还没有结束。我们仍然继续使用新的语言功能开发 Kotlin,我们需要您的持续支持。如你所知,我们有两个“分支”的 EAP,1.0.X 更多关于错误修复和工具,和 1.1 EAP 是关于语言变化。而且,这些 EAP 是具有语言变化的 EAP,在那里我们可以真正地使用您的帮助。虽然我们不建议您在生产代码中使用这些 1.1 EAP,但我们绝对需要您给我们反馈。作为回报,我们承诺听你说的​​一切! 20 | ## 使用 EAP 的 21 | 22 | 访问 EAP 的最简单方法是通过“工具”菜单。打开*工具 | Kotlin | 在主菜单中配置 Kotlin 插件更新*,选择早期访问预览频道 1.0.x 或 1.1,然后按*检查更新*按钮。
23 | “img alt =”屏幕截图“,在 17.55.03 的屏幕截图”class =“alignnone size-full wp-image-4126”data-recalc-dims =“1”src =“https://i0.wp。 com / blog.jetbrains.com / kotlin / files / 2016/08 / Screen-Shot-2016-08-01-at-17.55.03.png?w = 640& ssl = 1“/>
24 | 25 | 要使用 Maven 或 Gradle 的新版本,请执行以下操作:添加*https://dl.bintray.com/kotlin/kotlin-eap*或*https://dl.bintray.com/kotlin/kotlin -eap-1.1*作为项目的存储库 26 | 目前 Kotlin 1.1 的第一个 EAP 可用(协同程序),键入别名,绑定的可调用引用,本地委托属性,Java 7/8 支持和更多)。今天我们刚刚发布了 Kotlin 1.0.4 的第一个 EAP 版本,在编译器和 IDE 中有很多错误修复,一系列新的意图,检查和 quickfix,现在完全兼容于 Gradle 2.14.1。有关更多信息,请查看完整的 Kotlin 1.0.4 更改日志* 27 | ## 给予反馈 28 | 29 | Kotlin 的大部分团队都可以在我们的公众场合 [松散的社区](http://kotlinslackin.herokuapp.com) ),特别是在#eap 频道上,​​我们非常渴望听取您的意见,并帮助您解决任何问题或问题。当然,我们的 [问题追踪器](http://kotl.in/issue) 总是开放的 30 | Kotlin 的主要目标之一,一直是使其成为务实的工业语言。而且它是通过使用 Kotlin 在许多类型的应用程序和场景,这将有助于我们实现这一目标。为此,我们继续需要您的帮助! 31 | 谢谢你,让我们吧! 32 | -------------------------------------------------------------------------------- /translated/Catch up with our Kotlin Team at Devoxx Belgium.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Catch up with our Kotlin Team at Devoxx Belgium" 3 | date: 2013-11-04 12:36:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/11/catch-up-with-our-kotlin-team-at-devoxx-belgium/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | “Devoxx JetBrains 和 Kotlin 团队成员 Svetlana Isakova 和 Aleksei Sedunov 11 月 11 日至 15 日在售罄 [德比克斯比利时](http://www.devoxx.be/#/) 会议。我们邀请您以**在我们的展位**停止**即兴演示**,一些**优质礼品**,并有机会赢得免费个人许可证< / strong>。 18 | 不要错过以下伟大的 Kotlin 事件: 19 | **Hackergarten 动手编码** 20 | 11 月 12 日星期二,阿列克谢将参加 Hackergarten 动手编码活动。他将让您开始使用 Kotlin 语言,并将帮助您为 Kotlin 的 IntelliJ IDEA 编写一个插件。 [令人困惑的 Kotlin:使您的代码清晰](http://www.devoxx.be/dv13-svetlana-isakova.html?presId=3575) 加入 Svetlana 和 Aleksei 星期四,11 月 14 日,10:50 -11:50 在 6 室。在这个演讲中,我们将从 Kotlin 的角度讲述 Java 拼图游戏的故事,这将演示 Kotlin 设计如何帮助消除一些有问题的问题在 Java 中找到。特别地,我们将考虑表达式和控制结构,异常处理,对象和类,可空类型和扩展等方面。 21 | #### **关于 Svetlana Isakova
22 |
** 23 | 24 | #### 关于 Aleksei Sedunov** 25 | 26 | 要了解即将到来的行动,请观看 Devoxx 2012 的 JetBrains 展位,观赏人气和气氛的短片。 27 | 28 | {% raw %} 29 |

30 | {% endraw %} 31 | 32 | 对于完整的 Devoxx Belgium 2013 信息,请访问: http://www.devoxx。是/ 。* 33 | -------------------------------------------------------------------------------- /translated/Contest Go Cross-Platform with Kotlin!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Contest: Go Cross-Platform with Kotlin!" 3 | date: 2015-11-25 18:17:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/11/contest-go-cross-platform-with-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 大家好, 18 | 你听说过吗 [RoboVM](https://robovm.com) ?它可以让您为 iOS 和 Android 创建美丽的本地应用程序,从而允许您在平台之间共享代码。 RoboVM 将 Java 字节码转换为本机 ARM 或 x86 代码 19 | 最新的 [RoboVM 发行](https://robovm.com/robovm-1-11-released-experimental-bitcode-support-ios-9-and-kotlin/) 使它与 Kotlin 起步和运行非常容易!今天你有很好的动力玩,参加第一次 Kotlin Mobile 比赛!只需安装 [IntelliJ IDEA 的 RoboVM 插件](https://plugins.jetbrains.com/plugin/7588?pr=idea) 要么 [下载 RoboVM Studio](https://robovm.com/download/) ,并创建一个跨平台 Kotlin 应用程序。 20 | ## 如何进入 21 | 22 | 23 | * 使用 Kotlin 和 RoboVM 为 iOS 和/或 Android 创建应用程序 24 | * 在 GitHub 上发布您的应用程序 25 | * 使用此链接发送您的条目: 26 | “我刚刚提交了我的应用程序为 @robovm @jetbrains Kotlin 比赛:https://robovm.com/kotlin-contest” 27 | 28 | 没有 Mac 的 iOS 开发?没问题 - 我们也接受 Android 应用程式! [IntelliJ IDEA](https://www.jetbrains.com/idea/) Ultimate 和 Community Edition 都非常支持在 Windows 和 Linux 上使用 Kotlin 构建 Android 应用程序!另外,如果您不是 RoboVM 客户,请注意,您可以直接使用 [免费 30 天的 RoboVM 试用版](https://robovm.com/download/) 参加比赛您不需要进行任何购买 29 | ## 30 | 如何取胜 31 | 32 | 想给你的进入额外的优势?这里有一些提示: 33 | 34 | * 在您的推文中加入您的应用程式的萤幕撷取画面 35 | * 博客关于你如何构建你的应用程序,并在你的推文中添加一个链接 36 | * 使用 Kotlin 无处不在 - 运送跨平台应用程序或在 Kotlin 建立后端的积分! 37 | 38 | ## 奖品 39 | 40 | 41 | * 大奖:Mac mini + 1 年 RoboVM 业务订阅 + 1 年所有产品包由 JetBrains。 42 | * Runner Up:Sphere 2.0 + 1 年的 RoboVM 业务订阅 + 1 年所有产品包由 JetBrains。 43 | * 前 25 个有效条目:$ 10 礼品卡,您可以选择 Apple App Store 或 Google Play。用它来购买一些用 RoboVM 构建的伟大游戏! (游戏包括,泰坦帝国,Evostar,Dragonsoul RPG,爷爷的桌子,目标,高级战术,Hoplite,哦,我的山羊,冲刺直到泡芙等)。 44 | 任何由奖金收取的奖金支付的适用税款。 45 | 46 | 47 | {% raw %} 48 |

mac-mini-sphero2-games

49 | {% endraw %} 50 | 51 | 所有应用程序必须由 2015 年 12 月 14 日(星期日)的**结束日期**提交! RoboVM 和 JetBrains 的团队将从所有提交中挑选获奖者。有效的条目包含您的**tweet**,指向您的**应用程序的 GitHub 存储库**。每个参与者和每个 GitHub 资料库只能获得一个奖项。跨平台应用程序的积分,我们将高兴推广的 tweet 或博客帖子的开发日志,以及代码质量!获奖者将在 RoboVM 和 Kotlin 博客以及 Twitter 上公布,并将通过 GitHub 联系。 52 | 没有 Kotlin 经验?加入 800 多个社区成员 [松弛](http://kotlinslackin.herokuapp.com/) 并提问! 53 | 祝你好运! 54 | -------------------------------------------------------------------------------- /translated/Dogfooding Kotlin and M3.1.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Dogfooding Kotlin and M3.1" 3 | date: 2012-10-10 13:06:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/10/dogfooding-kotlin-and-m3-1/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 发布后 [Kotlin M3](http://blog.jetbrains.com/kotlin/2012/09/kotlin-m3-is-out/) 我们马上就开始了 [狗食](http://en.wikipedia.org/wiki/Eating_your_own_dog_food) Kotlin 工作 [KAnnotator](https://github.com/abreslav/kannotator) - 一个静态分析工具,将自动推断图书馆的无效注释 - 帮助我们极大地优先考虑问题。因此,我们推出了修补程序更新: [KotlinM3.1](http://plugins.intellij.net/plugin?pr=idea&pluginId=6954) ( [关闭问题清单](http://youtrack.jetbrains.com/issues/KT?q=resolved+date%3A+2012-09-12+..+2012-10-10) )。我们建议用最新的方式运行它 [IntelliJ IDEA 12 EAP](http://confluence.jetbrains.com/display/IDEADEV/IDEA+12+EAP) 。 18 | 几个亮点: 19 | 20 | * 一堆烦人的例外和性能问题。 21 | * 参考内部枚举固定。 22 | * 来自对象字面的超级电话固定。 23 | * 一些后端修复,包括桥接方法和调试器相关的事情。 24 | * 您现在可以在包/模块中运行所有测试。 25 | 26 | BTW, [这个讲话](http://blueskybd.vo.llnwd.net/o16/oracle/CON5934_mp4_5934_001.html) 我介绍了 [JavaOne](https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=5934) 一周前,它涵盖了 M3 的一些新功能。幻灯片可用 [这里](http://confluence.jetbrains.net/display/Kotlin/Talks+and+Publications) 。其他会谈可以看 [这里](http://confluence.jetbrains.net/display/Kotlin/Talks+and+Publications) 。 27 | 28 | {% raw %} 29 |

 

30 | {% endraw %} 31 | 32 | -------------------------------------------------------------------------------- /translated/Fibers and Actors in Kotlin with Quasar.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Fibers and Actors in Kotlin with Quasar" 3 | date: 2015-06-04 18:44:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/06/fibers-and-actors-in-kotlin-with-quasar/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 在里面 [上一篇文章](http://blog.jetbrains.com/kotlin/2015/05/kotlin-m12-is-out/) 我们提到了 [类星体](http://docs.paralleluniverse.co/quasar/) 库现在支持 Kotlin,为光纤(轻量级线程),Go-like 频道,Erlang 类演员和其他异步工具提供了极好的支持。 18 | 我们的朋友来自 [平行宇宙](http://www.paralleluniverse.co/) 已经出版了 [博客文章](http://blog.paralleluniverse.co/2015/06/04/quasar-kotlin/) 深入了解与 Kotlin 使用 Quasar 的细节。即使在不太可能的情况下,多线程并不关心您,Quasar / Kotlin 集成是在 Kotlin 编写的“DSL”库的一个很好的例子,它使用 19 | 20 | * 数据类 21 | * 顶级功能 22 | * 羔羊 23 | * 注释表达式 24 | * when-expressions 25 | * 内联函数 26 | 27 | 构建一个自然而且高效的 API,以及 [博客文章](http://blog.paralleluniverse.co/2015/06/04/quasar-kotlin/) 解释得很好 28 | 请享用! 29 | -------------------------------------------------------------------------------- /translated/Follow-up New Class Object Syntax.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Follow-up: New Class Object Syntax" 3 | date: 2015-03-14 10:57:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/03/follw-up-new-class-object-syntax/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 在里面 [上一篇文章](http://blog.jetbrains.com/kotlin/2015/03/upcoming-change-class-objects-rethought/) 我解释了以前被称为“类对象”的重新设计:它们现在与普通嵌套对象更加统一,名称(名称可以省略,但编译器将使用默认名称),我们可以写他们的延伸。 18 | 该职位的目标之一是收集关于我们提出的术语的反馈意见,即“默认对象”,并且许多人在评论中正确地声明该术语具有缺点:对于“默认实例类”。 **现在我们正在寻找一个更好的术语**,需要更多的反馈... 19 | **更新**:感谢大家,在您的帮助下,我们选择了`companion`。 20 | 我们正在谈论在**对象**之前的修饰符: 21 | 22 | {% raw %} 23 |

24 | {% endraw %} 25 | 26 | ```kotlin 27 | class KotlinClass { 28 |     ??? object { 29 |         fun callMeOnTheClassName() { ... } 30 |     } 31 | } 32 | ``` 33 | 34 | {% raw %} 35 |

36 | {% endraw %} 37 | 38 | 我们的候选人是: 39 | 40 | * 默认对象 41 | * 附加对象 42 | * 伴侣对象 43 | * 清单对象 44 | 45 | 如果您在评论中**分享了这些候选人的想法**,我们将非常感激。 46 | 谢谢! 47 |

有一个建议是简单地使用命名约定而不是修饰符。 此评论解释了为什么我们决定赞成一个修饰符还要注意的是,这个约定将比其他公约更频繁地使用,其他的在接下来的语言设计审查中被重新考虑。* 48 | -------------------------------------------------------------------------------- /translated/Free Kotlin Webinar on Wednesday, October 10th.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Free Kotlin Webinar on Wednesday, October 10th" 3 | date: 2012-09-25 11:06:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/09/free-kotlin-webinar-on-wednesday-october-10th/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 加入我(Andrey Breslav)和 [哈迪哈里里](http://www.jetbrains.com/devnet/academy/experts/Hadi_Hariri.html) 在一个 [网络研讨会](https://www4.gotomeeting.com/register/662905759) 关于 [Kotlin M3](http://blog.jetbrains.com/kotlin/2012/09/kotlin-m3-is-out/) 。我们将讨论新功能和计划,给出一些演示并回答**您的问题**。 18 | 免费网络研讨会将于 10 月 10 日(星期三)16:00**进行 [CET(中欧时间)](http://wwp.greenwichmeantime.com/time-zone/europe/european-union/central-european-time/) 。空间**限制** [在这里注册](https://www4.gotomeeting.com/register/662905759) 。 19 | 期待与您见面!并有一个很好的 Kotlin! 20 | -------------------------------------------------------------------------------- /translated/Full-Day Kotlin Workshop October 6th in Malmö, Sweden.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Full-Day Kotlin Workshop October 6th in Malmö, Sweden" 3 | date: 2014-08-20 14:53:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2014/08/full-day-kotlin-workshop-october-6th-in-malmo-sweden/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | “Edument_1”class Edument ,JetBrains培训和咨询合作伙伴将在2014年10月6日星期一提供一整天的Kotlin黑客攻击在可爱的马尔默市。 18 | 19 | * 全日制Kotlin工作坊:了解更多并立即注册。 20 | 21 | 实践研讨会将首先介绍基本语法,并开展单元测试和面向对象和功能编程等语言功能。下午我们将考虑使用案例,例如编写特定于域的语言,并看看Kotlin的语法和语义如何帮助您在Java和C#等语言中遇到的常见问题。 22 | 白天将提供小吃和饮料。 23 | 这个Kotlin车间的空间有限; 了解更多并立即注册 24 | -------------------------------------------------------------------------------- /translated/Gradle Daemon Support for Faster Compilation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Gradle Daemon Support for Faster Compilation" 3 | date: 2015-08-05 15:20:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/08/gradle-daemon-support-for-faster-compilation/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们正在努力改进编译时间。今天我们很高兴邀请您尝试使用 Gradle 守护进程的 Kotlin `0.12.1230`。它消除了启动成本,并且您的构建运行速度更快。 18 | ## 背景 19 | 20 | 除了其他的方式,JVM 的编译器和预热活动的加载类似乎在执行`kotlinc`的时候有很大的贡献。这就是为什么我们正在研究如何一次又一次地使用相同的编译器实例:不需要加载可以提供更好的编译时间。 21 | 由于在 JVM 上运行的其他工具似乎也遇到同样的问题,因此有大量的基础设施可以帮助这些事情。 Gradle 有它的 [守护进程](https://docs.gradle.org/current/userguide/gradle_daemon.html) ,一个长期运行的过程(实际上可以是许多进程),其基本功能是保持工具加载,从而运行它们,而不需要加载类和 JIT 编译的启动成本。 22 | ## 试试看 23 | 24 | 我们已经修复了一些阻止 Kotlin 利用此功能的问题。它在 Gradle 2.4 及更高版本中可靠工作(对于 Gradle 升级说明,请参阅 [Gradle 文档](https://docs.gradle.org/current/userguide/gradle_wrapper.html) )。默认情况下,Android Studio 会使用该守护程序,因此您无需太多工作,只需在您的`build.gradle`文件中指定 Kotlin 版本“0.12.1230”即可: 25 | 26 | {% raw %} 27 |

28 | {% endraw %} 29 | 30 | ```kotlin 31 | buildscript { 32 |   repositories { 33 |     ... 34 |   } 35 |   dependencies { 36 |     classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.1230' 37 |     ... 38 |   } 39 | } 40 | ``` 41 | 42 | {% raw %} 43 |

44 | {% endraw %} 45 | 46 | **注意**:仅在几次运行构建之后才能获得全面的加速。我们第一次感冒,等待热身,第二次大部分的预热都消失了,构建速度更快。由于 JIT,后续运行也可能稍快一些。 47 | ## 反馈 48 | 49 | 请告诉我们,如果您的版本随着这一变化而变得更快。一些项目细节(如 LOC 和实际构建时间)将不胜感激。 50 | 谢谢! 51 | -------------------------------------------------------------------------------- /translated/Gradle Meets Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Gradle Meets Kotlin" 3 | date: 2016-05-18 06:18:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/05/gradle-meets-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 回到**JavaOne 2015**,午餐休息期间,我们开始与 Gradle 首席执行官 Hans Dockter 聊天。会后几天,我们中的几个人在 Gradle 办公室谈论 JetBrains 和 Gradle 之间的合作开始,为 Gradle 带来一流的工具和静态语言支持。 18 | 今天在 [旧金山的 Kotlin 之夜](http://info.jetbrains.com/Kotlin-Night-2016.html) -------------------------------------------------------------------------------- /translated/Hello World.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Hello World" 3 | date: 2011-07-19 22:13:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/07/hello-world-2/ 13 | translator: DemoJameson 14 | translator_url: http://www.demojameson.com 15 | --- 16 | 17 | 在今天的 [JVM 语言峰会](http://openjdk.java.net/projects/mlvm/jvmlangsummit/) 上,JetBrains 公开了已经积极开发近一年的新项目 **Kotlin**,这是一门运行在 JVM 上的新静态类型编程语言。 18 | 19 | 凭借多年为不同语言创建开发工具的经验,我们希望能为当今的环境提供足够高效的语言,同时足够简单以便于普通程序员学习。 20 | 21 | 当前 Kotlin 正在积极开发中但是远未成熟,还不能提供给开发团队以外的人使用。现在能做的是阅读 [语言文档](http://confluence.jetbrains.net/display/Kotlin/Welcome) 并留下关于语言设计的反馈——你喜欢哪些功能、哪些功能缺失、哪里令人困惑等等。 22 | 23 | 有一件事要注意:由于我们是一个开发工具公司,我们同时正在为 Kotlin 语言本身建立一流的 IDE 支持。一旦语言达到了 beta 阶段(目前计划在 2011 年底),我们会使用 Apache 2 许可证将编译器和开发工具开源。 24 | 25 | 我们接下来还有很多工作,很乐于听到你对我们最近努力成果的看法。所以让我们开始讨论吧! 26 | -------------------------------------------------------------------------------- /translated/How to configure Kotlin in your project.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]How to configure Kotlin in your project" 3 | date: 2013-10-07 14:34:00 4 | author: Natalia Ukhorskaya 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/10/how-to-configure-kotlin-in-your-project/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Kotlin 可以和 Java 自由混合。这意味着您可以轻松地将 Kotlin 代码添加到现有的 Java 项目中。所有你需要做的是创建一个新的 Kotlin 文件(* .kt),并告诉环境使用 Kotlin。如果您使用 IntelliJ IDEA,则可以自动为您提供此功能。 18 | Kotlin 插件会检查包含 Kotlin 文件的所有模块是否正确配置。如果没有,您将在编辑器的左上角看到以下通知: 19 | “通知”data-recalc-dims
20 | 要配置它们,请根据需要点击通知中的其中一个链接。 21 | ## 定位 JVM 字节代码 22 | 23 | 如果要将 Kotlin 编译为**JVM 字节代码**,请单击**作为 Kotlin(Java)模块。**系统会提示您输入以下对话框:
24 | “创建
25 | 在这里,您可以选择需要配置的模块和将库复制到的目标路径。 26 | 您可以选择复制 JAR 库并将其存储在项目文件夹下(可选择将其检入 VCS),或者选择**使用库插件**,这将仅使用 IntelliJ IDEA 中的插件捆绑的 JAR 。但是,后一个选项意味着您的项目将仅适用于安装此插件的计算机。 27 | ## 定位 JavaScript 28 | 29 | 如果要将 Kotlin 编译为**JavaScript**,请在通知中单击**作为 Kotlin(JavaScript)模块**链接。 30 | 与上述类似,您可以指定存储运行时文件的位置 31 | “创建 32 | 有两个路径:第一个指向 Kotlin 运行时文件,这是 Kotlin 库的 JavaScript 实现。第二条路径是指向 Kotlin 图书馆的标题。 33 | ## 使用 Maven 或 Gradle 34 | 35 | 如果您使用**Maven**或**Gradle**,我们也有好消息:Kotlin 插件现在可以使用 pom.xml 或* .gradle 文件配置您的项目。
36 | “Maven 37 | 再次,您需要点击通知中的链接,选择要配置的模块和 Kotlin 插件的版本(最新的稳定版本或快照)。
38 | “Maven
39 | 所选模块的配置文件将按照所述进行更改 [这里](http://confluence.jetbrains.com/display/Kotlin/Kotlin+Build+Tools) 。 40 | 如果偶然你想念一个通知,你可以随时通过 IntelliJ IDEA 的事件日志访问它 41 | “事件日志中的通知”data-recalc-dims另请注意,只有在您的项目中**在源根目录下有 Kotlin 文件**,通知才会出现。 42 | *对于 Gradle 用户*:您的 Kotlin 文件应该在名为“kotlin”的源代码根目录下 43 | -------------------------------------------------------------------------------- /translated/Join Live Webinar — Functional Programming with Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Join Live Webinar — Functional Programming with Kotlin" 3 | date: 2015-10-19 12:43:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/10/join-live-webinar-functional-programming-with-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 加入我们这个**10 月 22 日星期四,格林尼治标准时间 14:00 - 15:00(美国东部时间上午 10:00 - 11:00),我们的免费网络研讨会, [Kotlin 功能编程](http://info.jetbrains.com/Kotlin-Webinar-October2015-registration.html) 与麦克赫恩 18 | 在这次演讲中,Mike Hearn 将通过工作实践的例子,重点介绍功能编程,简要介绍 Kotlin 的编程。 19 | 涵盖的主题将包括: 20 | 21 | * 使用功能转换 22 | * 不变性 23 | * 懒惰和懒惰的无限序列 24 | * 使用 funKtionale,这是一个使用 Haskell 已知的几个功能来扩展 Kotlin 的库 25 | * 模式匹配 26 | * 无效用户界面 27 | 28 | 每个人都是 [欢迎](http://info.jetbrains.com/Kotlin-Webinar-October2015-registration.html) ! 29 | 您可以向 Mike 咨询问题,并为评论中的未来网络研讨会提出主题。 30 | -------------------------------------------------------------------------------- /translated/Join Live Webinar — Quasar and Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Join Live Webinar — Quasar and Kotlin" 3 | date: 2015-09-14 12:00:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/09/join-live-webinar-quasar-and-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 加入我们 18 | **星期三,9 月 16 日,16:00 - 17:00 CET**(10:00 - 11:00 AM EDT)为我们的免费网络研讨会, [类星体:高效优雅的纤维,渠道和演员](http://info.jetbrains.com/Kotlin-Webinar-September2015-registration.html) 与 Fabio Tudone。 19 | 类星体纤维为 JVM 提供真正的轻量级线程,以及类似 Erlang 的演员,Go-like 频道和 Dataflow 编程:这意味着我们可以有效地使用直接阻止 API 和常规的基于堆栈的控制流程,而不是提交繁琐和传染性的异步和单体风格。 20 | 在介绍了关于光纤,它们的工作原理和 Quasar 的额外抽象之后,我们将探讨 Quasar 如何使用 Kotlin 21 | 22 | * 数据类 23 |  顶级功能 24 |  羔羊 25 |  注释表达式 26 |  when-expressions 27 |  内联函数 28 | * 顶级功能 29 |  羔羊 30 |  注释表达式 31 |  when-expressions 32 |  内联函数 33 | * 羔羊 34 |  注释表达式 35 |  when-expressions 36 |  内联函数 37 | * 注释表达式 38 |  when-expressions 39 |  内联函数 40 | * when-expressions 41 |  内联函数 42 | * 内联函数 43 | 44 | 提供一个非常精简和表达的 API。 45 | 每个人都是 [欢迎](http://info.jetbrains.com/Kotlin-Webinar-September2015-registration.html) ! 46 | 您可以向 Fabio 提出问题,并为评论中的未来网络研讨会提出主题。 47 | -------------------------------------------------------------------------------- /translated/Kotlin 1.0.1 is Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.0.1 is Here!" 3 | date: 2016-03-16 23:54:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/03/kotlin-1-0-1-is-here/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 自从我们发布以来已经有一个月了 [Kotlin 1.0](http://blog.jetbrains.com/kotlin/2016/02/kotlin-1-0-released-pragmatic-language-for-jvm-and-android/) 而在此期间,我们的用户群大致翻了一番,我们准备了第一个错误修复更新。 18 | Kotlin 1.0.1 启动了一系列 1.0.X 版本,为语言(以及项目的其他部分)提供安全的错误修复和性能改进,以及我们的工具和集成的新功能。这一次只有相对较小的 IDE 功能,但更大的东西在 1.0.2 和更高版本的地平线上。 19 | ## 1.0.1 的变化 20 | 21 | 请找到完整的更改日志 [这里](https://github.com/JetBrains/kotlin/releases/tag/1.0.1) 。一些数字和亮点: 22 | 23 | * 它是编译器,库和 Gradle 插件改进(性能)的 47 修复, 24 | * 与 Gradle 2.12 兼容, 25 | * IDE 功能: 26 | * 与 IDEA 2016 的兼容性, 27 | Kotlin 教育插件(IDEA 2016), 28 | KT-9752 更多可用的文件选择器“将声明移动到另一个文件”, 29 | KT-9697 将方法移动到伴侣对象并返回, 30 | * 与 IDEA 2016 的兼容性, 31 | * Kotlin 教育插件(IDEA 2016), 32 | * KT-9752 更多可用的文件选择器“将声明移动到另一个文件”, 33 | * KT-9697 将方法移动到伴侣对象并返回, 34 | * 和 IDE 中的 39 种修复。 35 | 36 | 我们感谢 EAP 的参与者尝试了预览版本并报告了反馈。请加入 [EAP](https://discuss.kotlinlang.org/t/kotlin-1-0-1-eap/1525) 让我们让 Kotlin 一起更好! 37 | -------------------------------------------------------------------------------- /translated/Kotlin 1.0.3 Is Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.0.3 Is Here!" 3 | date: 2016-06-30 18:52:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/06/kotlin-1-0-3-is-here/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们很高兴地介绍 Kotlin 1.0.3**。这个更新不是全新的和闪亮的功能,更多的是关于错误修复,工具改进和性能提升。这就是为什么你会喜欢它😉看看充分 [更改日志](https://github.com/JetBrains/kotlin/blob/1.0.3/ChangeLog.md) 并通过子系统发布统计信息: 18 | “Kotlin
19 |
20 | 21 | 具体来说,我们要向我们的贡献者表示感谢,他们的承诺包括在 1.0.3 中 [雅罗斯拉夫·乌兰诺维奇](https://github.com/yarulan) , [杰克·沃顿](https://github.com/JakeWharton) 和 [基拉里·拉赫曼](https://github.com/cypressious) 。基里尔已经对格式化器进行了十几项改进,并提交了 20 多项提交 - 伟大的工作,基里尔,我们非常感谢。在这里,我们还要感谢我们的 EAP 用户,并对 1.0.3 的预发布版本进行了测试并提供了无价的反馈。 22 | 虽然此更新不是功能丰富的,但有几个重要的改进和功能,值得一提: 23 | ## 编译器的新功能: 24 | 25 | 26 | * 新选项 -jdk-home 指定编译代码的 JDK 27 | * 指定 Kotlin 语言版本(-language-version)和目标 Java 版本(-jvm-target)的选项(将在 1.1 中生效,现在添加用于转发兼容性) 28 | * 更有效的字节码(在循环中不再有迭代器,避免使用单元进行不必要的操作) 29 | * 诊断信息的各种改进 30 | 31 | ## IDE 的新功能 32 | 33 | 34 | * 自动提供 Java 到 Kotlin 转换,用于从浏览器和 IDE 之外的其他来源复制的 Java 代码 35 | 36 | -------------------------------------------------------------------------------- /translated/Kotlin 1.0.7 is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.0.7 is out" 3 | date: 2017-03-15 22:21:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-0-7-is-out/ 13 | translator: pye52 14 | translator_url: https://github.com/pye52 15 | --- 16 | 17 | 我们很高兴地宣布Kotlin 1.0.x系列的最后一个更新,Kotlin 1.0.7已经发布了。需要重点关注的是该补丁针对Gradle和annotation processing进行修复,此前无法升级到1.1版本的用户现在可以正常使用了。完整的修复列表可以在[更新日志](https://github.com/JetBrains/kotlin/blob/1.0.7/ChangeLog.md)查看。 18 | 要在Maven或Gradle版本中更新版本,只需在构建脚本中更改Kotlin版本号。命令行编译器会在[Github发行页面](https://github.com/JetBrains/kotlin/releases/tag/v1.0.7)中下载。 19 | 在IntelliJ IDEA和Android Studio中,如果您使用Kotlin 1.0.7构建项目,我们建议使用1.1版本的插件,并将语言版本切换为1.0。如果您确实想要安装1.0.7版本的插件,可以在[Kotlin插件页面](https://plugins.jetbrains.com/plugin/6954-kotlin)下载相应版本,并通过IDE的“从磁盘安装插件...”按钮进行安装。 20 | 一如既往,如果您在新版本中遇到任何问题,欢迎您在[讨论组](https://discuss.kotlinlang.org/)或者Slack(在[这里](http://kotlinslackin.herokuapp.com/)获得邀请)里寻求帮助,或在[这里](https://youtrack.jetbrains.com/issues/KT)提交issue。 21 | 让我们来享受Kotlin吧! -------------------------------------------------------------------------------- /translated/Kotlin 1.1 Event Report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.1 Event Report" 3 | date: 2017-04-06 23:21:00 4 | author: Alina Dolgikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/04/kotlin-1-1-event-report/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | Kotlin 1.1 版本发布在社区反响很好。为了演示 Kotlin 1.1 的新功能,JetBrains 提供了一个在线活动。所有感兴趣的人都可以观看 Andrey Breslav 的在线直播演示,并在 Q&A 环节获得他们关心的问题的答案。 18 | 这激发了许多当地社区组织见面会:超过 30 个用户组在 21 个国家举办了线下活动。 19 | 你可以在这里找到完整的活动列表 [Kotlin 社区网页](http://kotlinlang.org/community/talks.html?time=kotlin) 。活动当天有 3000 多人参加了线上直播。 20 | 演示和 Q&A 视频可以在 YouTube 上查看: 21 | 22 | 23 | {% raw %} 24 |

25 | {% endraw %} 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | ## Kotlin 1.1 活动反馈 32 | 33 | 如果你看了直播,我们想知道你的想法!请 [填写此表格](https://docs.google.com/forms/d/e/1FAIpQLSdgKsJzwc1ToAusi-xpEiiE1O4t3HA5xjlbZXDU5Mg0i3qvNg/viewform) 分享您的反馈。它只需要大约 7-10 分钟。您的投入对于帮助我们改进未来的 Kotlin 活动非常重要。 34 | ## Kotlin 未来特性调查 35 | 36 | future_features_collage_2
37 | 38 | 我们还向所有社区提供了对 Kotlin 未来的影响。活动组织者收到了调查表,活动参与者可以在线下对最期望的功能发表看法。调查得到很多关注,我们现在已经把它放在网上,以听取更广泛的社区建议。现在你可以在线给 [ Kotlin 的未来提供你的建议](https://docs.google.com/forms/d/e/1FAIpQLSdnCgBonEV5pwN8L903BzdYb9Baf0dpwsJ5YrKnxLveiLFkEQ/viewform)  ! 39 | 请注意,你在 v1.2 中有很大可能看不到这些功能,但我们会在确定工作优先级时考虑您的意见。 40 | -------------------------------------------------------------------------------- /translated/Kotlin 1.1 Event in Your City.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.1 Event in Your City" 3 | date: 2017-03-21 21:51:00 4 | author: Alina Dolgikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-event-in-your-city-2/ 13 | translator: SnakEys 14 | translator_url: 15 | --- 16 | 17 | 我们将于 2017 年 3 月 23 日进行[Kotlin 1.1 活动](https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-event-2/#more-4726) 线上直播。您可以通过[JetBrains TV](http://jb.gg/kotlinevent1_1)观看**Andrey Breslav 的演讲**,了解 Kotlin 1.1 的关键特性,包括协程(coroutines),JavaScript 后端等。您也可以使用#kotlinqa 在 twitter 上提出问题,我们将在 3 月 23 日直播中的**Q&A 环节**进行解答。为适应不同的时区我们共准备了 2 个直播流,详情可在[博客日志](https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-event-2/#more-4726)中参阅**详细计划与指导** 。从下图中了解您所在的城市是否有**Kotlin 1.1 活动**,如果您所在的城市尚未出现在下图中,请单独加入直播。 18 | 19 | 20 |

Kotlin_1_1event_map

21 | 22 | 23 | 请注意,美国的直播时间已经更改为 PDT(太平洋夏季时间)时间。第一个直播流将于上午 9 点开始,第二个上午 11 点开始。 24 | 25 | -------------------------------------------------------------------------------- /translated/Kotlin 1.1 Event.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.1 Event" 3 | date: 2017-03-06 17:43:00 4 | author: Alina Dolgikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-event-2/ 13 | translator: SnakEys 14 | translator_url: https://github.com/SnakeEys 15 | --- 16 | 17 | Kotlin 1.1除了为您的项目带来新特性之外,还是您与当地社区进行线下交流学习、了解Kotlin的未来与发展的绝好机会。 18 | 您可以组织社区的小伙伴们,一起参与Jetbrains团队在3月23日举办的Kotlin直播活动。为了适应不同时区,我们准备了两个直播流,分别是欧洲中部时间[CET]下午5点/7点(太平洋夏季时间[PDT]上午9点/11点)。 19 | 20 | [告诉我们](https://docs.google.com/forms/d/e/1FAIpQLSf6iXcrIpaNIqeeUJI2L6pntS5yy_iI01PbrO9gTMmX0kg5Lw/viewform),我们将在博客上公布。 21 | 22 | {% raw %} 23 |

1600

24 | {% endraw %} 25 | 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | ## Kotlin 1.1活动时间: 32 | 33 | * CET时间下午5点/7点(PDT时间上午9点/11点) - Andrey Breslav演讲(Youtube上直播30分钟),链接将稍候放出。 34 | * CET时间下午5点30分/7点30分(PDT时间上午9点30分/11点30分) - 休息30分钟,期间可以自由讨论关于在Kotlin未来版本中您最希望加入的功能或特性,并在Twitter上分享和评论。 35 | * CET时间下午6点/8点(PDT时间上午10点/12点) - 与Kotlin团队的互动问答环节(45分钟,直播); 36 | * 欢迎各位参与讨论与发言。 37 | 38 | ## 互动问答环节 39 | 40 | * 从3月21日开始,至3月23日互动环节结束期间,您可以在Twitter上使用#kotlinQA标签向我们提出任何您想要问的问题; 41 | * Kotlin团队将对问题进行分类; 42 | * 团队将在Q&A环节现场回答问题; 43 | * 如果在会议期间有问题没有答复,我们仍将通过Twitter进行回复 44 | * 优先回答提问频率最高的问题 45 | 46 | ## Future Features kit 47 | 48 | 本次调查的目的是收集社区用户对语言特征的偏好和需求。您可以提出在Kotlin后续版本中最希望看到的特征或功能;不过这些内容并不保证能在1.2版本中发布,但我们会在确定工作优先级时考虑您的意见。 49 | 50 | * Kotlin Future Feature Kit包含20张写有功能名称和描述的卡片以及用于投票的贴纸; 51 | * 将功能卡片粘贴到白板(或墙壁)上; 52 | * 每位参加者可获得3张(3张)贴纸,可以在功能中自由分配:最多为三种不同的功能进行投票,或者对某一功能投出两票甚至三票; 53 | * 参加者可以通过阅读卡片的说明了解功能,然后按上所述规则进行投票; 54 | * 将结果进行拍照; 55 | * 使用#kotlinevent标签在Twitter上发布 56 | 57 | [在这里提交你的答案吧](https://docs.google.com/forms/d/e/1FAIpQLSf6iXcrIpaNIqeeUJI2L6pntS5yy_iI01PbrO9gTMmX0kg5Lw/viewform) -------------------------------------------------------------------------------- /translated/Kotlin 1.1 Release Candidate is Here.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.1 Release Candidate is Here" 3 | date: 2017-02-17 13:37:00 4 | author: Mikhail Glukhikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/02/kotlin-1-1-release-candidate-is-here/ 13 | translator: ahong222 14 | translator_url: https://github.com/ahong222 15 | --- 16 | 17 | 截至今天,Kotlin 1.1 终于到了候选版本(RC)阶段。这意味着大部分开发工作都已经完成,我们对此结果感到满意,很快就会发布 Kotlin 1.1 正式版。我们已经在内部对此版本进行了大量测试,但现实世界总是比任何测试环境更加多样化,因此我们需要您的帮助。请尝试这个版本,让我们知道您的体验! 18 | 19 | {% raw %} 20 |

11RC-01
21 |

22 | {% endraw %} 23 | 24 | 候选版本中唯一的新功能是 `takeUnless` 函数,它对应 1.1 之前添加的 [takeIf](https://kotlinlang.org/docs/reference/whatsnew11.html#takeif-and-also),但判断条件相反。至于错误修复则有很多,完整清单请查看[更新日志](https://github.com/JetBrains/kotlin/blob/1.1-rc/ChangeLog.md)。除此之外,我们还修复了几个 IDE 中的性能问题,包括长期存在和最近回归才出现的。 25 | 26 | ## 迁移说明 27 | 就像我们之前[提到的](https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-beta-is-here/),预发布版本生成的所有二进制文件不能在当前的编译器下使用:您现在**需要重新编译**由 1.1-M0x 和 Beta 编译的所有内容。当然,从 1.0.x 开始的所有代码都不需要重新编译。 28 | 29 | 在这之前,您可以从 Java 6 开始,以任何版本的 Java 运行 Kotlin 编译器,但这从第一个 1.1.x 更新开始有变化,编译器将仅在 Java 8 或 9 下运行。为您准备迁移,编译器现在会在 Java 6 或 7 下运行时发出警告。请注意,这仅影响构建环境;**编译代码默认情况下仍然与 Java 6 兼容**,我们没有计划删除对它的支持。 30 | 31 | 现在不推荐使用 `.javaClass` 扩展属性。作为替代,请使用 `::class.java`。IDE 提供了一个 quickfix 来更新写法,单独的修改或者更新整个项目。 32 | 33 | 为了减小 JavaScript 标准库的大小,我们已经将 `kotlin.dom` 和 `kotlin.dom.build` 包中的大量辅助函数注解为不推荐使用了,然后在将来的更新中删除它们。 34 | 35 | ## 如何尝鲜 36 | **在 Maven/Gradle 中:** 将 `http://dl.bintray.com/kotlin/kotlin-eap-1.1` 添加为构建脚本和项目的仓库;使用 `1.1.0-rc-91` 作为编译器和标准库的版本号。 37 | 38 | **在 IntelliJ IDEA 中:** 点击菜单 *Tools → Kotlin → Configure Kotlin Plugin Updates*,然后在 *Update channel* 的下拉列表中选择 "Early Access Preview 1.1",接着点击 *Check for updates*。 39 | 40 | **在 Eclipse 中:** 从以下更新站点安装插件 41 | `https://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/0.8.0` 42 | 43 | **The command-line compiler** 可以从 [Github 发布页面](https://github.com/JetBrains/kotlin/releases/tag/v1.1-rc)下载。 44 | 最后,让我们开启 Kotlin 之旅吧!**try.kotlinlang.org**。 45 | -------------------------------------------------------------------------------- /translated/Kotlin 1.1 What’s coming in the standard library.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.1: What’s coming in the standard library" 3 | date: 2017-01-25 00:15:00 4 | author: ilya.gorbunov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-whats-coming-in-the-standard-library/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | ## Java 9 准备工作 18 | 19 | Java 9 即将到来 [项目拼图](http://openjdk.java.net/projects/jigsaw/spec/sotms/) 到桌面 - Java 平台模块系统。它所施加的约束之一是没有两个模块可以在同一个包中声明公共 API。当有两个有助于同一个软件包的模块时,这种情况称为“拆分”软件包。 20 | 我们在运行时工具中使用拆分包面临这个问题:首先,kotlin-runtime 和 kotlin-stdlib 模块共享很多 kotlin。* packages,第二,kotlin-runtime 和 kotlin-reflect share kotlin.reflect 包。我们要做的是使我们的工件对模块系统更加友好: 21 | 22 | 0. 我们将 kotlin-runtime 和 kotlin-stdlib 合并到单个工件 kotlin-stdlib 中。此外,我们将将编译器分发中的 kotlin-runtime.jar 重命名为 kotlin-stdlib.jar,以减少在不同构建系统中使用不同名称的标准库引起的混淆。 23 | 24 | 这个重命名将分两个阶段进行:在 1.1 中,编译器分发中的 kotlin-runtime.jar 和 kotlin-stdlib.jar 都将具有相同的内容,而在 1.2 中,前者将被删除。 25 | 26 | -------------------------------------------------------------------------------- /translated/Kotlin 1.1-What’s coming in the standard library.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.1: What’s coming in the standard library" 3 | date: 2017-01-25 00:15:00 4 | author: ilya.gorbunov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | translator: 13 | translator_url: 14 | source_url: https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-whats-coming-in-the-standard-library/ 15 | --- 16 | 17 | ## [?25l[?25hJava 9准备工作 18 | 19 | Java 9即将到来 [项目拼图](http://openjdk.java.net/projects/jigsaw/spec/sotms/)  到桌面 - Java平台模块系统。它所施加的约束之一是没有两个模块可以在同一个包中声明公共API。当有两个有助于同一个软件包的模块时,这种情况称为“拆分”软件包。 20 | 我们在运行时工具中使用拆分包面临这个问题:首先,kotlin-runtime和kotlin-stdlib模块共享很多kotlin。* packages,第二,kotlin-runtime和kotlin-reflect share kotlin.reflect包。我们要做的是使我们的工件对模块系统更加友好: 21 | 22 | 0. 我们将kotlin-runtime和kotlin-stdlib合并到单个工件kotlin-stdlib中。此外,我们将将编译器分发中的kotlin-runtime.jar重命名为kotlin-stdlib.jar,以减少在不同构建系统中使用不同名称的标准库引起的混淆。 23 | 24 | 这个重命名将分两个阶段进行:在1.1中,编译器分发中的kotlin-runtime.jar和kotlin-stdlib.jar都将具有相同的内容,而在1.2中,前者将被删除。null 25 | [?25h 26 | 27 | -------------------------------------------------------------------------------- /translated/Kotlin 1.1.1 is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin 1.1.1 is out" 3 | date: 2017-03-14 20:29:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/03/kotlin-1-1-1-is-out/ 13 | translator: SnakEys 14 | translator_url: 15 | --- 16 | 17 | 今天我们发布了针对**Kotlin 1.1**的第一个 bug 修复更新。此更新的重点是解决导致错误代码生成的回归;我们希望尽可能快地修复此问题。详细内容请查看[更新日志](https://github.com/JetBrains/kotlin/blob/1.1.1/ChangeLog.md) 。 18 | 重点更新如下: 19 | 20 | * 默认情况下,已启用 Gradle 增量编译。如果需要,您仍然可以按照文档描述禁用此功能。 21 | * Kotlin 插件现已可以通过 Gradle 插件依赖添加使用。详情可参阅相关文档。 22 | * 禁用使用带有接收器的函数类型作为 JavaScript 外部声明的参数类型。在此之前,传递给这些参数的 lambdas 没有被正确的参数调用,并且在这个问题上没有简单的解决方法,所以现在我们决定禁用这个功能。 23 | 24 | 更新后的 Kotlin [Eclipse](https://marketplace.eclipse.org/content/kotlin-plugin-eclipse) 和 [NetBeans](http://plugins.netbeans.org/plugin/68590/kotlin) 插件将支持 Kotlin 1.1.1,所以您可以尽情享受 Kotlin 新版本的优点而无需关注 IDE。 25 | ## 如何更新 26 | 27 | 要更新 IDEA 插件,在菜单栏中依次选择 Tools | Kotlin | Configure Kotlin Plugin Update,然后点击“Check for updates now”按钮。另外,不要忘记在 Maven 和 Gradle 构建脚本中更新编译器和标准库版本 28 | 29 | 命令行编译器可以从 [Github 发布页面](https://github.com/JetBrains/kotlin/releases/tag/v1.1.1) 页面下载。 30 | 像往常一样,如果您在新版本中遇到任何问题,您可以在 [论坛](https://discuss.kotlinlang.org/) 中寻求帮助,在 Slack([获取邀请](http://kotlinslackin.herokuapp.com/))、或者在[问题追踪器](https://youtrack.jetbrains.com/issues/KT)提出问题 。 31 | 让我们开始吧! 32 | -------------------------------------------------------------------------------- /translated/Kotlin 1.2 M2 is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Kotlin 1.2 M2 is out 3 | author: Alexey Sedunov 4 | date: 2017-08-09 17:56:00 5 | tags: 6 | categories: 官方动态 7 | reward: false 8 | reward_title: Have a nice Kotlin! 9 | reward_wechat: 10 | reward_alipay: 11 | source_url: https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-2-m2-is-out/ 12 | translator: pye52 & 睡魔的倦意 13 | translator_url: https://pye52.github.io/ & https://suima0v0.github.io/ 14 | --- 15 | 16 | 我们很高兴地公布Kotlin 1.2的第二个里程碑版本。该版本的重点在于Kotlin编译器和工具的稳定性与bug修复,以及Kotlin标准库的改进。此外还包含了很多即将发布的Kotlin 1.1.4所具备的工具特性。 17 | 18 | 如果能有您对新特性或者运行中所遇到的任何问题的反馈,我们将非常感谢。 19 | 20 | 从1.2 M1开始,完整的更新日志可以在[这里](https://github.com/JetBrains/kotlin/blob/1.2-M2/ChangeLog.md)查看,重要的变更在下面列出: 21 | 22 | {% raw %} 23 |

24 | {% endraw %} 25 | 26 | ## 编译器 27 | 28 | ### 重大更改:Java默认方法调用 29 | 30 | 到目前为止,Kotlin的接口成员在jvm 1.6重写Java默认方法的时候,如果通过super调用父类方法,将会得到一个警告`子类对Java默认方法的调用在JVM target 1.6已被弃用。请使用-jvm-target 1.8重新编译`。在1.2-M2版本中,我们将警告变更为错误,因此此类代码将需要使用`-jvm-target 1.8`编译 31 | 32 | ## 标准库 33 | 34 | - ### 修正windowed/pairwise操作 35 | 36 | 我们听取了大家[KEEP-11](https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/window-sliding.md)中关于chunked/windowed/pairwise函数的反馈,并且在1.2-M1里程碑版中发布了预览功能,在这基础上,我们还进行了如下改动: 37 | 38 | - `windowed`函数的自增变量现在默认为1。 39 | 同时还增加了一个额外的可选参数`partialWindows`,用于控制不完整的窗口的结束处理流程。默认值为false,表示不完整的窗口不会保留。 40 | 41 | - `pairwise`函数名让人摸不着头脑,不知道它是如何配对元素的。所以我们新命名为`zipWithNext`,这更清楚地表明这函数会把集合中每个元素和下一个元素都压缩一次。 42 | 43 | ### 标准库中常用的数学运算 44 | 45 | 在标准库(KT-4900)[https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FKT-4900]中,长期以来一直要求支持数学运算。到目前为止,人们不得不在JVM平台中使用java.lang.Math类中的数学函数和常量,并在JS平台中将kotlin.js.Math暴露给Kotlin代码。 46 | 但现在我们在kotlin.math包中引入了以下几组API: 47 | 48 | - 常数:PI和E; 49 | - 三角函数:cos,sin,tan和反三角函数:acos,asin,atan,atan2; 50 | - 双曲:cosh,sinh,tanh; 51 | - 指数:pow(扩展函数),sqrt,hypot,exp,expm1; 52 | - 对数:log,log2,log10,ln,ln1p; 53 | - 四舍五入: 54 | - ceil,floor,truncate,四舍五入(结果是偶数)的函数; 55 | - 四舍五入到整数、四舍五入到Long的扩展函数; 56 | - 符号和绝对值: 57 | - 绝对值和符号函数; 58 | - absoluteValue和sign扩展属性; 59 | - withSign扩展函数; 60 | - 针对两个值的max和min函数; 61 | - 二进制表示 62 | - ulp扩展属性; 63 | - nextUp,nextDown,nextTowards扩展函数; 64 | - toBits,toRawBits,Double.fromBits(这些都在kotlin包中)。 65 | 66 | Float类型也可以使用相同的函数功能(但不带常数)。 67 | 大多数这些功能(二进制表示除外)也可以在JS中使用,从而不需要为两个平台编写功能一样的代码。 68 | 69 | ## 预发行说明 70 | 71 | > 与其他里程碑版本一样,我们不会为新的语言和标准库特性提供向后兼容性保证。在1.2版本的里程碑版本中引入的任何内容都将在最终1.2版本之前发生变更。当我们最终RC时,预发行版本的所有二进制文件将被编译器认为不合法:您需要重新编译1.2-Mx编译过的所有内容。 72 | > 73 | > 但是,由1.1.x和更早正式版本编译的所有代码无需重新编译也能正常运行。 74 | 75 | ## 如何尝试 76 | 77 | 在Maven / Gradle中:添加http://dl.bintray.com/kotlin/kotlin-eap-1.2作为构建脚本和项目的存储库;使用1.2-M2作为编译器插件和标准库的版本号。 78 | 在IntelliJ IDEA:打开工具 -> Kotlin -> 配置Kotlin插件更新,然后在更新窗口下拉列表中选择“Early Access Preview 1.2”,然后点击*Check for updates*。 79 | 命令行编译器可以从(Github版本发布页面)[https://github.com/JetBrains/kotlin/releases/tag/v1.2-M2]下载。 80 | 在(try.kotlinlang.org)[https://try.kotlinlang.org/]上:使用右下角的下拉列表将编译器版本更改为1.2-M2(即将推出)。 -------------------------------------------------------------------------------- /translated/Kotlin Census 2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Kotlin Census 2017 3 | author: Roman Belov 4 | date: 2017-10-18 18:55:00 5 | tags: 6 | categories: 官方动态 7 | reward: false 8 | reward_title: Have a nice Kotlin! 9 | reward_wechat: 10 | reward_alipay: 11 | source_url: https://blog.jetbrains.com/kotlin/2017/10/kotlin-census-2017/ 12 | translator: pye52 & 睡魔的倦意 13 | translator_url: https://pye52.github.io/ & https://suima0v0.github.io/ 14 | --- 15 | 16 | 你好! 17 | ​ 我们每年都会进行Kotlin的官方统计,以便获得最新的反馈,以及您如何在项目中使用Kotlin。如果你还未开始使用Kotlin,请让我们知道你的顾虑,你对这个语言的意见对我们来说也是非常重要的。感谢你去年填写的调查表,如果你在今年也能填写一份,这将对我们有莫大的帮助:我们对最新的信息很感兴趣,同时基于去年的调查结果也增加了一些新的问题。 18 | ​ 因此,能否占用你宝贵的2分钟,填写下面的调查表呢? 19 | ​ 我们不会主动使用你所提供的有关于你个人的姓名、应用或者公司名字等个人信息。我们会先向你发送书面许可请求。 20 | 21 | 谢谢! 22 | -------------------------------------------------------------------------------- /translated/Kotlin Eclipse Plugin 0.5.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Eclipse Plugin 0.5.0" 3 | date: 2015-12-01 15:57:00 4 | author: Nikolay Krasko 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/12/kotlin-eclipse-plugin-0-5-0/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 这个版本的新功能 18 | 19 | * Kotlin Beta 2 支持 20 | * 语义突出 21 | * 重命名重构 22 | * 标记发生 23 | * 提取变量重构 24 | * 导航到 Kotlin 标准库源 25 | 26 | 27 | {% raw %} 28 |

Drag to your running Eclipse workspace to install Kotlin Plugin for Eclipse

29 | {% endraw %} 30 | 31 | 32 | {% raw %} 33 |

34 | {% endraw %} 35 | 36 | ## 语义突出显示 37 | 38 | 随着新版本的 Kotlin 插件,使用语义代码突出显示,生活越来越丰富多彩。现在我们与 Java 编辑器共享大多数设置,因此 Kotlin 代码将重用您最喜欢的颜色主题。切换到 Eclipse *黑暗主题*并配置突出显示 [Eclipse 颜色主题](http://eclipsecolorthemes.org/) 还支持插件。 39 | ## 改名 40 | 41 | 我们现在支持*重命名*重构。有一件事情是异常先进的:它可以跨语言工作:Kotlin 声明可以从 Java 和 Kotlin 中的任何用法重命名!相同的重命名 Java 声明 42 | 43 | ## 标记发生 44 | 45 | 默认情况下,为 Kotlin 文件启用自动使用高亮显示在光标下的声明 46 | 47 | ## 提取变量 48 | 49 | 现在可以使用*提取局部变量*重构来从所选表达式创建局部变量 50 | 51 | ## 导航到 Kotlin 标准库 52 | 53 | 来自 Kotlin 代码的 Kotlin 标准库的引用现在可以导航。激活*开放宣言*对使用的操作将打开通讯记录文件,并在图书馆的源代码中显示声明。
54 | 55 | -------------------------------------------------------------------------------- /translated/Kotlin Eclipse Plugin 0.7 Is Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Eclipse Plugin 0.7 Is Here!" 3 | date: 2016-06-03 17:48:00 4 | author: Nikolay Krasko 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/06/kotlin-eclipse-plugin-0-7-is-here/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们很高兴为 Eclipse IDE 提供一个新版本的插件。除了支持 Kotlin **1.0.2**编译器,此更新带来非常重要的功能和改进。 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | 该版本中重新编写了代码格式化功能。而不是我们的第一个天真的实现,我们主要设法将高级格式化程序从 Kotlin IntelliJ Idea 插件移植到 Eclipse 中。这意味着 [很多修复](https://youtrack.jetbrains.com/issues/KT?q=Formatter%20State:%20Fixed%20Subsystems:%20IDE) 已经在那里,即将到来的改进将自动获取! 24 | 25 | {% raw %} 26 |

27 | {% endraw %} 28 | 29 | 新线自动缩进也从这个代码重用中受益,现在显示出更加可预测和聪明的行为。 30 | 可以添加缺少的类,从 0.1.0 版本逐个导入一个快速修复,现在我们通过引入*组织导入*功能进行了改进。它将清理未使用的导入,为文件中使用的类添加缺少的导入,并使用它们。 31 | 32 | {% raw %} 33 |

34 | {% endraw %} 35 | 36 | 我们的完成在确定变体的优先级方面有几个修正,现在可用性更高。此外,还可以立即在完成弹出窗口中建议未导入的类,并将与相应的导入一起插入。 37 | 38 | {% raw %} 39 |

40 | {% endraw %} 41 | 42 | 添加了关于缺少或非法修饰符的几个快速修复: 43 | 44 | * 现在可以向被覆盖或子类化的声明添加一个 open 修饰符。 45 | 46 | -------------------------------------------------------------------------------- /translated/Kotlin Educational Plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Educational Plugin" 3 | date: 2016-03-17 18:47:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/03/kotlin-educational-plugin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们总是说 Kotlin 真的很容易学习。这是!但这不仅仅是语言:学习材料也有所不同。今天我们正在朝这个方向迈出另一个重要的一步。我们很高兴地介绍 Kotlin 教育插件。 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | Kotlin Edu 是 IntelliJ 的插件 [IDEA 2016.1](http://blog.jetbrains.com/idea/2016/03/intellij-idea-2016-1-is-here/) 这让你学习课程。课程包含一些任务,每个任务都有几个占位符,您需要正确填写以解决这些占位符。 24 | 目前,只有一个课程 - 着名的科特琳·科恩(Kotlin Koans)已经有了 [线上](http://try.kotlinlang.org/koans) 有一段时间,Kotlin 学习者获得了相当的知名度。 Koans 的离线版本具有非常相似的用户体验,但具有 IntelliJ IDEA 中提供的所有重构和意图操作优势! 25 | 如果您对 Kotlin Koans 有任何疑问,请随时在*#koans*频道中询问 [我们的松弛](http://kotlinslackin.herokuapp.com) 。 26 | 美国如果您想创建自己的课程,请直接与我们联系 [通过电子邮件](mailto:roman.belov@jetbrains.com) 。 27 | -------------------------------------------------------------------------------- /translated/Kotlin Goes Open Source!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Goes Open Source!" 3 | date: 2012-02-14 10:32:00 4 | author: Ann Oreshnikova 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/02/kotlin-goes-open-source-2/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | -------------------------------------------------------------------------------- /translated/Kotlin Native IDE Support Preview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Kotlin/Native IDE Support Preview 3 | author: Roman Belov 4 | date: 2017-11-04 02:44:00 5 | source_url: https://blog.jetbrains.com/kotlin/2017/11/kotlinnative-ide-support-preview/ 6 | tags: 7 | categories: 官方动态 8 | translator: SnakEys 9 | translator_url: https://github.com/SnakeEys 10 | 11 | --- 12 | 13 | 14 | Kotlin/Native是一项可以将Kotlin直接编译为机器码的[全新技术](http://kotlinlang.org/docs/reference/native-overview.html),并且生成不依赖虚拟机即可运行的可执行文件。在KotlinConf 2017上,我们正式发布了Kotlin/Native开发工具的预览版本。 15 | 16 | 尽管我们使用IntelliJ IDEA来编写Kotlin,但Kotlin/Native结合了如Clang和LLDB等原生技术的支持。因此JetBrains为Kotlin/Native选择了[CLion](https://www.jetbrains.com/clion/)作为C和C++的IDE。 17 | 18 | 要开始使用,请下载并安装[CLion 2017.3](https://www.jetbrains.com/clion/nextversion/)(请注意,此版本现阶段仍处于早期预览阶段)。接下来,从JetBrains[插件库](https://plugins.jetbrains.com/)中安装两个插件。在CLion设置中,依次选择配置(Configure) → 插件(Plugins) → 安装JetBrains插件…(Install JetBrains plugin…),找到并安装Kotlin和Kotlin/Native插件。请谨记该技术仍然是预览版本,遇到任何错误都有可能,若您在开发中遇到相关问题可及时[向我们反馈](https://youtrack.jetbrains.com/issues/KT)! 19 | 20 | 21 | {% raw %} 22 |

23 | {% endraw %} 24 | 25 | # Kotlin/Native新项目 26 | 27 | CLion是学习这门新技术非常好的切入点。从CLion创建示例项目,并使用简单的示例代码。在菜单中依次选择\*新建项目(New Project) → Kotlin/Native应用程序(Kotlin/Native Application)\*,并从列表中选择可用版本。CLion会根据需要自动在计算机上下载并安装本地软件包。 28 | 29 | # 代码内视 30 | 31 | Kotlin/Native IDE支持基于IntelliJ IDEA的常规Kotlin插件。这意味着开发者完全拥有特定的代码检查,意图,代码补全等操作,当然还有可用于Kotlin/Native的重构。 32 | 33 | # 调试 34 | 35 | CLion插件支持基于LLDB的调试。但目前仍处于活跃开发阶段,需要特定的条件(加上一点运气)才能正常运行。尽量尝试并告诉我们是如何运行的! 36 | # Kotlin /本机测试 37 | 38 | CLion插件还支持运行使用kotlin.test框架编写的测试。但需要手动创建‘Kotlin/Native测试’的运行配置(运行(Run)→ 编辑配置(Edit Configurations…)),在编辑器弹出菜单中创建配置将在后续的更新中加入。 39 | 运行测试,即可看到如下图中所示的测试树: 40 | 41 | 42 | # 下一步计划? 43 | 44 | IDE代码内视,测试支持以及调试器已经是非常不错的工具集,但我们将继续研究这些功能,让开发者尽可能体验如公开发布版本一样的流畅性。但是,这并不是首个Kotlin/Native IDE支持版本的所有内容,我们还将全力支持与本地库的互操作性,并提供诸如文档预览,跨语言导航,当然还有少不了的重构等功能。 45 | 46 | 请尽情享受Kotlin/Native! 47 | -------------------------------------------------------------------------------- /translated/Kotlin Night in London Recordings.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Night in London Recordings" 3 | date: 2016-11-15 14:44:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/11/kotlin-night-in-london-recordings/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 伦敦 Kotlin 之夜于 2016 年 10 月 12 日与 Trifork 和 GOTO London 2016 合作举行。我们要感谢所有花时间加入我们并让事件取得圆满成功的人。对于那些无法参加或想要重新进行会谈的人,视频录像现在可以让您欣赏。 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | ## **简介**
24 | 25 | 哈迪哈里里,JetBrains 26 | 27 | 28 | {% raw %} 29 |

30 | {% endraw %} 31 | 32 | ## **我喜欢 Kotlin 的 10 件事。**
33 | 34 | 格雷厄姆·塔克利,凯利达 35 | 36 | 37 | {% raw %} 38 |

39 | {% endraw %} 40 | 41 | 通过许多现实的代码示例,这个实际的举报行程将显示 10 件让我们喜欢使用 Kotlin 来实现后台的决定。 42 | ## **表达性 Kotlin - 通过代码进行沟通。**
43 | 44 | 邓肯麦格雷戈和纳特普雷斯,斯普林格大自然 45 | 46 | 47 | {% raw %} 48 |

49 | {% endraw %} 50 | 51 | Springer Nature 于 2015 年 10 月采用了 Kotlin 一些项目,自 3 月份开始投产。我们发现这种语言很容易学习,愉快的写作,很有表现力。在这个谈话中,邓肯将挖掘我们的 Kotlin 代码,以便使用语言功能来传达意图。使用这些技术,开发人员可以花更少的时间尝试了解什么代码,并在更少的代码行中实现更多。 52 | ## **类固醇的枚举:使用密封类构建 Kotlin Concursus API。** 53 | 54 | Dominic Fox,OpenCredo 55 | 56 | 57 | {% raw %} 58 |

59 | {% endraw %} 60 | 61 | Concursus 事件采购框架的 API 的核心问题是生成和处理各种类型的事件及其关联的事件数据。传统上,这是通过将事件类型映射到 Java POJO 来实现的,但是 Kotlin 的密封类和模式匹配为我们提供了一种方便的方式来将一系列事件作为抽象数据类型。在这个演讲中,我将展示如何在核心 Concursus 域模型的基础上构建一个干净的,类型安全的 API。 62 | -------------------------------------------------------------------------------- /translated/Kotlin Night in London.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Night in London" 3 | date: 2016-09-28 12:48:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/09/kotlin-night-in-london/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们抱着另一个 [Kotlin 之夜](https://info.jetbrains.com/Kotlin-Night-London.html) ,但这次在伦敦。我们汇集了已经和目前正在生产中使用 Kotlin 的社区成员,来和我们谈谈他们的经验。以及分享一些提示和技巧。 18 | 与 Trifork 和 GOTO 伦敦 2016 年合作,我们将在 CodeNode 会议举行的 2016 年 10 月 12 日**举行这个免费活动。我们会谈话,聊天和喝酒 19 | 20 | 给定的空间是有限的,我们鼓励你 [注册时间较早,而不是稍后](https://info.jetbrains.com/Kotlin-Night-London.html) ! 21 | 22 | {% raw %} 23 |

kotlinnightlondon2016

24 | {% endraw %} 25 | 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | 有关会谈的详细信息,请查看 [活动页面](https://info.jetbrains.com/Kotlin-Night-London.html) 。 32 | 17:30 - 18:00 - **注册和欢迎** 33 | 18:00 - 18:45 - **我喜欢 Kotlin 的 10 件事情。**格雷厄姆·塔克利(Graham Tackley) Kaleida* 34 | 18:45 - 19:30 - **表达 Kotlin。*** Nat Pryce 和 Duncan McGregor,Springer Nature* 35 | 19:30 - 20:00 - **零食和饮料** 36 | 20:00 - 20:45 - **使用密封类构建 Concursus API。 Dominic Fox,OpenCredo*** 37 | 38 | {% raw %} 39 |

 

40 | {% endraw %} 41 | 42 | ## GOTO 会议和 Kotlin 研讨会 43 | 44 | 我们也提供 [GOTO London 2016 折扣](https://secure.trifork.com/london-2016/registration/registration.jsp?promotionCode=kotlin100) 这可以用于会议或 [全天 Kotlin 车间举行](https://gotocon.com/london-2016/presentations/show_presentation.jsp?oid=7892) 。 45 | -------------------------------------------------------------------------------- /translated/Kotlin Session and JetBrains Booth at 33rd Degree Conference.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Session and JetBrains Booth at 33rd Degree Conference" 3 | date: 2013-03-01 09:09:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/03/kotlin-session-and-jetbrains-booth-at-33rd-degree-conference/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | JetBrains 和 Kotlin 正在波兰华沙参加第 33 届学术大会**。加入 1,200 名参加者**3 月 13 日至 15 日** [92 次会议](http://2013.33degree.org/main/schedule) 从 [58 个音箱](http://2013.33degree.org/speaker/list) 。来我们的展台,了解**项目 Kotlin**中的新功能,以及即将发布的 IntelliJ IDEA 12.1 版本**。请务必使用 JetBrains 技术传播者为您的**两个会话**标记您的日历 [哈迪哈里里](https://twitter.com/hhariri) 。 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | Kotlin:超越教条主义**
**在 3 月 14 日星期四上午 10:10 - 上午 11:10 24 | Kotlin 是 JetBrains 开发的一种新语言,它是基于 Apache 2 OSS 许可证的许可证,以 JVM 和 JavaScript 为目标。当提出时,提出的典型问题是“为什么另一种语言?它带来了什么核心基础知识?“告诉你什么,让我们超越教条主义,务实。让我们关注开发应用程序时要解决的问题,并了解为什么以及 Kotlin 如何帮助我们。 25 | **开发者:21 世纪的 Prima Donnas**
26 | 3 月 15 日(星期五)13:10 - 14:10* 27 | “”class我们是开发人员。我们是创作者。客户,管理者甚至同事误解我们;我们被低估了,经常过度劳累。人们不喜欢我们对我们的工艺和我们的创新动力的价值。我们是二十一世纪的商业中心,但人们不赞赏我们!“当然,你是,但你也忘了提到:你吮吸沟通。你经常把事业的风险放在个人的野心之上,浪费了大量的时间来改善和讨论错误的事情,这些都是以下一件伟大的事情来解决的。你完全忘记了情节!不相信我你为什么不来这个谈话,并得到一个唤醒电话。但不要期望得到很好的对待。 28 | 有关活动的详细信息,请访问 [第 33 届会议网站](http://2013.33degree.org/) 。 29 | -------------------------------------------------------------------------------- /translated/Kotlin Session at Devoxx, November 16th.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Session at Devoxx, November 16th" 3 | date: 2012-11-08 12:09:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/11/devoxx-kotlin-session/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | “Devoxx 11 月 12 日至 16 日,JetBrains 团队将前往** Devoxx **在比利时安特卫普。我们希望邀请您在我们的**展位**和**Kotlin 会议**之间停止** [哈迪哈里里](http://twitter.com/hhariri) 。 18 | 加入我们***将 Kotlin 纳入测试***,**星期五**,**11 月 16 日** **11:50 am - 12:50 pm**。 19 | 我们期待着在那里见到你! 20 | -------------------------------------------------------------------------------- /translated/Kotlin Skills Matter Events in London, England.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin Skills Matter Events in London, England" 3 | date: 2013-01-28 09:51:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/01/kotlin-skills-matter-events-in-london-england/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | JetBrains 在四月和五月有两次免费的 Kotlin 活动来到伦敦。两届会议将在 [技能交流](http://skillsmatter.com/location-details/home/1611/96) 需要注册。我们希望看到你在那里! 18 | **

30 | {% endraw %} 31 | 32 | **实验功能** 33 | 默认情况下,只有运行程序时才会显示错误突出显示。但是,您可以尝试我们正在尝试的一些功能,并打开“as-you-type”错误,突出显示:
34 | “”data-recalc-dims
35 | 如果选择“服务器”,编辑器将开始与我们服务器上托管的类型检查服务进行通信。如果您选择“客户端”,则会将类型检查器作为您的计算机上运行的(相当大的)Applet 加载。 36 | “服务器”和“客户”选项都可以为您完成代码:
37 | “”data-recalc-dims 38 | 请注意,这些功能是**实验性**,并随时向我们报告任何问题。 39 | **即将推出** 40 | 此演示将进一步开发,让您有更多的乐趣。除此之外,我们还计划添加以下内容: 41 | 42 | * 标准库扩展功能,使 JDK 集合和其他常见 API 更加愉快(像 map()/ filter()等)); 43 | * 代码挑战:目前,我们以包含测试数据的代码片段的形式提供了一些示例问题。这将扩展到比赛自动化测试系统。 44 | * 更多示例:总是有更多的炫耀 [玩的开心!](http://kotlin-demo.jetbrains.com) -------------------------------------------------------------------------------- /translated/Kotlin Workshop Material for you to use.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Kotlin Workshop Material for you to use 3 | author: Hadi Hariri 4 | date: 2017-07-27 12:36:00 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Kotlin Workshop Material for you to use 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/07/kotlin-workshop-material-for-you-to-use/ 13 | translator: pye52 14 | translator_url: https://pye52.github.io/ 15 | --- 16 | 17 | 我们将主要更新推送到我们创建的包含Kotlin Workshop资料的新存储库。除了涵盖所有主要的Kotlin主题的示例代码外,它还有演示幻灯片,以及练习和问题,供学生完成。 18 | 这是我与JetBrains中其他人在Kotlin研讨会上使用的材料。它分为基础和高级,一般可以使用两天。我们用Creative Commons进行了授权,欢迎使用它来学习Kotlin和/或组织你们自己的研讨会。作为开源项目,非常欢迎你们的贡献! 19 | Kotlin Workshop材料 20 | ## 临近的研讨会提醒 21 | 22 | 提醒一下,如果您有兴趣参加即将来临的研讨会,我和Svetlana将在未来几个月内有如下的组织: 23 | 24 | * 8月14日和15日 - 澳大利亚悉尼 25 | * 9月20日 - 澳大利亚墨尔本 26 | * 9月28日 - 澳大利亚布里斯班 27 | * 10月4日 - 挪威奥斯陆 28 | 29 | 期待你们的到来! 30 | -------------------------------------------------------------------------------- /translated/Kotlin census call to action.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin census: call to action" 3 | date: 2016-09-01 17:06:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/09/kotlin-census-call-to-action/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 很多时候,我们被工作或计划与 Kotlin 合作的人询问,我们的采用率是多少,谁在使用 Kotlin 以及为什么。 18 | 虽然我们接受 [拉请求](https://github.com/JetBrains/kotlin-web-site/blob/master/_data/companies-using-kotlin.yml) 并且经常遇到一个*tweet*,我们真的很想知道你,不管你是否在生产中使用 Kotlin,如果是这样,你怎么会遇到什么问题。这不仅有助于我们回答这个问题,当有人询问我们的采纳问题,而是更多地了解我们的社区。我们有近 4000 人 [Kotlin 松弛](http://kotlinslackin.herokuapp.com/) 独自一人,很难跟踪每一个反馈! 19 | 因此,我们问你是否可以给我们两分钟的时间,并填写以下调查。请注意,通过向我们提供您的详细信息,您不会自动同意使用您的姓名,申请或公司名称。在这样做之前,我们会要求您提供书面确认。 20 | 谢谢! 21 | -------------------------------------------------------------------------------- /translated/Kotlin on Android. Now official.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin on Android. Now official" 3 | date: 2017-05-17 22:33:00 4 | author: Maxim Shafirov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | translator:SnakeEys 13 | translator_url:https://github.com/SnakeEys 14 | source_url: https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/ 15 | --- 16 | 今天,在Google I/O大会上,Android团队正式宣布Kotlin成为Android一级支持语言。我们相信这是Kotlin取得的又一大进步,对于Android开发人员以及其他社区来说,这是一个无比令人兴奋的绝佳消息。我们同样对这个开放的机会深感愉悦。 17 | 18 | 对于Android开发人员而言,Kotlin的支持是一个使用现代且强大的语言的机会,它有助于解决常见而又令人头痛的问题,例如运行时异常,以及编写冗长的源代码。Kotlin易于上手,随时可以引入到现有项目并逐步替换,这意味着您现有的技能仍然不会落伍。 19 | 20 | {% raw %} 21 |

Kotlin for Android
22 |

23 | {% endraw %} 24 | 25 | 从现在开始,Android Studio 3.0默认包含Kotlin插件,Android开发人员不再需要安装任何附加功能插件,或者担心兼容性的问题了。您可以放心,JetBrains和Google都将支持Kotlin的Android开发。 26 | 27 | 如果您关心Kotlin支持的其他平台(Kotlin/JVM的服务器和桌面端,Kotlin/JS和Kotlin/Native),请持续保持关注。 我们希望Kotlin能够成为一整套连接跨平台各种应用端到端开发工具的纽带,包括全栈Web应用,Android和iOS客户端,嵌入式/IoT等。 28 | 29 | 编程语言就像人类语言一样:使用的人越多则越好。 Android默认使用Kotlin为一级语言可能会为Kotlin带来更多用户,我们也期望社区能够逐渐壮大。这意味着会有更多使用Kotlin开发的库和工具,更多的经验分享,更多的Kotlin工作机会,更多的学习资料出版等等。我们很高兴看到Kotlin社区生态的蓬勃发展! 30 | 31 | 我们将与Google合作,为Kotlin创造一个非营利基金会。语言发展将继续由JetBrains赞助,Kotlin团队(40多人,公司第二大团队)将照常运作。Andrey·Breslav仍然是首席语言设计师,Kotlin仍以之前的准则进行开发。为了让Kotlin在未来朝着正确的方向发展,您的反馈至关重要,所以我们的设计流程仍然保持开放。 32 | 33 | 如果您在Google I/O现场,希望您不要错过[Kotlin演讲的日程表](https://events.google.com/io/schedule/?section=may-17&gclid=CLuaj9GZ7NMCFY0V0wodvVgI7Q)。当然,也别忘了11月在旧金山举行的[KotlinConf](https://kotlinconf.com),绝对精彩! 34 | ## 十分感谢你! 35 | 36 | 6年前,当我们开始Kotlin的旅程时,初心便是创建符合驱动我们工具相同原则的语言——帮助开发人员解决繁琐乏味的任务,让开发者专注于真正重要的事情,当然,要尽可能让这个过程轻松而且愉快。 37 | 38 | 我们要感谢Google和Android团队对Kotlin的信任,但首先,我们要感谢您,我们的社区,我们的用户。没有你,Kotlin不会有今天的成就。感谢您在此次旅途中的陪伴,我们希望能够与您一起继续在这条激动人心的道路上前行。 39 | ## 常见问题 40 | 41 | 我们已经准备好了关于本公告可能遇到的一系列问题的答案。如果您的问题未被提及,可以随时在评论中提问。如果您之前并未接触过Kotlin,可以在[FAQ](https://kotlinlang.org/docs/reference/faq.html)了解相关基础内容。 42 | ### Kotlin是否将以Android平台为主? 43 | Kotlin的目标之一是成为跨平台使用的语言,并且一直如此。我们将继续支持并积极开发Kotlin/JVM(服务器端,桌面和其他类型的应用程序)和Kotlin/JS。目前我们也正在努力为其它平台——如macOS, iOS以及IoT/嵌入式系统——开发Kotlin/Native。 44 | ### 对Kotlin的发布周期有何影响? 45 | 46 | Kotlin将继续对Android或Android Studio进行独立发布。项目保持完全独立。很显然,双方产品团队将会有更多密切合作,以确保Kotlin在Android Studio中始终正常运行。 47 | ### Android Studio插件开发? 48 | 49 | Android Studio插件由JetBrains继续开发,但会与Android Studio团队保持紧密合作。 50 | ### 是否影响对IntelliJ IDEA,Eclipse或者Netbeans的支持? 51 | 52 | 不会,Kotlin仍然是针对多个平台的语言,并且将继续提供对其他IDE的支持。显然,IntelliJ IDEA将重点关注对其它社区的贡献。 53 | ### 是否影响对macOS或者iOS的支持? 54 | 不,我们仍然计划用Kotlin/Native支持这两个系统,在这方面没有任何改变。 55 | ### JetBrains会被Google收购吗? 56 | 57 | JetBrains没有计划被任何公司收购。JetBrains一真以来都是面向开发人员的独立IDE供应商,无论他们选择的平台或语言如何。 58 | 59 | Maxim Shafirov 60 | -------------------------------------------------------------------------------- /translated/KotlinConf - New Workshop and Community Event by JetBrains and Realm.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: KotlinConf – New Workshop and Community Event by JetBrains and Realm 3 | author: Robert Demmer 4 | date: 2017-09-05 19:51:00 5 | source_url: https://blog.jetbrains.com/kotlin/2017/09/kotlinconf-new-workshop-and-community-event-by-jetbrains-and-realm/ 6 | tags: 7 | categories: 官方动态 8 | translator: SnakEys 9 | translator_url: https://github.com/SnakeEys 10 | 11 | --- 12 | 13 | [KotlinConf](https://kotlinconf.com/)即将来临,要是您还不了解[出席的大佬们](https://kotlinconf.com/speakers/)有谁以及[演讲内容](https://kotlinconf.com/sessions/),那么现在就去看看吧!我们将会围绕着Kotlin进行为期两天的活动,无论您是从事移动开发,桌面端开发亦或是服务端甚至前后端开发,这里都有诸多干货供您选择。 14 | 15 | 为了让KotlinConf更加丰富精彩!我们与[Realm](https://realm.io/)公司合作,在**11月1日**举行*Kotlin研讨会*,以及**为Kotlin构建依赖库**的演讲,并由Realm公司提供晚餐! 16 | 17 | 全天研讨会以及晚间活动将在旧金山CA 94107Townsend街148号二楼Realm办事处举行([见地图](https://goo.gl/maps/t1E9hGq64L82))。 18 | 19 | 20 | {% raw %} 21 |

22 | {% endraw %} 23 | 24 | **研讨会日程:** 25 | 26 | 上午9:00 - 下午5:00: 给Java开发者的Kotlin研讨会。 主讲人Svetlana Isakova。**最大参会人数50人**。 27 | 下午5:30 - 晚上8:00: 晚餐用餐,以及为Kotlin构建依赖库。主讲人Eric Maxwell,**最大参会人数150人**。 28 | 如果您还没有注册KotlinConf,请确保您能享受我们超级优惠的打包折扣价,包括研讨会以及社区讲座等多种活动。 29 | 数量有限,早买早优惠,更多关于讲座和晚会的信息,请参阅下文。 30 | 31 | ## 现在注册! 32 | ***给Java开发者的Kotlin研讨会*** 33 | 34 | 本次研讨会将涵盖您需要了解的所有Kotlin功能,Kotlin是一门让您感到舒适的语言,是在谈及与Java互操作性的基石。您会马上知道快速使用Kotlin的一切内容。本次讲座包括但不限于以下内容: 35 | 36 | * 基本语法 37 | * 可空性 38 | * 使用Kotlin进行面向对象编程 39 | * 使用Kotlin进行函数式编程 40 | * Java互操作性 41 | * 构建DSL 42 | 43 | ***Svetlana Isakova在JetBrains中参与了Kotlin语言的开发。并且她也是《Kotlin in Action》一书的共同撰写人,她花费时间讲授Kotlin,并在全球各地的演讲中倡导使用Kotlin进行开发。*** 44 | 45 | ***构建Kotlin依赖库*** 46 | Kotlin的诸多强大特性,其显著提高了开发人员的生产力,从而使得整体代码更加稳定。完全使用Kotlin进行编码很不错。然而,尽管Kotlin正在跨跃式发展,但目前仍有许多应用程序和库仍然使用Java,并且该情况会持续很长一段时间。假如你是一个像Realm这样向10万级别开发者提供依赖库的第三方依赖库开发者,这意味着你所提供的API必须要适用于Java和Kotlin双平台。 47 | 48 | 在本次演讲中,您将了解到Realm在面对这些问题和挑战时是如何解决,并且如何将这些方案应用于您自己开发的库中。除此之外,还有机会学习如何使用Kotlin简化Realm移动端数据库开发。 49 | 50 | ***Eric Maxwell是Realm的一位产品经理,同时也是Columbus Kotlin用户组的联合组织者。过去数十年里,他在多个行业的各种公司里负责架构和开发。并且开发和讲授Java,Android以及iOS课程。闲暇之余喜欢陪伴家人,旅行和即兴喜剧。*** 51 | 52 | {% raw %} 53 |

KotlinConf-Workshop

54 | {% endraw %} 55 | 56 | -------------------------------------------------------------------------------- /translated/KotlinConf - Speaker List Announced.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: KotlinConf – Speaker List Announced 3 | author: Hadi Hariri 4 | date: 2017-07-17 14:53:00 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/07/kotlinconf-speaker-list-announced/ 13 | translator: pye52 & 睡魔的倦意 14 | translator_url: https://pye52.github.io/ & https://suima0v0.github.io/ 15 | --- 16 | 17 | 仍未到11月吗? 18 | 19 | 距离KotlinConf 2017只剩100多天了,我们在此非常激动地宣布我们邀请了[48位十分出色的讲师](https://kotlinconf.com/speakers/?utm_source=kotlinblog&utm_medium=blog&utm_campaign=speakerannouncement)发表演说!能有这样优秀的嘉宾与公司团队代表Kotlin社区,我感到非常兴奋。 20 | 21 | {% raw %} 22 |

KotlinConf

23 | {% endraw %} 24 | 25 | 26 | {% raw %} 27 |

28 | {% endraw %} 29 | 30 | 一般抢先票在首轮抢先注册活动之后也已经售罄了,普通门票尚在发售中,售完即止。如果你想参加KotlinConf,也请[马上注册](https://kotlinconf.com/registration/?utm_source=kotlinblog&utm_medium=blog&utm_campaign=speakerannouncement)吧,否则你将错失机会。 31 | 32 | 温馨提示,KotlinConf将于11月2-3日在美丽的加利福尼亚州旧金山27码头举行。届时JetBrains团队和充满激情的社区讲师将分享他们关于Kotlin的知识,经验和理念。 33 | 34 | 为期两天的学习,交流会与更多的乐趣在等待着你。[立刻注册吧](https://kotlinconf.com/registration/?utm_source=kotlinblog&utm_medium=blog&utm_campaign=speakerannouncement)! 35 | 36 | 我们期待着在今秋的旧金山与你相见! -------------------------------------------------------------------------------- /translated/KotlinConf 2017 Session Recordings and Photos are Here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: KotlinConf 2017 Session Recordings and Photos are Here! 3 | author: Robert Demmer 4 | date: 2017-12-08 12:26:00 5 | tags: 6 | categories: 官方动态 7 | reward: false 8 | reward_title: Have a nice Kotlin! 9 | reward_wechat: 10 | reward_alipay: 11 | source_url: https://blog.jetbrains.com/kotlin/2017/12/kotlinconf-2017-session-recordings-and-photos-are-here/ 12 | translator: pye52 13 | translator_url: https://pye52.github.io/ 14 | --- 15 | 16 | 终于,都已齐备! 17 | 所有的KotlinConf会议录像及其幻灯片都在[这里](https://kotlinconf.com/talks/)。观看你错过的会议,重温你感兴趣的部分!你甚至可以在最新发布的[图库](https://kotlinconf.com/photos/)里寻找上镜的自己、朋友或者同事。 18 | 若只想要快速回顾,可以观看下面的精彩集锦,你也可以直接浏览JetBrainsTV上的KotlinConf播放列表。 19 | 20 | 21 | 22 | 我们要感谢所有讲师的精彩发言,并在此列出KotlinConf与会者评分最高的讲座。 23 | 24 | ### 评分最高的5个讲座: 25 | 26 | - Anton Keks的Kotlin Puzzlers 27 | - Huyen Tue Dao和Christina Lee的Kotlintown之路 28 | - Christina Lee的 Two Stones, One Bird: Implementation Tradeoffs 29 | - 由Michael Carducci主讲的主题演讲 30 | - Yoshinori Isogai的How to Kontribute 31 | 32 | ### KotlinConf的2017 33 | 第一次KotlinConf会议于2017年11月2日至3日在加州旧金山的27号码头举行。会议特邀50位演讲嘉宾进行了共3个环节45场的演讲。1200多名来自46个国家热情的成员参加了KotlinConf。这一切的顺利进行都离不开支持我们活动的17个合作伙伴。 34 | 35 | 感谢所有与会者,我们希望在未来的活动中能与更多的人见面! -------------------------------------------------------------------------------- /translated/Kotlin_Native v0.2 is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Kotlin/Native v0.2 is out" 3 | date: 2017-05-12 11:08:00 4 | author: Nikolay Igotti 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | translator: bennyhuo 13 | translator_url: https://www.kotliner.cn 14 | source_url: https://blog.jetbrains.com/kotlin/2017/05/kotlinnative-v0-2-is-out/ 15 | --- 16 | 17 | 我们很高兴地宣布Kotlin / Native v0.2 发布啦,这是 Kotlin / Native 技术预览版的一次功能更新和 Bug 修复。这次更新增加了对协程和跨模块内联函数的支持,以及整体上的问题修复和优化。 18 | 这次更新包括了一个演示如何使用 [并发非阻塞IO协同程序](https://github.com/JetBrains/kotlin-native/tree/master/samples/nonBlockingEchoServer) 的示例, 一个 [使用GTK的GUI应用程序](https://github.com/JetBrains/kotlin-native/tree/master/samples/gtk) ,以及一个由Julius Kunze贡献的[TensorFlow机器学习框架](https://github.com/JetBrains/kotlin-native/tree/master/samples/tensorflow) 客户端。 19 | 20 | 诸如下面的代码: 21 | 22 | {% raw %} 23 |

24 | {% endraw %} 25 | 26 | ```kotlin 27 | var connectionId = 0 28 | acceptClientsAndRun(listenFd) { 29 |   memScoped { 30 |     val bufferLength = 100L 31 |     val buffer = allocArray(bufferLength) 32 |     val connectionIdString = "#${++connectionId}: ".cstr 33 |     val connectionIdBytes = connectionIdString.getPointer(this) 34 |     try { 35 |       while (true) { 36 |         val length = read(buffer, bufferLength) 37 |         if (length == 0L) break 38 |         write(connectionIdBytes, connectionIdString.size.toLong()) 39 |         write(buffer, length) 40 |       } 41 |     } catch (e: IOException) { 42 |       println("I/O error occurred: ${e.message}") 43 |     } 44 |   } 45 | } 46 | ``` 47 | 48 | {% raw %} 49 |

50 | {% endraw %} 51 | 52 | 可用于使用协程处理并发 Socket IO,各个用户的请求将得到并发处理。 53 | 54 | 下面的这段代码则演示了如何创建一个带有事件监听的GTK按钮: 55 | 56 | {% raw %} 57 |

58 | {% endraw %} 59 | 60 | ```kotlin 61 | val button = gtk_button_new_with_label("Click me!")!! 62 | g_signal_connect(button, "clicked", 63 |    staticCFunction { _: CPointer?, _: gpointer? -> println("Hi from Kotlin") } 64 | ) 65 | ``` 66 | 67 | {% raw %} 68 |

69 | {% endraw %} 70 | 71 | 简单地说,Kotlin Native v0.2 能够支持我们编写一些功能完善而精巧的程序了。 72 | 73 | 另外,Kotlin Native 编译和运行时性能均有明显改善,编译生成的可执行程序体积也进一步得到了缩减。 74 | 75 | 完整更新内容请参考 [更新日志。](https://github.com/JetBrains/kotlin-native/blob/v0.2.0/CHANGELOG.md) 76 | 77 | 点击后面的链接即可下载 [Linux](http://download.jetbrains.com/kotlin/native/kotlin-native-linux-0.2.tar.gz) 和 [MacOS](http://download.jetbrains.com/kotlin/native/kotlin-native-macos-0.2.tar.gz) 版本的编译器。 78 | -------------------------------------------------------------------------------- /translated/Learn Kotlin with “Advent of Code”.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Learn Kotlin with “Advent of Code”" 3 | date: 2015-12-18 22:08:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/12/try-kotlin-with-advent-of-code/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 圣诞节快到了!准备好了吗?是时候来一场与新语言的邂逅了! 18 | 19 | 你已经解决了[Eric Wastl](http://was.tl/)上神奇的谜题集锦 [“代码挑战”](http://www.adventofcode.com) 了吗?得益于 Kotlin 具有函数式语言的特性,这些任务可以找到非常简洁而不失可读性的解决方案。 20 | 尽力用 kotlin 去解决他们吧! 21 | 22 | {% raw %} 23 |

cover

24 | {% endraw %} 25 | 26 | 你可以在[IntelliJ IDEA 社区版](https://www.jetbrains.com/idea/download/)上完成你的解决方案,它是免费的,也原生支持 Kotlin。 27 | 也可以在浏览器上通过[Kotlin playground](http://try.kotlinlang.org)解决任务。我们为“Advent of Code”添加了特殊模板: 28 | 29 | {% raw %} 30 |

31 | {% endraw %} 32 | 33 | 祝你圣诞(Kotlin)快乐! 34 | -------------------------------------------------------------------------------- /translated/Let’s Kode Together!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Let’s Kode Together!" 3 | date: 2012-02-13 09:07:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/02/lets-kode-together/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 如 [Kotlin 网络演示](http://kotlin-demo.jetbrains.com/) 是尝试 Kotlin 的最简单的方法。今天我们推出一些新功能,使其更加有趣。 18 | **HTML5 Canvas** 19 | 我们添加了对 HTML5 Canvas 的支持(对于 JavaScipt 后端),以便您现在可以执行以下操作: 20 |
21 | 在 YouTube 上观看它: [http://youtu.be/iee75Dtw83k](http://youtu.be/iee75Dtw83k) **注意**,为了使用 Canvas,您需要在右侧的面板中选择 JavaScript(Canvas)运行配置。 22 | **共享您的节目** 23 | 此外,您现在可以保存您写入的程序并共享一个公共链接: 24 | 25 | 0. 访问网络演示,并与您一起登录 Google,Facebook 或 Twitter 帐户。=== 编写程序,例如从“问题”部分解决问题,将其保存在您的私人空间中 === 与大家分享您的解决方案:按住保存的程序旁边的“公共”链接按钮,然后按下 URL 旁边的按钮,或以其他方式共享链接。 26 | 27 | 例如,以下是上述视频中的节目的公开链接: 28 | http://kotlin-demo.jetbrains.com/?publicLink=104074971561017308771626401859
29 | (由帕维尔·塔拉诺夫写的) 30 | **PS** BTW,您现在可以使用**本地功能**,以及****。 31 | -------------------------------------------------------------------------------- /translated/M9 is coming.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]M9 is coming" 3 | date: 2014-10-01 22:10:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2014/10/m9-is-coming/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们一直在为 Kotlin M9 的下一个即将发布的版本而努力,它包含相当多的新功能和一些重要的更改。 18 | ## 平台互操作性改进 19 | 20 | Kotlin 的目标之一一直是利用现有的代码,库和 JVM 生态系统,并能够混合和匹配 Kotlin 和 Java。使用 M9,我们将大大减少摩擦。用于消耗或实现 Java 编写的 API,导出函数作为静态方法,删除冲突以及特征的未知空白类型现在以更直接的方式编译,从而解决了仅支持简单接口的某些代码生成库的问题。 21 | ## 增量编译 22 | 23 | 我们希望 Kotlin 编译与 Java 一样快,为此我们引入了增量编译。此优化显着减少编译时间。它还兼容 IntelliJ IDEA 的自动创建功能,它可以在后台编译代码,因为进行了更改。 24 | ## 模块 25 | 26 | 编译器和 IDE 现在分享对模块的理解,使其在设计时间和编译时间之间保持一致。完成不再提供不包含在特定模块的依赖关系的库中的符号,从而提高隔离度并减少不必要的外部依赖关系的可能性。现在,*内部*可见性修饰符仍将被视为*public*。在这方面做出明确的承诺之前,我们仍然需要了解用户体验消费 DSL 的方式。 27 | ## 调试器 28 | 29 | 通用调试器的改进,可以更好地了解 Kotlin 生成的代码,为断点和 Kotlin 特定的构造提供更好的体验。 30 | ## 重构和智慧 31 | 32 | IntelliJ IDEA 的可用性和新功能的改进,包括期待已久的*使用创建*,更多意图(快速修复)和代码完成增强功能。现在,*提取方法*重构也分析了提取新方法的代码重复,建议用新方法替换这些方法。 Java 到 Kotlin 转换器也得到了很大的改进,提供了将单个或多个文件从 Java 转换为 Kotlin 的更好的转换。 33 | ## JVM 代码生成 34 | 35 | 对于 JVM,代码生成的改进可以减少字节码大小,提高生成代码的性能,更好地兼容 Java8 运行时的现代 HotSpot 优化和增强功能内联,这是 M9 的一些期望。 36 | ## JavaScript 37 | 38 | 对 JavaScript 平台的支持已经得到改进,几乎所有的语言功能都可以用于定位 JavaScript 运行时的模块。标准库已经预编译,现在随编译器一起提供,允许编写使用标准函数的 JavaScript 兼容子集的代码,例如处理收集操作的代码。并且通过一个微小的修改,代码也可以在 node.js 上运行。 39 | M9 即将推出,敬请期待! 40 | -------------------------------------------------------------------------------- /translated/M9 is here!.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]M9 is here!" 3 | date: 2014-10-15 18:38:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2014/10/m9-is-here/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | M9 已经到来,它带来了许多新功能和重要变化。我们已经 [突出显示这些](http://blog.jetbrains.com/kotlin/2014/10/m9-is-coming/) 和 [覆盖别人的细节](http://blog.jetbrains.com/kotlin/2014/10/making-platform-interop-even-smoother/) 。我们深入了解其他一些改进 18 | 19 | ## 语言变化 20 | 21 | **注意:**下面的一些更改是*破坏更改*,这意味着可以使用早期版本编译的一些代码将不再编译,因此您需要更正它。 22 | ### 平台类型 23 | 24 | 和我们一样 [前面提到过](http://blog.jetbrains.com/kotlin/2014/10/making-platform-interop-even-smoother/) ,平台互操作性(即 Java 和 JavaScript 互操作性)是我们的首要任务之一,因为这对我们的用户来说是如此。与 Java 进行互操作时,可疑性*的问题是我们获得的最大的投诉之一。简而言之,问题是来自 Java 的任何引用可能都是*null*,而且通过设计无效的 Kotlin 迫使用户对每个 Java 值进行空值检查,或者使用**(`?。`)或*不空的断言*(`!!`)。那些在纯 Kotlin 世界中非常方便的功能,当您必须在 Kotlin / Java 设置中经常使用它们时,往往会变成灾难。我们依靠 [外部注释](http://blog.jetbrains.com/kotlin/using-external-annotations) 和 [KAnnotator](http://blog.jetbrains.com/kotlin/2013/03/kannotator-0-1-is-out/) 通过增加具有额外类型信息的 Java 来缓解此问题。这种方法证明是太麻烦了,在某些情况下不起作用。 25 | 这就是为什么我们采取了一个激进的方法,并使得 Kotlin 的类型系统更加轻松,当涉及到 Java 互操作:现在来自 Java 的引用有特别标记的类型(我们称之为“平台类型”,因为它们来自底层平台),其中特别处理: 26 | 27 | * Kotlin 不对平台类型执行零安全性。即对于 Java 值,您将获得 Java 的语义:NPE 现在可能来自 Java 的值 28 | 29 | -------------------------------------------------------------------------------- /translated/MCE2015 Kotlin Session and JetBrains Booth.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]MCE2015: Kotlin Session and JetBrains Booth" 3 | date: 2015-01-15 14:32:00 4 | author: Robert Demmer 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/01/mce2015-kotlin-session-and-jetbrains-booth/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | **2 月 5 日和 6 日**,MCE2015 在波兰华沙的**文化与科学宫控制了标志性的 Kinoteka 电影。最初,由开发商开发的开发者大会,今年的活动将扩大到所有移动创作者 - 开发人员,设计师和技术领导者。 18 |
19 | 在** MCE2015 **和**JetBrains 展位
Maxim 在 AppCode 中讨论 Swift 支持**。 20 | 在会议的第二天一定要抓住我们的 Kotlin 会议。 21 | ## ***“Svetlana Kotlin,Android 的 Swift *** 22 | 23 | **由 Svetlana Isakova 提供**
24 | **2 月 6 日,15:00,礼堂 3** 25 | 苹果公司为 iOS 开发人员推出了“更好的语言”。但是我们对 Android 有什么选择?肯定应该在考虑! Android Studio 现在基于 IntelliJ IDEA,Kotlin 的“本机”环境。 26 | Kotlin 可以帮助您减少为 Android 应用程序编写的代码量,同时使其可读取和更易于维护。在本次会议中,我们将看到如何使用某些结构和 DSL 来使 Android 更加愉快。 27 | -------------------------------------------------------------------------------- /translated/Meet the Kotlin Team at Gradle Summit.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Meet the Kotlin Team at Gradle Summit" 3 | date: 2016-06-13 13:28:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2016/06/meet-the-kotlin-team-at-gradle-summit/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 你可能已经听到这个消息,宣布你很快就能够 [将您的 Gradle 构建脚本和插件写入 Kotlin](https://blog.jetbrains.com/kotlin/2016/05/gradle-meets-kotlin/) 。在旧金山的 Kotlin 之夜,来自 Gradle 的 Hans Dockter 演示了支持的第一个原型。在最初公布之后,我们继续与 Gradle 团队携手合作,精简原型,并使其更接近发行版。和下周,在 [帕洛阿尔托梯级峰会](https://gradlesummit.com/) 我们将分享我们进展的细节。 18 | 除了 Gradle 开发人员和用户的介绍,您还会看到 [Kotlin 队的德米特里·杰梅罗夫的主旨演讲](https://gradlesummit.com/schedule/kotlin) 谈论 Kotlin 的 DSL 支持功能及其在 Gradle 构建脚本 DSL 中的用途。在展会区域,您可以与 Kotlin,IntelliJ IDEA 和 TeamCity 的开发人员聊天,他们将帮助您解决与 JetBrains 产品一起使用 Gradle 的任何问题。 19 | 峰会将于 6 月 23 日至 24 日在加利福尼亚州的帕洛阿尔托市举行 [注册开放](https://info.gradlesummit.com/conference/palo_alto/2016/06/register) 。期待在那与你见面。 20 | -------------------------------------------------------------------------------- /translated/Mixed-Site Variance in Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Mixed-Site Variance in Kotlin" 3 | date: 2013-06-26 12:00:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/06/mixed-site-variance-in-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | “”class类型系统...我们都知道他们很酷。在静态语言(如 Kotlin)中,类型系统是负责早期检测错误的系统。许多工具(例如具有重构能力的 IDE)也依赖于类型系统。 18 | 我们也知道类型系统是困难的:许多计算机科学家构建了他们的整个职业学习类型系统。然而,我们对主流语言的类型系统知之甚少。 19 | 例如,提出一个简单的问题:“我们有两种 Java 类型,比如 A 和 B;我可以将类型 A 的值分配给类型 B 的变量吗?“(换句话说,”是 A 是 B 的子类型“)对于某些语言(例如 C#),我们知道有一个算法需要 A 和 B,想一会儿,然后终止并给出正确答案:“是”或“否”。换句话说,子类型问题是 C#的可判定问题。对于其他一些语言,我们知道不会有这样的算法:无论你编写什么编译器,都会有一对类型 A 和 B,它给出一个错误的答案,永远不会终止或抛出异常(可以看作是一个错误的答案)换句话说,Scala 的子类型是*不可判定的*(实际上,Scala 的类型系统是 [图灵完成](http://michid.wordpress.com/2010/01/29/scala-type-level-encoding-of-the-ski-calculus/) ,即您可以使 Scala 的类型检查器执行任何计算,包括无限循环)。 20 | Java 怎么样?我们不知道(见 [这张纸](http://www.cs.cornell.edu/~ross/publications/tamewild/) , 例如)。有些人怀疑子类型对于 Java 来说是不可判定的,但至今尚未得到证实。 **这是一个实际的问题吗?**哦,是的。有些人希望将加入的泛型代码添加到 Java 中,这意味着**foo instanceof Bar**将检查运行时类型的 foo 是否是 Bar 的子类型。如果没有可以决定的算法,我们有麻烦:**instanceof**有时会挂起。 21 | 这就是为什么要研究主流语言的类型系统的原因。可惜这么少的研究人员呢。 22 | 这就是为什么也要仔细设计你的类型系统的原因。所以我们合作 [罗斯·泰特](http://www.cs.cornell.edu/~ross/) ,康奈尔大学助理教授,是该领域的专家。罗斯帮助我们弄清楚类型系统的棘手部分,避免讨厌的角落,保持清洁。最近他写了一篇关于泛型的文章,包括 Kotlin 的泛型。这是非常平易近人的,所以我完全推荐它: 23 | 24 | * Ross Tate 的混合场地差异 25 | 26 | 您将在文章页面上找到“呼吁行业认可”。这是一件重要的事情:虽然这种研究非常重要(如上所述),学术界并不习惯,但我们需要协调一点,帮助他们意识到这种贡献是一个很好的一。引用该页面: 27 |

**为什么要打扰?**我(和许多其他人)希望帮助您解决问题。我们面临的挑战是,很多问题难以科学讨论。事实上,行业倾向于通过反思经验来改进,至少在编程语言发展方面。不幸的是,我们的学者需要在科学会议和期刊上发表,个人经验不是一个科学的过程。我们的审稿人可能非常喜欢我们所说的话,但是他们可能不会很乐意接受一个建立在一个科学场地上的论文。事实上,在阅读正面评论后被拒绝后,通过旁观者渠道,我被告知这一担忧是本文的垮台,我很鼓励尝试非常规渠道。所以,这是一个实验,使行业能够鼓励他们想探索的研究方向,尽管科学支持索赔的困难。换句话说,这是试图让行业经验作为学术环境中的证据,就像在行业环境中一样。

28 | 罗斯(和我)将欣赏你的一封赞许电子邮件。 29 | 谢谢。 30 | 美国在上图中你看到 [理查德·费曼](https://en.wikipedia.org/wiki/Richard_Feynman) 诺贝尔奖获奖物理学家。他不关心类型系统,但他是一个非常有趣的人,可能是最实用的理论家,并通过发明为计算机科学贡献 [量子计算机](https://en.wikipedia.org/wiki/Quantum_computer) 。 31 | -------------------------------------------------------------------------------- /translated/Modifiers vs Annotations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Modifiers vs Annotations" 3 | date: 2015-08-11 17:47:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/08/modifiers-vs-annotations/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 这是另一个单挑和反馈的呼吁。我们一直在讨论有关 Kotlin 注释语法的选项,推出实验,收集反馈。当我们现在完成语言的定义时,我们以前推迟的许多痛点就是浮出水面。我们必须作出决定,有时以防御的方式。在这篇文章中,我将概述我们所选择的选项以及我们所提供的决策。 18 | ## 设置阶段:一些介绍性定义 19 | 20 | Kotlin(以及许多其他语言)有两种*元数据*: 21 | 22 | * 修饰语(如公开,开放或抽象),内置于语言中 23 | * 在库中定义的注释(如 @Test 或 @Inject)也可以有参数。 24 | 25 | 与许多语言不同,在 Kotlin **中,大多数修饰符都不是正确的关键字**。只有在适用的情况下才具有特殊意义,即声明前。编译器不会介意,如果你调用你的变量或类`public`: 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | ```kotlin 32 | val public = "PUBLIC!" 33 | println(public) 34 | ``` 35 | 36 | {% raw %} 37 |

38 | {% endraw %} 39 | 40 | 这种技术被称为“软关键字”或“上下文关键字”。 41 | ## 梦想:统一元数据 42 | 43 | 当 Kotlin 被设想时,我个人对*统一元数据*的想法很着迷:我认为我们应该达到一个修饰符和注释之间没有区别的地方。所有的元数据应该被明确声明,并被平等对待。它是统一,可扩展,否则伟大!语言设计师和用户都可以定义注释并扩展其语言。在我理想的世界里,没有修饰符,只有注释,即`public`将是一个注释,以及`inline`,`abstract`,枚举`等 44 | 那么事实证明,在语言实现的早期阶段,技术上引入修改器(而不是注释)容易得多,所以我们这样做是一个临时措施。 45 | 这就是为什么 Kotlin 允许没有`@`的注释:我希望他们看起来像修饰符,以便稍后可以将修饰符转换为注释。许多您可能认为的修改器实际上是注释:`data`和`inline`是最受欢迎的。 46 | ## 现实:模具事宜 47 | 48 | 现在,我不得不承认,统一元数据的梦想虽然并不完全不可能实现,但实际上是不切实际的。 49 | 修饰符具有在解析阶段之后可用的特有属性。这对于一些关键性的任务非常重要(例如在 IDE 中),因为它们有时候依赖于知道什么是公共的,哪些不在上下文中,没有什么是准备好但是已解析的文本。 50 | 所以,**修饰符必须保留**。 51 | ## 注释语法 52 | 53 | 现在,最初的想法是挑战的:如果我们不统一修饰符和注释,是否有一点保持他们的语法相似? 54 | 一方面,**看起来很酷**,我们可以在注释之前省略“@”。人们可以认为它减少了代码中的“噪音”数量。 55 | 另一方面,有一堆问题,其中没有一个是至关重要的,但是它们很烦人: 56 | 首先,**它不正交**:我们可以在注释前使用“@”。这是大多数时候的惯例问题。但是有时我们必须使用“@”:本地类和函数是最臭名昭着的例子。 57 | 然后,**会使错误恢复复杂化**:代码正确无误,但是当您在 IDE 中键入时,解析器必须能够从错误中恢复并识别*不完整的代码结构代码*。随机标识符是可解析的,因为注释使这一点相当复杂。 58 | 此外,**使命名约定变得复杂**:我们用来命名小写中第一个字母的注释,例如`@inline`或`@platformStatic`。许多人在这种情况下发现骆驼案多字的名字像后者一个丑陋。因此,有一些建议只能将小写字母用于单字注释(看起来像修饰符)。还有 Java 注释(其中许多被频繁使用)仍以大写第一个字母命名。总而言之,这是一团糟。一个小的,但还是一团糟。 59 | 而且更具技术性,但仍然是现实的关切:**使语言进化复杂化**。我们无法在下一个版本的 Kotlin 中添加一个新的修饰符“foo”,而不会破坏某人的代码:如果某个库具有注释`foo`,则会发生冲突,编译器可以做的最好的报错。 60 | 所以我们认为这个成本太小了。 61 | ## 丰富的修饰符 62 | 63 | 顺便提一句,我们认为,在需要时允许修饰符具有参数是有意义的。它有助于语言演进(我们可以在以后添加可选参数到现有的修饰符),似乎没有引入任何问题。例如,`annotation`是一个修饰符(在解析名字之前需要知道注解类),但它有参数: 64 | 65 | {% raw %} 66 |

67 | {% endraw %} 68 | 69 | ```kotlin 70 | annotation(repeatable = true) class MyRepeatableAnnotation 71 | ``` 72 | 73 | {% raw %} 74 |

75 | {% endraw %} 76 | 77 | ## 结论 78 | 79 | 我们将要求所有注释以“@”为前缀。 80 | 顺便提一下,一些注释将会变成修饰符:例如,`data`和`inline`。 81 | **欢迎您的反馈**:我们想知道我们是否在这里遗漏了您的意见。 82 | 特别感谢作者和贡献者 [这个论坛的主题](https://devnet.jetbrains.com/message/5549947) 。 83 | -------------------------------------------------------------------------------- /translated/More Deprecations Coming.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]More Deprecations Coming" 3 | date: 2015-04-06 12:55:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/04/more-deprecations-coming/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 语言清理列表中还有两个项目:后台字段语法和静态类型断言运算符。 18 | ## 背景领域 19 | 20 | 当你有一个属性并且你不手动实现它的至少一个访问器(`get`或`set`)时,这样一个属性得到一个< em>,即一个保存其值的存储器: 21 | 22 | {% raw %} 23 |

24 | {% endraw %} 25 | 26 | ```kotlin 27 | var foo: Foo? = null 28 |     set(v) { 29 |         ... 30 |     } 31 |     // default getter is used 32 | ``` 33 | 34 | {% raw %} 35 |

36 | {% endraw %} 37 | 38 | 您可以通过前缀为`$`符号的属性名称访问备份字段: 39 | 40 | {% raw %} 41 |

42 | {% endraw %} 43 | 44 | ```kotlin 45 | $foo = 2 46 | ``` 47 | 48 | {% raw %} 49 |

50 | {% endraw %} 51 | 52 | 这可能需要绕过自定义访问器。 53 | 这个功能很少使用,并且与字符串模板(`“$ foo”`)的视觉冲突,令人惊讶的是,与支持字段无关),所以我们想要摆脱它。 54 | 如果您真的需要它,您的解决方法是支持属性*: 55 | 56 | {% raw %} 57 |

58 | {% endraw %} 59 | 60 | ```kotlin 61 | private var _backing: Foo? = null 62 | var foo: Foo? 63 |     get() = _backing 64 |     set(v) { 65 |         ... 66 |     } 67 | ``` 68 | 69 | {% raw %} 70 |

71 | {% endraw %} 72 | 73 | 由于不为私有属性生成 getter 或 setter,所以产生的字节代码将是完全相同的。 74 | ## 静态类型断言 75 | 76 | 另一个很少使用的功能是以下语法: 77 | 78 | {% raw %} 79 |

80 | {% endraw %} 81 | 82 | ```kotlin 83 | foo(bar, null: Baz) 84 | ``` 85 | 86 | {% raw %} 87 |

88 | {% endraw %} 89 | 90 | 表达式中冒号后面的类型指定了*预期的静态类型*,即这不是一个转换,而只是一个指令给编译器以确保该表达式的静态类型实际上是“Bar “。很难解释这个事实与这很少使用有关(我认为 Kotlin 的测试数据是唯一的主要客户)。所以,我们正在撤回这种语法,也许稍后会使用它(可能包括数组/列表切片和 C 样式三元条件)。 91 | 如果您需要这种语法来消除您的重载错误,`作为`是一个很好的解决方法。 92 | -------------------------------------------------------------------------------- /translated/New Style for User Groups.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]New Style for User Groups" 3 | date: 2017-05-16 17:52:00 4 | author: Alina Dolgikh 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | translator: pye52 13 | translator_url: https://github.com/pye52 14 | source_url: https://blog.jetbrains.com/kotlin/2017/05/new-style-for-user-groups/ 15 | --- 16 | 17 | 自从我们在2017年初推出Kotlin社区支持计划以来,用户群组数量已经增长到了45+,而且每个月都会有2-4个用户群增加。请在kotlinlang.org网站community连接下的 [完整列表](http://kotlinlang.org/community/user-groups.html#kotlin-user-groups-47) 寻找离你最近的用户群组。今天我们介绍Kotlin用户组徽标和个人资料图片。 18 | 19 | {% raw %} 20 |

Kotlin User Group Logo

21 | {% endraw %} 22 | 23 | {% raw %} 24 |

25 | {% endraw %} 26 | 27 | 我们这样做有两个主要原因。首先,我们收到了大量来自社区的请求,需要我们提供与品牌相关的样式材质。其次,我们希望为用户群体和社区内容提供独特的风格,以便区分哪些Kotlin相关资料是官方的,哪些是由社区创建的(我们真的很高兴你们分享了许多精彩的文章和演示!)标志和个人资料图片是第一步。我们计划在未来设计一个新的Kotlin社区身份的幻灯片模板,横幅和很酷的东西。 28 | # 创建你的用户组的徽标 29 | 30 | 0. 将Kotlin用户组的logo文件复制到你的Google drive(你必须登录到你的Google帐户) 31 | 1. 用你的用户组名称替换掉“Groupname”文本 32 | 2. 下载图片并将它应用到用户组资料上 33 | 34 | 随意创建属于你的独特风格或进行任何微调,但我们建议你不要改变颜色和图形的形状,因为它是Kotlin社区计划的官方标志。你可以在这里下载包括矢量图形和社交网络封面图片示例的[一套图片](https://drive.google.com/open?id=0B3Zi34svOj1RZ2sxZExhblRJc1k)。 35 | # 创建你的用户组的图片 36 | 37 |
38 | “Kotlin_UG_avatar”class
39 | 白俄罗斯Kotlin用户组资料图片示例

40 | 41 | 0. 要创建你的用户组的资料图片,请将Kotlin用户组profile picture文件复制到你的Google drive(你必须登录到你的Google帐户) 42 | 1. 添加用户组地区的缩写名称(根据我们提供的默认示例,最多4个大写字母) 43 | 2. 下载图片并将其应用于你的Facebook,Twitter,meetup.com或任何其他平台的帐号头像上 44 | 45 | ### Kotlin伦敦用户组 [meetup.com](http://meetup.com/)  页面示例: 46 | 47 | “usage-02”class
48 | meetup.com 上的取色:Banner#221f3a,Background#ebedf2,Links#25a4f2 49 | -------------------------------------------------------------------------------- /translated/Our first book about Kotlin is out.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Our first book about Kotlin is out" 3 | date: 2017-02-10 20:00:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/02/our-first-book-about-kotlin-is-out/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们很高兴地宣布 [Kotlin 在行动](https://www.manning.com/books/kotlin-in-action) - 关于 Kotlin 队成员撰写的关于 Kotlin 的书 - 现在已经出版了,作为一本电子书和一本印刷书。这本书是为经验丰富的 Java 开发人员编写的,涵盖了语言的所有方面,而不专注于任何特定的问题领域。在 Manning 早期访问预览计划期间,我们收到了很多有关该书的积极反馈,因此我们希望您也可以享受! 18 | 19 | {% raw %} 20 |

Kotlin in Action book

21 | {% endraw %} 22 | 23 |
24 | 25 | 该书的两个章节涵盖了 Kotlin 的类型系统及其对领域特定语言的支持 [免费预览](https://www.manning.com/books/kotlin-in-action#downloads) 在发布商的网站上。而在我们的 Kotlin 的迷你 IDE 中,您可以尝试从书中的所有例子 [第一个](http://try.kotlinlang.org/#/Kotlin%20in%20Action/chapter%201/1.1/1.1_ATasteOfKotlin.kt) ,也是免费的。 26 | 为了配合这本书的发行,曼宁提供特别折扣,仅限今天有效:如果您在结帐期间输入代码* dotd021017au*,则可以将其减半。 27 | 快乐的阅读,并有一个很好的 Kotlin! 28 | -------------------------------------------------------------------------------- /translated/Slides and Video Kotlin@JVMLS 2011.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Slides and Video: Kotlin@JVMLS 2011" 3 | date: 2011-09-07 15:25:00 4 | author: Andrey Breslav 5 | tags: [PDF, PPT] 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/09/video-kotlinjvmls-2011/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们的幻灯片和视频从 JVM 语言峰会 2011 可通过 [Dob 博士的](http://drdobbs.com/java/231500204) 。请享用。 18 | -------------------------------------------------------------------------------- /translated/Slides from the JVM Language Summit presentations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译] JVM 语言峰会上的演示幻灯片" 3 | date: 2011-07-20 23:16:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/07/slides-from-the-jvm-language-summit-presentations/ 13 | translator: DemoJameson 14 | translator_url: http://www.demojameson.com 15 | --- 16 | 17 | 一个简短的说明:我们已经公开了 JVM 语言峰会上演示和研讨会时使用的幻灯片。 18 | 其中 [演示](http://confluence.jetbrains.net/download/attachments/40702623/JVMLS_talk_2011.pdf?version=1&modificationDate=1311201742425) 涉及到高阶函数和类型安全的 Builder,而 [研讨会](http://confluence.jetbrains.net/download/attachments/40702623/JVMLS_workshop_2011.pdf?version=1&modificationDate=1311201781543) 则涵盖了类、多继承、泛型和 Class objects。 19 | -------------------------------------------------------------------------------- /translated/Spek – A Specification Framework.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Spek – A Specification Framework" 3 | date: 2014-02-17 17:20:00 4 | author: Hadi Hariri 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2014/02/speka-specification-framework/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 一会儿现在,a [很少](http://twitter.com/orangy) [的](http://twitter.com/jonyzzz) [我们](https://plus.google.com/111179551284404865949/about) 一直在开发一个名为 Spek 的项目,这个框架允许您编写可执行规范。它允许您以更人性化的方式编写规范(即测试),而且更重要的是描述性的方式,而无需使用长测试名称,下划线或正则表达式。 18 | 19 | {% raw %} 20 |

21 | {% endraw %} 22 | 23 | 现在已经达到了其第一个里程碑,它足够适合开始在项目中使用,我们准备好反馈和功能要求!它甚至有它的 [自己的网站](http://jetbrains.github.io/spek) 。 24 | ## 简要介绍 25 | 26 | Spek 是一个规范框架。如果您熟悉茉莉花,摩卡,RSpec 或机器规格,那么您将立即看到相似之处。 27 | 28 | {% raw %} 29 |

image

30 | {% endraw %} 31 | 32 | 如果你不熟悉,请简单解释一下: 33 | 34 | * 给定 - 建立测试的上下文,即排列 35 | * 开 - 执行动作,即 Act 36 | * 它 - 验证结果,即 Assert 37 | 38 | Spek 允许您在相同的上下文中拥有多个动作。这是针对相同的**,您可以拥有多个*的*。它也允许你对同一个动作有更多的断言(*它)*。 39 | ## 斯派克不仅仅是 Kotlin 40 | 41 | 斯派克写在 Kotlin。您写的规格也将在 Kotlin。但是,由于 Kotlin 与 Java 完全兼容,您可以使用 Spek 测试新的和现有的 Java 代码。 42 | ## 如何运行? 43 | 44 | IntelliJ IDEA 支持 Spek,TeamCity 也是如此。还有一个控制台运行器,输出文本和 HTML(需要改进)。 45 | 46 | {% raw %} 47 |

image

48 | {% endraw %} 49 | 50 | ## 尝试一下 51 | 52 | 希望你喜欢你看到的,转过身来 [Spek 网站](http://jetbrains.github.io/spek) 了解更多。它仍然在“EAP”,所以报告的问题越多越好。而且由于它是 OSS(Apache 2) [贡献不止一个](http://github.com/jetbrains/spek) 。 53 | -------------------------------------------------------------------------------- /translated/StrangeLoop Slides+Video.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]StrangeLoop Slides+Video" 3 | date: 2011-11-17 16:47:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/11/strangeloop-slidesvideo/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 从我给的谈话的幻灯片和视频 [奇怪的](https://thestrangeloop.com/sessions/the-kotlin-programming-language) 今年是可用的 [这里](http://www.infoq.com/presentations/The-Kotlin-Programming-Language) : 18 | -------------------------------------------------------------------------------- /translated/Talk @ GeekOUT Tallinn Language Design Trade-Offs (Kotlin and Beyond).md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Talk @ GeekOUT Tallinn: Language Design Trade-Offs (Kotlin and Beyond)" 3 | date: 2013-06-10 15:27:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/06/talk-geekout-tallinn-language-design-trade-offs-kotlin-and-beyond/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 这个星期我正在说话 [GeekOUT 塔林](http://geekout.ee/) 和我的同事 Mikhail Vink 和 Sergey Karashevich 星期四举行了一个 15 分钟的演示,告诉你 JetBrains 的 IDE 中的酷东西。 18 | 我的话题是“**语言设计权衡(Kotlin 及其以外)**”,所以可以把它归纳为“为什么设计语言很有趣”。 19 | 20 | {% raw %} 21 |

22 | {% endraw %} 23 | 24 | **抽象** 25 |

如果您的编程语言很小,您可能在 1950 年以前出生,而您的第一台电脑比现在的公寓大。即使是那些语言也不那么小。一个人花费一些时间掌握一种编程语言。为什么?

26 | 因为有很多决定“压缩”成一种语言的形式。没有什么限制程序员的想象力,像编译器,没有什么限制了一个语言设计,就像一个现实世界,其所有的“遗产”,兼容性问题,性能限制,几代老习惯和泄漏抽象。

27 |

这个谈话是关于权衡:为什么我们作为语言设计师,而不是这样做,而不是这样做。

28 | 看到你 [2013 年 6 月 14 日,星期五 11:30 @ Room 2](http://geekout.ee/schedule/andrey-breslav-jetbrains-building-jvm-languages/) UPD: 29 | 30 | * 幻灯片这个演讲 31 | * 关于 Kotlin 的更多幻灯片和视频 32 | 33 | -------------------------------------------------------------------------------- /translated/The Great Syntactic Shift.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]The Great Syntactic Shift" 3 | date: 2012-01-04 09:38:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/01/the-great-syntactic-shift/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 随着 Kotlin 的第一次公开预览即将到来(将于 2012 年 1 月 10 日公布,这是**不到一周**从现在开始!),我们正在把一些事情按顺序排列 18 | 特别是,我们回顾了语言中提供的语法形式,并决定改变一些。这些更改与旧的语法不兼容,我们已经迁移了所有的测试数据,并将更新 [公开的文件](http://jetbrains.com/kotlin) 不久。 19 | 我想指出,这不是这种最后一个变化。Kotlin 还没有发布,直到我们不断收集反馈意见,有时候会发现有些事情需要改变。因此,在 1.0 之前没有向后兼容性保证。我们意识到向后兼容性是多么的重要,但是我们最好能够根据真实人群的需求创建一个非常好的设计。 20 | 以下是我们所做的更改的概述 21 |
22 | **命名空间已经死了。长期使用套餐。** 23 | *命名空间*的概念演变成如此接近 Java 包的东西,我们决定重命名它。 **名称空间**关键字替换为**包**关键字。另外,不再支持*命名空间块*。 24 | **箭头失去重量** 25 | 在**表达式中,功能文字中使用了一个箭头,**使用箭头。某些语言使用“胖箭头”(=>),有些则使用“薄箭头”( - >)。最初,我们使用了胖子,但是与比较有一些不幸的相互作用,像这样: 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | ```kotlin 32 |   val higherThanY  = {x => y <= x} 33 | ``` 34 | 35 | {% raw %} 36 |

37 | {% endraw %} 38 | 39 | 所以我们决定切换到一个很薄的箭头: 40 | 41 | {% raw %} 42 |

43 | {% endraw %} 44 | 45 | ```kotlin 46 |   val higherThanY  = {x -> y <= x} 47 | ``` 48 | 49 | {% raw %} 50 |

51 | {% endraw %} 52 | 53 | **更易读的功能类型** 54 | 在旧的语法中,我们编写了如下的函数类型: 55 | 56 | {% raw %} 57 |

58 | {% endraw %} 59 | 60 | ```kotlin 61 | val f : fun(Int) : String 62 | ``` 63 | 64 | {% raw %} 65 |

66 | {% endraw %} 67 | 68 | 这与 Kotlin 的函数声明语法非常接近,似乎完全符合逻辑。不幸的是,随着这个功能开始与他人互动,事情变得更糟: 69 | 70 | {% raw %} 71 |

72 | {% endraw %} 73 | 74 | ```kotlin 75 | fun max(col : Collection, compare : fun(Int, Int) : Int) : Int 76 | ``` 77 | 78 | {% raw %} 79 |

80 | {% endraw %} 81 | 82 | 你在冒号迷路了吗?我也是… 83 | 因此,我们决定将函数类型语法更改为以下内容: 84 | 85 | {% raw %} 86 |

87 | {% endraw %} 88 | 89 | ```kotlin 90 | fun max(col : Collection, compare : (Int, Int) -> Int) : Int 91 | ``` 92 | 93 | {% raw %} 94 |

95 | {% endraw %} 96 | 97 | **还有一点** 98 | 此外,我们在类型中引入了可选括号,将元组语法更改为与括号化表达式列表区分开来,并进行了一些次要(向后兼容)更改。所有这一切将很快反映在文档中。像往常一样,您的反馈非常受欢迎。 99 | 敬请关注,下周二不要错过公告! 100 | -------------------------------------------------------------------------------- /translated/The Kotlin issue tracker is now public.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]The Kotlin issue tracker is now public" 3 | date: 2011-08-03 10:24:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/08/the-kotlin-issue-tracker-is-now-public/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 遵循其他 JetBrains 项目的传统,我们向公众开放了 Kotlin 的问题追踪器。在问题跟踪器中,您可以看到我们正在开展的一些想法和事情,您还可以提出问题,要求语言中的新功能或当前设计的更改。我们希望跟踪器能够让我们比博客和 Confluence 页面上的评论更加结构化。 18 | 跟踪器的 URL 为: [http://youtrack.jetbrains.net/issues/KT](http://youtrack.jetbrains.net/issues/KT) -------------------------------------------------------------------------------- /translated/The Road Ahead.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]The Road Ahead" 3 | date: 2012-01-16 10:10:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2012/01/the-road-ahead/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 众所周知,我们上周推出了我们的第一个公开发布: [kotlin-demo.jetbrains.com](http://kotlin-demo.jetbrains.com/) 。而当您(7K + 独特访问者)正在玩乐时,我们将继续致力于 Kotlin 编译器,IDE 和标准库。在这篇文章中,我将概述我们的计划。 **** 18 | **您今天可以玩的** 19 | 今天你可以已经 [尝试](http://kotlin-demo.jetbrains.com/) Kotlin 的许多功能。其中包括: 20 | 21 | * 功能文字(封闭) 22 | * 扩展功能和属性 23 | * 特征(接口中的代码) 24 | * 声明网站/使用网站差异 25 | * 一流的代表团 26 | * 混合 Java / Kotlin 编码 27 | 28 | 看到 [Kotlin 文档](http://jetbrains.com/kotlin) 更多细节。 29 | 将事情用于真正的问题揭示了设计的局限性,不一致性和其他缺点,这是**好**,因为那时我们可以 [修复它们](http://blog.jetbrains.com/kotlin/2012/01/the-great-syntactic-shift/) 。关键是在我们发布 1.0 版本**之前,找到并修复几乎所有的东西**。发布后,我们将无法引入向后不兼容的更改,因此修复语言将变得困难。所以,请尝试他们,并在下面的评论中或在...中给我们您的反馈** [问题追踪器](http://youtrack.jetbrains.net/issues/KT) 。 30 | **什么让我们忙碌** 31 | ****目前,我们正在稳定现有功能,并在 IDE 和语言基础设施(建筑物等)上工作。本月最热门的话题是: 32 | 33 | * 模块:module = 编译和依赖关系管理单元; 34 | * Ant 和 Maven 集成:使用您最喜欢的构建基础设施; 35 | * 标准库:JDK 集合,IO 等的实用功能; 36 | * JavaScript 后端:原型还是很早,但是它正在改进。 37 | 38 | **ToDo** 39 | 当玩 Kotlin 时,很方便的知道什么还不支持。列表很长,其中一些功能甚至可能会等待 2.0: 40 | 41 | * 可见性检查:可惜我们没有这些私人,公共等等; 42 | * 本地功能:函数内部的函数可以是非常方便的事情; 43 | * 标记元组(又名记录):从函数返回很多东西; 44 | * KotlinDoc:像 JavaDoc,但是基于 Markdown; 45 | * 注释:可定制的元数据以启用编译器扩展; 46 | * 次要建设者:有时你需要多于一个; 47 | * 枚举类(代数数据类型):像 Java 枚举,但更好; 48 | * 模式匹配:对象结构的便利条件; 49 | * 内联函数:用于自定义控件结构的零开销闭包; 50 | * 标签:断开并继续外圈; 51 | * 键入别名:缩短长泛型等等; 52 | * 自我类型:永远不要写尴尬的递归泛型; 53 | * 动态类型:互操作性 JavaScript 和其他动态语言; 54 | * Eclipse 插件:Kotlin IDE!= IntelliJ IDEA; 55 | * LLVM 后端:将 Kotlin 编译成本机代码... 56 | 57 | 即使没有这些东西,你可以有很多的乐趣。尝试使用**扩展功能**和**关闭**,**traits**和**字符串模板**等等。解决问题(随着时间的推移我们会加入更多)。 [有一个漂亮的 Kotlin](http://kotlin-demo.jetbrains.com/) ! 58 | -------------------------------------------------------------------------------- /translated/Try Kotlin in Your Browser New Look and More Features.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Try Kotlin in Your Browser: New Look and More Features" 3 | date: 2015-04-16 20:24:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/04/try-kotlin-in-your-browser-new-look-and-more-features/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们发布了 [Kotlin 网络演示](http://kotlin-demo.jetbrains.com) 不久之前,它做了一个很好的工作,帮助人们在浏览器中尝试 Kotlin,并分享可运行的代码。现在,一个闪亮的新版本已经准备好了,现在是退休的旧版本了。 18 | 遇见 [try.kotlinlang.org](http://try.kotlinlang.org) 作为 Kotlin 的基于 Web 的迷你 IDE 的新化身。 19 | ## 特征 20 | 21 | 新版本带来 22 | 23 | * 闪亮的新设计 24 | * 全屏模式 25 | * JUnit 支持(包括智能测试结果视图) 26 | * 多文件项目(我们的示例中的某些文件,如测试,是只读的) 27 | * 从堆栈跟踪导航到代码 28 | 29 | 30 | {% raw %} 31 |


32 | try.kotlinlang.org
33 |

34 | {% endraw %} 35 | 36 | ## 分享你的代码 37 | 38 | 您可以使用 Google,Facebook 或 Twitter 帐户登录。登录后,您可以创建新项目并复制示例项目以进行更改。 39 | 任何已保存的项目(我们的示例或您的自定义代码)可以由**共享,只需从地址栏复制和粘贴链接**。 40 | 例如,这是一个 [链接到示例程序](http://try.kotlinlang.org/#/Examples/Problems/Sum/Sum.kt) 。
41 | 这就是 [将我的代码链接到表示 Go 的推迟作为 Kotlin 库](http://try.kotlinlang.org/#/UserProjects/-1984665128/1040749715610173087711460271843) 。 42 | ## 旧网络演示 43 | 44 | 旧的 Web Demo 已经退休,暂时放入只读模式。您仍然可以运行您的程序,但不能修改或创建新程序。 45 | 为 Kotlin Web Demo 创建的所有帐户和程序已迁移到 [try.kotlinlang.org](http://try.kotlinlang.org) 。 46 | ## 反馈 47 | 48 | 像往常一样欢迎您的反馈。 49 | **享受**! 50 | -------------------------------------------------------------------------------- /translated/Type-Safe Web with Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Type-Safe Web with Kotlin" 3 | date: 2013-06-17 18:13:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2013/06/type-safe-web-with-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | “”class我们 [告诉过你了](http://blog.jetbrains.com/kotlin/2013/01/an-interview-with-andy-selvig-author-of-kara-web-framework/) 关于 [卡拉 Web 框架](http://karaframework.com/) 不久以前。它写在 Kotlin,依赖类型安全的建设者。它不一定是 Kotlin 唯一的 Web 框架,但是一般原则似乎很好,所以我写了一篇关于这些原则的文章:**使用 Kotlin 的类型安全 Web **,它概述了框架设计,然后给出了有关构建器,扩展等的许多细节。 id =“more-1091”> 18 | 本文中使用的**示例**可在 [https://github.com/abreslav/kara-files/blob/master/src/tutorial.kt](https://github.com/abreslav/kara-files/blob/master/src/tutorial.kt) 和 [https://github.com/abreslav/kara-files/blob/master/src/small_builder.kt](https://github.com/abreslav/kara-files/blob/master/src/small_builder.kt) [也可以从我在圣彼得堡的 JPoint 演讲中获得**幻灯片**](https://prezi.com/hndtabwcfy5h/type-safe-web-with-kotlin-jpoint/) 线上 [。
19 | 这个讲话是用俄语给出的,视频是可以访问的](http://javapoint.ru/talks/12/) 这里。 20 | -------------------------------------------------------------------------------- /translated/Upcoming Feature Deprecations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Upcoming Feature Deprecations" 3 | date: 2015-04-02 13:00:00 4 | author: Andrey Breslav 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/04/upcoming-changes-and-more/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 当我们完成语言设计时,许多事情都要被清理,其中包括最初设计的(通常是部分的)实现的功能,但是不是值得支持的。 18 | 在即将到来的 M12 里程碑中,我们将不赞成使用这些功能,因此您可以在完全删除代码之前迁移代码。 19 | ## 所需类 20 | 21 | 有些人可能已经听说过这个功能:Kotlin 的特质可以“扩展”类(我们实际上使用术语“require”)。 22 | 从技术上讲,这意味着当一个类扩展这样的特征时,它必须(直接或间接地)扩展所需的类。这个功能很少使用,所以我们弃用它。 23 | ## 捕获类型参数 24 | 25 | 当通用类`Outer`具有**内部**类`Inner`时,Java 允许我们使用`Outer`代码> Inner`: 26 | 27 | {% raw %} 28 |

29 | {% endraw %} 30 | 31 | ```kotlin 32 | class Outer { 33 |     inner class Inner { 34 |         fun takeT(p: T) { ... } 35 |     } 36 |   37 |     fun inOuter(t: T) { 38 |         Inner().takeT(t) 39 |     } 40 | } 41 | ``` 42 | 43 | {% raw %} 44 |

45 | {% endraw %} 46 | 47 | 虽然这个功能非常合乎逻辑,但是这个功能也很少使用,而且在 Kotlin 目前的实现中,在生产质量之前需要大量的工作。所以,我们将禁止这一点,也可能在后来的 Kotlin 版本中实现。 48 | 如果你碰巧使用这个(这是不太可能的),你的解决方法是相当直截了当的: 49 | 50 | {% raw %} 51 |

52 | {% endraw %} 53 | 54 | ```kotlin 55 | class Outer { 56 |     inner class Inner { 57 |         fun takeT(p: T) { ... } 58 |     } 59 |   60 |     fun inOuter(t: T) { 61 |         Inner().takeT(t) 62 |     } 63 | } 64 | ``` 65 | 66 | {% raw %} 67 |

68 | {% endraw %} 69 | 70 | ## 超类型协同专业化 71 | 72 | 我真的怀疑任何人,即使知道这个功能存在“:)”class 73 | 当前的编译器允许一个类/ trait 具有同一个类的多个(间接)超类型,如果其中一个是另一个的子类型: 74 | 75 | {% raw %} 76 |

77 | {% endraw %} 78 | 79 | ```kotlin 80 | open class Base : List { 81 |     ... 82 | } 83 |   84 | class Derived : Base(), List { // no error 85 |   86 | } 87 | ``` 88 | 89 | {% raw %} 90 |

91 | {% endraw %} 92 | 93 | 请注意,Kotlin 中的`List`是共同的。 94 | 尽管如此,逻辑上,我们知道这几乎没有任何用例,但支持这一点涉及到很多编译器的魔法,并且断开了 Java 的互操作,所以我们要放弃这个。 95 | ## 更多的鄙视来了 96 | 97 | 我们会尽快分享一些这样的计划。并将随时更新我们正在实施的功能。 98 | -------------------------------------------------------------------------------- /translated/Use Kotlin with npm, webpack and react.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Use Kotlin with npm, webpack and react" 3 | date: 2017-04-18 15:23:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2017/04/use-kotlin-with-npm-webpack-and-react/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 在 Kotlin 1.1 中,编译器生成 JavaScript 功能已经达到生产可用状态。当然,编译器支持还不足以解决现实生活中的问题,所以我们继续将 Kotlin 整合到更大的 JavaScript 生态系统中。 18 | 今天,我们要介绍两个新项目:一个将 Kotlin 与 npm,webpack 和 karma 集成在一起的 Gradle 插件,以及一个实现了 Kotlin/JVM 后端和基于 React 的 Kotlin/JS 前端的全栈应用程序示例。 19 | ## Kotlin 前端插件 20 | 21 | [Kotlin 前端插件](https://github.com/Kotlin/kotlin-frontend-plugin)  允许你使用 webpack 构建和部署 Kotlin 前端应用。你可以使用 npm 作为应用的包管理器,插件将负责将依赖的包下载并将其打包到生成的 JS 文件中。该插件还与 Karma 集成,允许你运行应用的测试用例。为了获得最佳的工作流程,该插件支持连续编译和实时预览,确保你的应用在浏览器中始终是最新的。 22 | [README](https://github.com/Kotlin/kotlin-frontend-plugin/blob/master/README.md)  文件给出使用插件的说明,示例目录包含一个 [简单的例子](https://github.com/Kotlin/kotlin-frontend-plugin/tree/master/examples/frontend-only)  显示如何将其应用于真实的项目。 23 | ## Kotlin React 例子 24 | 25 | [Thinkter](https://github.com/Kotlin/kotlin-fullstack-sample)  是使用 Kotlin 构建的现代全栈应用程序的一个例子。后端运行在 Jetty 并使用 [Ktor](https://github.com/kotlin/ktor) (由 Kotlin 团队开发的 Kotlin Web 应用程序框架)。前端使用 React; Kotlin 的 React Wrappers 是 [作为项目的一部分提供](https://github.com/Kotlin/kotlin-fullstack-sample/tree/master/frontend/src/org/jetbrains/react) 。欢迎你在项目中使用我们的 React Wrappers,并根据自己的需要进行调整。请注意,我们正在努力在内部开发 React Wrappers,我们正在考虑将它们作为单独的开源库发布。 26 | 想要了解 Kotlin React 的代码,可以直接阅读 [应用组件](https://github.com/Kotlin/kotlin-fullstack-sample/blob/master/frontend/src/org/jetbrains/demo/thinkter/NewThoughtComponent.kt) 的源码。 27 | Kotlin 开发团队非常欢迎你们反馈意见!请在 GitHub 上提交问题,逛逛 [论坛](https://discuss.kotlinlang.org/) ,或者加入[Kotlin Slack](http://slack.kotlinlang.org/) 的 #javascript 频道。 28 | -------------------------------------------------------------------------------- /translated/Webinar Recording Functional Programming with Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Webinar Recording: Functional Programming with Kotlin" 3 | date: 2015-11-05 13:21:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/11/webinar-recording-functional-programming-with-kotlin/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们的十月二十二日网络研讨会**功能编程与 Kotlin**的录音现已上线 [JetBrainsTV YouTube 频道](https://youtu.be/AhA-Q7MOre0) 。 18 | 在这个演讲中,Mike Hearn 通过实例提供了 Kotlin 编程的简要介绍:在打字时创建一个带有自动填充建议的文本框。演示项目可用 [GitHub](https://github.com/mikehearn/KotlinFPWebinar) 。 19 | 涵盖的主题包括: 20 | 21 | * 使用功能转换 22 | * 不变性 23 | * 懒惰和懒惰的无限序列 24 | * 使用 funKTionale,这是一个使用 Haskell 已知的几个功能来扩展 Kotlin 的库 25 | * 模式匹配 26 | * 无效用户界面 27 | 28 | 29 | {% raw %} 30 |

31 | {% endraw %} 32 | 33 | 34 | {% raw %} 35 |

36 | {% endraw %} 37 | 38 | 视频包括跟随的时间戳 [议程公布](http://blog.jetbrains.com/kotlin/2015/10/join-live-webinar-functional-programming-with-kotlin/) : 39 | `00:08` - Intoduction 和演示应用程序 40 | `05:00` - `apply` function 41 | `05:45` - 介绍 NGram 数据类 42 | `08:22` - 创建扩展方法 43 | `09:55` - 使用懒惰的无限序列 44 | `10:35` - `map`功能 45 | `11:10` - `to`函数和中缀符号 46 | `14:35` - 数据类的解构 47 | `19:20` - `filter`,`let`和`全部` 48 | `23:00` - 调试懒惰代码 49 | `24:20` - 将完成添加到 UI 50 | `25:18` - 以功能方式加载数据 51 | `28:30` - 提高数据加载性能 52 | `33:20` - 改善 RX 风格的 UI 响应能力 53 | `40:05` - 使用 [公约](https://github.com/mplatvoet/kovenant) 图书馆 54 | `42:03` - 使用 [funKTionale](https://github.com/MarioAriasC/funKTionale) 图书馆 55 | `44:10` - 调用 56 | `45:35` - 问题 57 | 关于主持人: 58 | 感谢所有与会者的问题!如果还有一些,请联系麦克或我们的团队。 59 | 欢迎您提出未来网络研讨会的主题。 60 | 我们来吧 kotlin!* 61 | -------------------------------------------------------------------------------- /translated/Webinar Recording. Quasar Efficient and Elegant Fibers, Channels and Actors.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]Webinar Recording. Quasar: Efficient and Elegant Fibers, Channels and Actors" 3 | date: 2015-09-21 13:40:00 4 | author: Roman Belov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2015/09/webinar-recording-quasar-efficient-and-elegant-fibers-channels-and-actors/ 13 | translator: 14 | translator_url: 15 | --- 16 | 17 | 我们的 9 月 16 日网络研讨会纪录片:高效优雅的光纤,频道和演员**现在可以在 [JetBrainsTV YouTube 频道](https://youtu.be/Nmob2MB2Qo8) 。 18 | 在本次网络研讨会中,Fabio Tudone 展示了如何使用 Quasar 来创建高度并发的软件。他涵盖了 Kotlin 语法的基础知识,并展示了 Quasar 如何使用 Kotlin 的优势来提供简洁明了的 API。 19 | 演示项目可用 [GitHub](https://github.com/circlespainter/quasar-kotlin-jetbrains-webinar/releases) 。 20 | 视频包括跟随的时间戳 [议程公布](http://blog.jetbrains.com/kotlin/2015/09/join-live-webinar-quasar-and-kotlin/) : 21 | 00:55 - 什么是类星体和纤维? 22 | 12:22 - 什么是类星体? 23 | 15:50 - 什么是为什么使用类星体纤维? 24 | 21:15 - 从异步到高效的与 Quasar 的光纤同步 25 | 27:13 - 类星体演员和选择性接收 26 | 37:54 - 类星体数据流 27 | 45:19 - Pulsar:Quasar 的惯用 API Clojure 28 | 45:19 - Comsat:有类星体纤维的类固醇的现有 API 29 | 47:07 - 用于 HTTP,SSE 和 WebSockets 的 Comsat Web Actors 30 | 49:58 - Capsule:部署 Quasar 和任何 JVM 应用程序 31 | 32 | {% raw %} 33 |

34 | {% endraw %} 35 | 36 | 关于主持人: 37 | 感谢所有与会者的问题!如果还有一些,请联系法比奥或我们的团队。 38 | 欢迎您提出未来网络研讨会的主题。 39 | 我们来吧 kotlin!* 40 | -------------------------------------------------------------------------------- /translated/Webinar recording Developing Multiplatform Projects in Kotlin 1.2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Webinar recording: Developing Multiplatform Projects in Kotlin 1.2 3 | author: Roman Belov 4 | date: 2017-12-11 19:07:00 5 | tags: 6 | categories: 官方动态 7 | reward: false 8 | reward_title: Have a nice Kotlin! 9 | reward_wechat: 10 | reward_alipay: 11 | source_url: https://blog.jetbrains.com/kotlin/2017/12/webinar-recording-developing-multiplatform-projects-in-kotlin-1-2/ 12 | --- 13 | 14 | "Developing Multiplatform Projects in Kotlin 1.2"网络研讨会在上周成功举办。感谢所有与会者提出的精彩问题。我们很高兴在今天发布它的全程录音。请尽情在评论里为新的网络研讨会主题提出你的意见。下次再见! 15 | 16 | {% raw %} 17 |

18 | {% endraw %} 19 | 20 | Kotlin 1.2最重要的一个特性是构建跨平台项目。跨平台项目允许你采用Kotlin编写的应用层(JVM下的服务器代码,在浏览器运行的JavaScript以及移动设备app)业务逻辑代码得到重用。代码的公共部分将被编译到所有平台,并且可以委托给某些平台特定的api或代码库的实现。平台依赖部分同样使用Kotlin编写,并且可以不受限制地访问平台的特性。 21 | 在这次演讲中,我们将能看到使用Kotlin进行跨平台开发的语言和IDE特性,以及可用于跨平台代码的库。在示例项目中我们可以学习到HTML的同构渲染(渲染代码可在前后端得到重用),以及Kotlin跨平台开发的其他功能。 22 | 讲师: 23 | 24 | > ![](https://d3nmt5vlzunoa1.cloudfront.net/kotlin/files/2017/12/Dima.png)Dmitry Jemerov是一个多年经验的IntelliJ IDEA开发者,也是Kotlin早期的代码贡献者之一 。现在他领导这Kotlin的tooling开发组。 Dmitry也是《Kotlin in Action》的作者之一。 -------------------------------------------------------------------------------- /translated/Why JetBrains needs Kotlin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "[译]为什么 JetBrains 需要 Kotlin" 3 | date: 2011-08-02 15:52:00 4 | author: Dmitry Jemerov 5 | tags: 6 | keywords: 7 | categories: 官方动态 8 | reward: false 9 | reward_title: Have a nice Kotlin! 10 | reward_wechat: 11 | reward_alipay: 12 | source_url: https://blog.jetbrains.com/kotlin/2011/08/why-jetbrains-needs-kotlin/ 13 | translator: DemoJameson 14 | translator_url: http://www.demojameson.com 15 | --- 16 | 17 | 动机是人们在学习或使用新的编程语言时首先要问的问题。 Kotlin 文档对于这门语言为何出现已经做了相当详细的说明。尽管如此,我们还是乐于让大家更加清楚 JetBrains 希望从这门语言上获得什么。这门语言的开发显然是项长期的工作,我们明确意识到需要多年才能达成目标。而以下就是为什么我们愿意做这个投入的原因。 18 | 19 | 首先,这关乎我们自己的生产力。虽然我们已经为若干门 JVM 语言开发过工具,但都是基于 IntelliJ 的 IDE 完全用 Java 编写的。IntelliJ 构建系统基于 Groovy 和 Gant,同时 Groovy 也用于部分测试,RubyMine 中则有一些 JRuby 代码,这是目前的概况。我们希望通过切换到更具表现力的语言来提高生产力。同时,我们不希望这门语言存在与 Java 交互(新语言将逐步引入,需要与现有代码库顺畅地进行交互)或编译速度(我们的代码库需要使用 javac 编译很长的时间,任何程度的变慢我们都无法接受)方面的问题。 20 | 21 | 接着这点则十分简单明了:我们期望 Kotlin 推动 IntelliJ IDEA 的销售。我们正在开发一种新的语言,但是不打算让它替代 JVM 构建的整个生态系统。因此,您可以在使用 Kotlin 构建的项目中继续使用 Spring 和 Hibernate 或其他类似的框架。虽然 Kotlin 本身的开发工具将是免费的和开源的,但对企业开发框架和工具的支持仍将是 IDE 的商业版本 IntelliJ IDEA Ultimate 的一部分。所以使用 Kotlin 时也将获得完整的框架支持。 22 | 23 | 最后一点不太明显,但仍然很重要:新的编程语言是许多人喜欢谈论的话题,而我们公布 Kotlin 的那第一天就证明了这一点。许多熟悉 JetBrains 的人相信我们能够在这个项目中做得很好。因此我们相信对 JetBrains 的这种信任和日益增长的社区意识不仅将推动公司的业务发展,而且还将吸引更多的人来构建开发工具同时获得乐趣。 24 | 25 | 另外我们想重申:Kotlin 的工作并不会影响我们对其他开发工具的投入,特别是 Scala 插件。如果您已经对 Scala 感到满意,并且不需要另一种新语言,我们将继续尽力为您提供一流的 Scala 开发工具。 --------------------------------------------------------------------------------