Author Archives: Andrey Breslav

About Andrey Breslav

Andrey is the lead language designer working on Project Kotlin at JetBrains. He also works on making the Java language better, serving as a Java Community Process expert in a group for JSR-335 ("Project Lambda"), and occasionally speak at software conferences such as Devoxx or JavaOne.

Try Kotlin in Your Browser: New Look and More Features

We released Kotlin Web Demo quite a while ago, it did a good job helping people try Kotlin right in the browser and share runnable code with each other. Now, a shiny new version is ready, it’s time to retire … Continue reading

Posted in Uncategorized | 13 Comments

Upcoming Change: More Null-safety for Java

Our battle for combining null-safety and Java interop has been a long one already: we started off treating all Java reference types as nullable, and it was too inconvenient; then we employed external annotations to specify nullability, created KAnnotator, but … Continue reading

Posted in Uncategorized | Leave a comment

Upcoming Change: Function Types Reform

Kotlin M12 will likely bring another change that is crucial for implementing a useful reflection library for Kotlin. In short, we are going to unify FunctionX and ExtensionFunctionX to be represented in the same way at runtime, but it will … Continue reading

Posted in Uncategorized | 11 Comments

More changes: Enum Syntax, Another Deprecation and More

Enum Syntax Currently the syntax for enums with non-trivial constructors is kind of monstrous:

Posted in Uncategorized | 58 Comments

More Deprecations Coming

There are two more items on the language cleanup list: backing-field syntax and static type assertion operator.

Posted in Uncategorized | 14 Comments

Upcoming Change: Syntax For Annotations

Kotlin’s syntax for annotations was inspired by C#, which surrounds them with square brackets:

But brackets are precious for a language designer, and we would really like to use them later for something else, so we are considering changing … Continue reading

Posted in Uncategorized | 27 Comments

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 … Continue reading

Posted in Uncategorized | 18 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.

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

Posted in Language design | 43 Comments