Kotlin 1.3 with support for corutin, Kotlin / Native beta version and more
The other day, Kotlin 1.3 came out with a set of related libraries, build tools and training materials.
We make Kotlin as a tool for developing applications of any scale on any platforms. In Kotlin 1.3, thanks to Korutin, reading and writing non-blocking asynchronous code has become easy and convenient. Scalability has become much more accessible. In the new release, we also released the beta version of Kotlin / Native, which allows you to compile the Kotlin code directly into machine code. Kotlin multiplatform features now work on all supported platforms, which allows, for example, using the same business logic in Android and iOS applications. Common logic can also be used for servers and mobile and web clients. In addition, the opportunity to write easily portable multiplatform libraries, which will take on most of the daily tasks.
In the near future, we will conduct a series of webinars on the main features of version 1.3, sign up here .
This year, the Kotlin ecosystem has grown at an unprecedented pace. Since January 2018, approximately 1.5 million users have edited the code on Kotlin, compared with last year, their number more than doubled. The knowledge base on StackOverflow and in our public Slack is also growing at an impressive pace. And we are very pleased that the Kotlin community is so responsive and friendly.
We like how the ecosystem that has developed around Kotlin grows and develops. Kotlin is friends with the Google Cloud Platform , the Spring Framework and Gradle , not to mention official support on the Android platform . The open source community creates excellent libraries such as RxKotlin , mockito-kotlin ,TornadoFX , Kodein and ΛRROW . Already moving to Kotlin or planning to migrate projects such as Square's Okio and LibreOffice . We invite everyone to join the Kotlin ecosystem with their ideas and projects.
Not only JetBrains employees contributed to Kotlin 1.3, but also many other people who created pull-requests, bug reports and supported all kinds of feedback with us. We really appreciate your help in the development of Kotlin!
Korutiny is a modern way of writing non-blocking asynchronous code that is easy to understand and convenient to modify. This powerful tool can be used for a variety of purposes - from shifting the computational load to background workers (worker) to implementing complex network protocols. The kotlinx.coroutines library, version 1.0 of which was included in this release, provides a solid foundation for managing asynchronous tasks at any scale, including their creation, cancellation, exception handling, and cases related to the user interface.
Start today at kotl.in/coroutines !
Kotlin / Native uses LLVM to compile Kotlin source code into standalone binaries (no virtual machine needed) for a variety of operating platforms and processor architectures, including iOS, Linux, Windows, Mac, and even WebAssembly and embedded systems such as STM32. Kotlin / Native supports fully automatic memory management, provides interaction with C and Objective-C (and Swift), and allows you to work with platform APIs such as Core Foundation or POSIX, and any native libraries that a developer may need.
The Kotlin / Native runtime environment encourages the use of immutable data and prohibits any attempt to transfer unprotected changeable state between threads. In fact, from the point of view of Kotlin / Native, there are no threads; they are abstracted as a low-level aspect of the implementation and replaced by performers (a worker) - this is a safe and convenient way to implement parallelism.
You can get to know Kotlin / Native at kotl.in/native .
Kotlin has been explicitly tasked with working on all platforms, but we consider it as a prerequisite for a more important goal - to use the same code on different platforms. Support for JVM, Android, JavaScript and Native allows Kotlin to work with any components of modern applications. And this gives an invaluable opportunity to reuse the code and the existing developments - it’s much better to focus on solving really complex tasks, rather than on implementing the same code twice or more. Although the multiplatform capabilities in Kotlin remain experimental, version 1.3 is a big step forward.
Kotlin 1.3 comes with a set of multiplatform libraries for all everyday tasks, for example: HTTP , serialization andCorutin Management . Using such libraries is the easiest way to write multiplatform code. In addition, you can create your own multiplatform libraries that abstract the features of certain platforms in a single API.
Start reusing code on different platforms today: kotl.in/multiplatform .
In Kotlin 1.3, Kotlin / Native development tools and multiplatform projects are available in IntelliJ IDEA Community Edition, IntelliJ IDEA Ultimate and Android Studio development environments. In all three IDEs, you can use all the code editing functionality — error highlighting, complex, navigation, and refactoring. In the future, we will be implementing more complex features and integration with commercial tools.
Ktor - our framework for interconnected applications that implements all HTTP stack with full asynchronous based korutin - already in beta and is available at ktor.io .
In addition to all of the above, this release has a number of other features and improvements:
A full description of all the innovations can be found here (in English). You can also read the change log and the compatibility guide .
We published all the videos from the KotlinConf 2018 conference, where the main topics of Kotlin 1.3 were discussed. Check out the introductory keyout to learn more about the latest and most important:
Records of all seminars from KotlinConf 2018 are available on JetBrains TV .
We are trying hard to make learning Kotlin easy and enjoyable. There are many resources for this , among which we would like to highlight the following:
For programmers of all levels , Kotlin 1.3 webinars are an excellent starting point .
As always, you can try Kotlin online at play.kotl.in .
Let's Kotlin!
Your Team JetBrains
The Drive to Develop
We make Kotlin as a tool for developing applications of any scale on any platforms. In Kotlin 1.3, thanks to Korutin, reading and writing non-blocking asynchronous code has become easy and convenient. Scalability has become much more accessible. In the new release, we also released the beta version of Kotlin / Native, which allows you to compile the Kotlin code directly into machine code. Kotlin multiplatform features now work on all supported platforms, which allows, for example, using the same business logic in Android and iOS applications. Common logic can also be used for servers and mobile and web clients. In addition, the opportunity to write easily portable multiplatform libraries, which will take on most of the daily tasks.
In the near future, we will conduct a series of webinars on the main features of version 1.3, sign up here .
Community and Ecosystem
This year, the Kotlin ecosystem has grown at an unprecedented pace. Since January 2018, approximately 1.5 million users have edited the code on Kotlin, compared with last year, their number more than doubled. The knowledge base on StackOverflow and in our public Slack is also growing at an impressive pace. And we are very pleased that the Kotlin community is so responsive and friendly.
We like how the ecosystem that has developed around Kotlin grows and develops. Kotlin is friends with the Google Cloud Platform , the Spring Framework and Gradle , not to mention official support on the Android platform . The open source community creates excellent libraries such as RxKotlin , mockito-kotlin ,TornadoFX , Kodein and ΛRROW . Already moving to Kotlin or planning to migrate projects such as Square's Okio and LibreOffice . We invite everyone to join the Kotlin ecosystem with their ideas and projects.
Not only JetBrains employees contributed to Kotlin 1.3, but also many other people who created pull-requests, bug reports and supported all kinds of feedback with us. We really appreciate your help in the development of Kotlin!
Korutiny officially stable
Korutiny is a modern way of writing non-blocking asynchronous code that is easy to understand and convenient to modify. This powerful tool can be used for a variety of purposes - from shifting the computational load to background workers (worker) to implementing complex network protocols. The kotlinx.coroutines library, version 1.0 of which was included in this release, provides a solid foundation for managing asynchronous tasks at any scale, including their creation, cancellation, exception handling, and cases related to the user interface.
Start today at kotl.in/coroutines !
Kotlin / Native Beta
Kotlin / Native uses LLVM to compile Kotlin source code into standalone binaries (no virtual machine needed) for a variety of operating platforms and processor architectures, including iOS, Linux, Windows, Mac, and even WebAssembly and embedded systems such as STM32. Kotlin / Native supports fully automatic memory management, provides interaction with C and Objective-C (and Swift), and allows you to work with platform APIs such as Core Foundation or POSIX, and any native libraries that a developer may need.
The Kotlin / Native runtime environment encourages the use of immutable data and prohibits any attempt to transfer unprotected changeable state between threads. In fact, from the point of view of Kotlin / Native, there are no threads; they are abstracted as a low-level aspect of the implementation and replaced by performers (a worker) - this is a safe and convenient way to implement parallelism.
You can get to know Kotlin / Native at kotl.in/native .
Multiplatform projects and tools
Kotlin has been explicitly tasked with working on all platforms, but we consider it as a prerequisite for a more important goal - to use the same code on different platforms. Support for JVM, Android, JavaScript and Native allows Kotlin to work with any components of modern applications. And this gives an invaluable opportunity to reuse the code and the existing developments - it’s much better to focus on solving really complex tasks, rather than on implementing the same code twice or more. Although the multiplatform capabilities in Kotlin remain experimental, version 1.3 is a big step forward.
Kotlin 1.3 comes with a set of multiplatform libraries for all everyday tasks, for example: HTTP , serialization andCorutin Management . Using such libraries is the easiest way to write multiplatform code. In addition, you can create your own multiplatform libraries that abstract the features of certain platforms in a single API.
Start reusing code on different platforms today: kotl.in/multiplatform .
Tools for Kotlin / Native and Multiplatform
In Kotlin 1.3, Kotlin / Native development tools and multiplatform projects are available in IntelliJ IDEA Community Edition, IntelliJ IDEA Ultimate and Android Studio development environments. In all three IDEs, you can use all the code editing functionality — error highlighting, complex, navigation, and refactoring. In the future, we will be implementing more complex features and integration with commercial tools.
Ktor 1.0 Beta
Ktor - our framework for interconnected applications that implements all HTTP stack with full asynchronous based korutin - already in beta and is available at ktor.io .
Other improvements
In addition to all of the above, this release has a number of other features and improvements:
- Experimental support for inline classes to improve performance and type safety.
- Experimental support for unsigned integers for easier manipulation of bytes and other low-level operations.
- Pointing to a subject in when clauses to reduce the amount of duplicate code.
- Contracts to improve static library call analysis.
- Entry point with no arguments for the convenience of novice developers.
- Sequence debugger for visualizing lazy calculations.
- Scratch files, REPL and scripting enhancements to facilitate working with scripts and code snippets.
- In the standard library , among other improvements and bug fixes, support for Kotlin / Native has appeared, support for Kotlin / JS has been improved, and Random has worked on all platforms.
- Experimental incremental compilation support for Kotlin / JS.
A full description of all the innovations can be found here (in English). You can also read the change log and the compatibility guide .
KotlinConf
We published all the videos from the KotlinConf 2018 conference, where the main topics of Kotlin 1.3 were discussed. Check out the introductory keyout to learn more about the latest and most important:
Records of all seminars from KotlinConf 2018 are available on JetBrains TV .
Exploring kotlin
We are trying hard to make learning Kotlin easy and enjoyable. There are many resources for this , among which we would like to highlight the following:
- A new course by Svetlana Isakova and Andrei Breslav started at Coursera .
- The book by Bruce Ekkel and Svetlana Isakova “Atomic Kotlin” is already in the early access .
- In the new mini-web-IDE play.kotl.in there are koans, examples and the ability to create embedded code snippets.
- The EduTools plugin helps to learn Kotlin right in the IDE.
- Various organizations provide Kotlin certified training worldwide.
For programmers of all levels , Kotlin 1.3 webinars are an excellent starting point .
How to upgrade
As always, you can try Kotlin online at play.kotl.in .
- Maven, Gradle, and npm: Use the version number 1.3.0 for the compiler and standard library. Documentation is here .
- IntelliJ IDEA: Kotlin 1.3 will be included in version 2018.3, and in earlier releases it is enough to install or upgrade the Kotlin plugin to version 1.3.
- Android Studio: you can install or remove a plugin using the Plugin Manager.
- Eclipse: the plugin can be installed via the Marketplace .
- The compiler for the command line can be loaded on the release page on Github .
Let's Kotlin!
Your Team JetBrains
The Drive to Develop