Kotlin 1.1-M03 is here!

We are pleased to announce the third milestone of the upcoming Kotlin 1.1. This release brings new language features as well as improvements and fixes in the JavaScript backend, compiler and IDEA plugin. The new release also includes all tooling features introduced in Kotlin 1.0.5, and is compatible with IntelliJ IDEA 2016.3 EAP and Android Studio 2.2 and 2.3.

As with other milestone releases, we give no backwards compatibility guarantees for new language and library features. Anything introduced in milestone releases of 1.1 is subject to change before the final 1.1 release.

Please do share your feedback regarding the new features or any problems that you may run into with this release, via YouTrack, forums and Slack.

The full changelog for 1.1-M03 is available here.

Continue reading

Posted in Releases | Tagged , | 11 Comments

Kotlin Night in London Recordings

Kotlin Night in London took place October 12th, 2016 in collaboration with Trifork and GOTO London 2016. We would like to thank everyone who took the time to join us and make the event such a great success. For those who couldn’t attend or who want to rewatch the talks, the video recordings are now available for your viewing pleasure.

Continue reading

Posted in Events | Tagged | Leave a comment

Kotlin 1.0.5 is here

We’re happy to announce that we’ve just released Kotlin 1.0.5, which continues the series of bugfix and tooling updates for Kotlin 1.0.

We’d like to thank our external contributors whose pull requests were included in this release: Kirill Rakhman, Vladislav Golub, Vsevolod Tolstopyatov, Yoshinori Isogai, takahirom and gitreelike. Thanks to everyone who tried the EAP builds and sent us feedback, too!

The complete list of changes in the release can be found in the changelog. Some of the changes worth highlighting are:

Loop to Lambda Conversion

The IntelliJ IDEA plugin can now detect many cases where imperative for loops can be rewritten in a more compact and idiomatic manner using standard library functions such as filter and map. As a simple example, the following snippet:

…will be automatically converted to:

To trigger the conversion, put the caret on the for keyword and press Alt-Enter.
Continue reading

Posted in Releases | 7 Comments

Kotlin 1.1-M02 is here!

We’re happy to announce the second milestone release of Kotlin 1.1. This release brings one long-awaited new language feature, destructuring in lambdas, as well as many improvements to features introduced in 1.1-M1, including type aliases, coroutines and bound references. The new release also includes all tooling features introduced in Kotlin 1.0.4 and 1.0.5-eap-66, and is fully compatible with IntelliJ IDEA 2016.3 EAP and Android Studio 2.2.

As with Kotlin 1.1-M01, we give no backward compatibility guarantees for new language and library features. Anything introduced in milestone releases of 1.1 is subject to change before the final 1.1 release.

And once again: please do share your feedback regarding the new language features or any problems that you may run into with this release, via YouTrack, forums and Slack.

The full changelog for 1.1-M02 is available here.

Continue reading

Posted in Releases | 13 Comments

Kotlin Night in London

We’re holding another Kotlin Night, 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.

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.
Given spaces are limited, we encourage you to sign up sooner rather than later!

kotlinnightlondon2016

For details on talks, please check the event page.

17:30 – 18:00 – Registration and Welcome

18:00 – 18:45 – 10 Things I’m loving about Kotlin. Graham Tackley. Kaleida

18:45 – 19:30 –  Expressive Kotlin. Nat Pryce and Duncan McGregor, Springer Nature

19:30 – 20:00 – Snacks and Drinks

20:00 – 20:45 – Using Sealed Classes to build Concursus API. Dominic Fox, OpenCredo

 

GOTO Conference and Kotlin Workshop

We’re also offering a discount for GOTO London 2016 which can be used either for the conference or the full day Kotlin Workshop being held.

Posted in Uncategorized | 1 Comment

Kotlin 1.0.4 is here

We’re happy to announce the release of a new bugfix and tooling update of Kotlin, version 1.0.4. This version brings many improvements related to the IDE and build tools, as well as JavaScript support.

Once again we’d like to thank our external contributors who implemented some of the features in this release, Kirill Rakhman and Yoshinori Isogai, as well as everyone who tried the EAP builds of 1.0.4 and sent us feedback.

You can find the full list of fixes and improvements in the changelog. Some of the changes deserve special mention:

Language Change: Assignment of ‘val’ in try/catch

In versions of Kotlin before 1.0.4, you could initialize the same val both in the try and catch branches of a try/catch statement. For example, the following code was allowed:

In effect, a final variable could be assigned twice, and it was possible to observe two different values for it (for example, if the value in the try statement was captured in a lambda). In Java, the equivalent code is not allowed.

To maintain consistent semantics, the code which assigns the same val in both try and catch branches becomes a warning in Kotlin 1.0.4 and will become an error in version 1.0.5. In most cases, the code can be easily fixed by converting the code to an expression form, and the IDE will offer a quickfix to convert this code automatically. The above example would be converted to:

Continue reading

Posted in Releases | 7 Comments

Kotlin NetBeans plugin beta is out!

Today we are happy to present the first BETA release of the Kotlin plugin for the NetBeans IDE.

The main features are:

  • Building and Running Your Code
  • Maven and Ant Support
  • Java Interoperability
  • Code Highlighting
  • Diagnostics
  • Code Completion
  • Navigation
  • Debugging
  • Unit Testing
  • Auto-Import
  • Mark Occurrences
  • Quick Search
  • Code Formatting

Continue reading

Posted in Tools | 1 Comment

Kotlin census: call to action

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.

While we do accept pull requests 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 alone, it’s hard to keep track of every piece of feedback!

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.

Thank you!

Posted in Uncategorized | 13 Comments

Calling on EAPers

At JetBrains we’ve always believed in our Early Access Program for our tools, giving developers a chance to use the latest features or fixes as soon as they’re ready. We’ve followed the same philosophy with Kotlin, knowing of course that with a language, some decisions can haunt you for life.

That is why during the pre-release days of Kotlin, we’d have milestone releases with features and important changes for our early adopters (including ourselves at JetBrains), collect feedback on whether things were working as designed. This release-feedback-adjust cycle has proven invaluable in so many occasions and has definitely helped shape Kotlin 1.0.

But it’s not over with the release. We’re still continuing to develop Kotlin with new language features and we need your continued support. As you know, we have two ‘branches’ of EAP’s, the 1.0.X ones which are more about bug fixes and tooling, and the 1.1 EAP which is about language changes. And it’s with these EAP’s, the ones with language changes, where we could really use your help. While we don’t recommend you using these 1.1 EAP’s in production code, we definitely do need you to give us feedback. In return, we promise to listen to everything you have to say!

Using EAP’s

The easiest way to access EAP’s is via the Tools menu. Open Tools | Kotlin | Configure Kotlin Plugin Updates in the main menu, select Early Access Preview channel 1.0.x or 1.1 and press the Check for updates now button.
Screen Shot 2016-08-01 at 17.55.03
To use the new builds from Maven or Gradle: add https://dl.bintray.com/kotlin/kotlin-eap or https://dl.bintray.com/kotlin/kotlin-eap-1.1 as a repository to your project

At the moment the first EAP of Kotlin 1.1 is available (with coroutines, type aliases, bound callable reference, local delegated properties, Java 7/8 support and many more). Also today we just published first EAP build of Kotlin 1.0.4 with lots of bugs fixes in the compiler and IDE, whole bunch of new intentions, inspections and quickfixes, and it’s now fully compatible with Gradle 2.14.1. For more information check out the full Kotlin 1.0.4 changelog

Giving Feedback

Most of the Kotlin team are available on our public (Slack community), and specifically on the #eap channel, where we’re very eager to listen to your feedback and help with any questions or issues you may have. Of course, our issue tracker is always open too

One of our main goals with Kotlin has always been to make it an industrial language that is pragmatic. And it’s by using Kotlin in many types of applications and scenarios that will help us achieve this goal. For this, we continue to need your help!

Thank you and let’s Kotlin!

Posted in Uncategorized | 8 Comments

First glimpse of Kotlin 1.1: Coroutines, Type aliases and more

While Kotlin 1.0.X releases keep delivering incremental updates and tooling features, we are working on the new language features in Kotlin 1.1. Today we are presenting the first preview version of 1.1, it’s far from Beta, but the brave and curious ones can play with new exciting things (and hopefully give us their invaluable feedback).

Compatibility

This is not a stable version of Kotlin, and no compatibility guarantees are given here: in the future previews of 1.1, syntax, APIs, command-line switches and anything else may be changed. If you need a stable version of Kotlin, please stay on 1.0.X until further notice.

Feedback

The upside of this temporary lack of guarantees is that we can make immediate use of all the feedback you provide us! The best way to tell us what you think is through KEEP: please leave your comments on the issues associated with proposals mentioned below. The implementations in Kotlin 1.1 M01 are prototypes of the functionality described in the KEEPs.

Overview

The full changelog for 1.1 M01 is available here. Continue reading

Posted in Releases | 51 Comments