How to configure Kotlin in your project

Kotlin can be freely mixed with Java. That means that you can easily add Kotlin code to an existing Java project. All you need to do is create a new Kotlin file (*.kt) and tell the environment to use Kotlin. If you’re using IntelliJ IDEA, it can do this for you automatically. Continue reading

Posted in General | Tagged | Leave a comment

M6.1 Released

Two months ago we released M6 and we’re now ready with another update containing a bunch of goodies. Continue reading

Posted in General | Tagged | 7 Comments

Working with Kotlin in Android Studio

With the release of M6, we announced support for Android Studio. Let’s take a deeper look at how to get up and running with Android Studio and Kotlin. Continue reading

Posted in General | Tagged , | 18 Comments

Kotlin M6 is here!

We’ve reached our sixth milestone, and with it, have some great features in store, both in terms of language improvements as well as tooling. Continue reading

Posted in General | Tagged | 10 Comments

Mixed-Site Variance in Kotlin

Type systems… We all know they are cool. In a static language, like Kotlin, the type system is the one responsible for early detection of errors. Many tools (e.g. an IDE with its refactoring abilities) also rely on the type system.

We also know that type systems are hard: many computer scientists built their entire careers studying type systems. Yet we know rather little about type systems of main-stream languages. Continue reading

Posted in General, Language design | Tagged | 17 Comments

“Static constants” in Kotlin

Kotlin is designed so that there’s no such thing as a “static member” in a class. If you have a function in a class, it can only be called on instances of this class. If you need something that is not attached to an instance of any class, you define it in a package, outside any class (we call it package-level functions):

But sometimes you need static constants in your class: for example, to comply with requirements of some framework or to use serialization. How do you do this in Kotlin? Continue reading

Posted in General, Language design | Tagged | 7 Comments

Type-Safe Web with Kotlin

We told you about Kara Web Framework 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. Continue reading

Posted in General | 1 Comment

Talk @ GeekOUT Tallinn: Language Design Trade-Offs (Kotlin and Beyond)

This week I’m speaking at GeekOUT Tallin, and my colleagues Mikhail Vink and Sergey Karashevich are holding a 15-minute DEMO on Thursday, telling you about cool stuff in JetBrains’ IDEs.

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”.

Continue reading

Posted in General | 1 Comment

Kotlin M5.3: IntelliJ IDEA 13, Delegated Properties and more

Kotlin M5.3 brings support for IntelliJ IDEA 13 and some new features for you to check out. We are moving towards powerful runtime support, including reflection and other framework-enabling features. This milestone marks our first steps in that direction. Continue reading

Posted in General | Tagged | 30 Comments

Kotlin M5.2: IntelliJ IDEA 12.1 and Gradle

Another update of Kotlin comes out today. Welcome Kotlin M5.2.  Continue reading

Posted in General | Tagged | 7 Comments