Upcoming Feature Deprecations

As we are finalizing the language design, many things have to be cleaned up, and among these are features that were initially designed and (often partly) implemented, but turned out not to be worth the trouble supporting them.

In the upcoming M12 milestone, we are going to deprecate such features, so that you could migrate your code before they are removed completely. Continue reading

Posted in Uncategorized | 18 Comments

Eclipse Plugin Alpha is Out!

Kotlin support in IntelliJ IDEA has always been among our top priorities, but we have been working on Eclipse support as well, and today we are happy to present the first alpha result of this effort.

Although it’s only a start and many things will be improved over time, it already features

  • Building and Running Your Code
  • Java Interoperability
  • Code Highlighting
  • Debugging
  • Navigation
  • Basic Code Completion (Ctrl+Space)
  • Auto-Import
  • Unit Testing


To give it a try you will need a clean installation of Eclipse Luna. The Kotlin plugin is available from the Eclipse Marketplace. The easiest way to install the Kotlin plugin is to drag-and-drop this button into a running Eclipse window:

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

Posted in Uncategorized | 9 Comments

Kotlin M11 is Out!

Today we are releasing a new milestone: Kotlin M11, which brings such long-awaited features as secondary constructors, a first glimpse of true reflection support for Kotlin and much more. Continue reading

Posted in Uncategorized | 78 Comments

Follow-up: New Class Object Syntax

In the previous post 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.

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…

Update: thanks to everyone, with your help, we chose companion. Continue reading

Posted in Uncategorized | 53 Comments

Upcoming Change: “Class Objects” Rethought

Kotlin M11 is coming very soon, and as some of you expressed concerns about being informed about the upcoming changes, I will describe one of the features of M11 and ask you for some feedback. Continue reading

Posted in Language design | 43 Comments

MCE2015: Kotlin Session and JetBrains Booth

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.

Continue reading

Posted in General | Tagged , , , | 2 Comments

JavaScript Interop

When working with JavaScript, i.e. creating a Kotlin application that compiles down to JavaScript, we often need to interoperate with existing libraries in JavaScript. While Kotlin already provides support for this, we’ve added a few more options in M10 to make interoperability even easier.
Continue reading

Posted in General | Leave a comment

M10 is out

Right before the festivities start, we’ve managed to release the next milestone of Kotlin, adding dynamic types and more. Let’s see what M10 brings us. Continue reading

Posted in General | Tagged | 26 Comments

M9 is here!

M9 has arrived and it’s bringing many new features and important changes. We’ve already highlighted these and covered others in detail. Let’s dig deeper into some of the other improvements.
Continue reading

Posted in General | Tagged | 12 Comments

Making Platform Interop even smoother

Being 100% interoperable with the JVM, and subsequently with JavaScript, has always been among Kotlin’s top priorities. With the amount of existing code, and a rich JVM ecosystem, having the ability of interoperating and leveraging these is crucial. Continue reading

Posted in Uncategorized | 31 Comments