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 .
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.
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.
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.
Kotlin has been explicitly tasked with working on all platforms, but we consider it as a prerequisite to a more important goal - using 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.
Together with Kotlin 1.3 comes a set of multiplatform libraries for all everyday tasks, for example: HTTP , serialization and control of corutines . 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.
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 the entire HTTP stack with full asynchrony based on corutin - is 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.
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:
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 .