M6.2 Available

Today we release Kotlin M6.2 which brings some interesting and important features. The newly released IntelliJ IDEA 13 is now supported too. Let’s take a look.

Continue reading

Posted in General | Tagged | 12 Comments

Catch up with our Kotlin Team at Devoxx Belgium

Devoxx LogoMeet JetBrains and Kotlin team members Svetlana Isakova and Aleksei Sedunov, November 11-15, at the sold-out Devoxx Belgium conference. We invite you to stop by our booth for an impromptu demo, some great gifts and a chance to win a free personal license.

Don’t miss the following great Kotlin events:

Hackergarten Hands-on Coding

On Tuesday, November 12th, Aleksei will be participating in the Hackergarten hands-on coding event. He will get you started with the Kotlin language and will help you write a plugin for IntelliJ IDEA in Kotlin.

Unpuzzling Kotlin: Bringing Clarity to Your Code

Join Svetlana and Aleksei Thursday, November 14th, 10:50 -11:50 in Room 6. In this talk we’re going to tell the story of Java puzzlers from the Kotlin perspective which would demonstrate how Kotlin design helps to eliminate some problematic issues found in Java. In particular, we’d consider such aspects as expressions and control structures, exception handling, object and classes, nullable types and extensions.

About Svetlana Isakova

Svetlana IsakovaSvetlana has been a developer on the Kotlin team since 2011. Before joining Kotlin she had a passion for the Scala programming language. Currently she is responsible for the Kotlin overload resolution and type argument inference algorithms.

About Aleksei Sedunov

Aleksei SedunovAleksei is a developer at JetBrains and a member of Kotlin team since 2012. Before joining Kotlin he’d been senior developer at DataArt working on the Java-based server-side solutions for 4+ years.

To get a taste of the upcoming action, watch this short video of the awesome people and atmosphere at the JetBrains booth from Devoxx 2012.

For complete Devoxx Belgium 2013 information, please visit: http://www.devoxx.be/.

Posted in General | Tagged , , | Leave a comment

Writing Kotlin in the Browser

Did you know that Kotlin can target JavaScript as well as the JVM? Don’t be too surprised if you didn’t know, as we’ve not been giving it too much coverage, despite already shipping a successful product that uses this capability. But here’s hoping to change things. Continue reading

Posted in General | Tagged | 19 Comments

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 , | 5 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 | 16 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