Stable Release in branch 1.0
1.0.7
Released 15 Mar 2017
(9 years ago)
SoftwareKotlin
Version1.0
Status
End of life
Supported
Java versions
Java 6
Initial release1.0.1
17 Mar 2016
(10 years ago)
Latest release1.0.7
15 Mar 2017
(9 years ago)
Security supportNo
Release noteshttps://github.com/JetBrains/kotlin/releases/tag/v1.0.7
Source codehttps://github.com/JetBrains/kotlin/tree/v1.0.7
Documentationhttps://kotlinlang.org/docs/home.html
Kotlin 1.0 ReleasesView full list

What Is New in Kotlin 1.0

Kotlin 1.0 marks the first stable release, providing a production-ready, statically typed language for modern applications. The focus is on finalizing the core language and standard library, ensuring backward compatibility, and solidifying tooling support. This release is the culmination of years of development and beta testing.

Category Key Changes
Language & Compiler Stable ABI, finalized syntax and semantics, null safety, type aliases, coroutines (experimental).
Standard Library Stable core APIs (kotlin.*, kotlin.collections.*), extension functions, improved Java interoperability.
Tooling & Ecosystem Stable IntelliJ IDEA plugin, Gradle and Maven build support, Android Studio compatibility, JavaScript target.
Deprecations & Changes Removal of previously deprecated constructs, stabilization of the module structure.

What are the core language features finalized in 1.0?

The language specification is now stable, meaning code you write for Kotlin 1.0 will compile in future versions. Key features like null safety, smart casts, data classes, and extension functions are fully supported and won't have breaking changes. This stability is crucial for long-term project planning and library development.

The type system is solid, with full Java interoperability being a primary goal. You can confidently mix Kotlin and Java in the same project without unexpected behavior. In practice, this means you can start migrating a Java codebase incrementally.

How does the standard library change for production use?

The standard library API is now frozen, offering a rich set of utilities centered around extension functions. Core packages like kotlin, kotlin.collections, kotlin.ranges, and kotlin.io are stable. This provides a consistent foundation for all Kotlin development, whether on JVM, Android, or JavaScript.

Common operations on collections, strings, and I/O are more expressive and concise compared to plain Java. For example, the library adds methods like .filter, .map, and .use (for resource management) directly on JDK types.

What tooling support can developers expect?

The IntelliJ IDEA Kotlin plugin is now stable, offering reliable code completion, refactoring, and debugging. Build tools like Gradle and Maven have first-class support, making project setup straightforward. This mature tooling is a major reason teams can adopt Kotlin without a significant productivity hit.

For Android developers, Kotlin 1.0 works seamlessly with Android Studio. The compiler produces standard bytecode, so it integrates with existing JVM monitoring and profiling tools. The JavaScript target allows you to write Kotlin code that transpiles to JS for front-end work.

Coroutines and Experimental Features

Coroutines are included as an experimental feature for asynchronous programming. They are built on a flexible, low-level API that libraries can leverage for non-blocking operations, generators, and more. Being experimental means the API may evolve based on community feedback before finalization.

Other features, like the Kotlin/JavaScript API, are also marked as experimental in this release. This allows the team to iterate on these components while keeping the core language rock-solid. You can use them, but be prepared for potential changes in future updates.

FAQ

Is Kotlin 1.0 truly interoperable with existing Java code?
Yes, absolutely. Interoperability is a cornerstone. You can call Java from Kotlin and Kotlin from Java seamlessly. Kotlin's null safety works with Java types through platform types, and most Java idioms translate naturally.

Are there any major breaking changes from previous beta versions?
Kotlin 1.0 removed several constructs that were deprecated during the beta phases. If your pre-1.0 code compiled without deprecation warnings, it should work. The compiler provides clear error messages to guide any necessary fixes.

Can I use Kotlin 1.0 for Android development today?
Yes. The tooling supports Android Studio, and the generated bytecode is compatible with Dalvik and ART. Many Android developers were early adopters during the beta, and 1.0 is the stable base they were waiting for.

What does "stable ABI" mean for library authors?
Stable ABI (Application Binary Interface) means the compiler generates a stable binary format. Libraries compiled with Kotlin 1.0 can be consumed by projects using future Kotlin versions without recompilation. This is essential for publishing public libraries.

How are coroutines different from threads or RxJava?
Coroutines offer a lighter-weight concurrency model for asynchronous logic. They allow you to write sequential-looking code that suspends without blocking threads. They are a language-level feature, whereas RxJava is a library. In 1.0, they're experimental but powerful for specific use cases like non-blocking IO.

Releases In Branch 1.0

VersionRelease date
1.0.715 Mar 2017
(9 years ago)
1.0.627 Dec 2016
(9 years ago)
1.0.5-215 Nov 2016
(9 years ago)
1.0.508 Nov 2016
(9 years ago)
1.0.422 Sep 2016
(9 years ago)
1.0.330 Jun 2016
(10 years ago)
1.0.213 May 2016
(10 years ago)
1.0.1-228 Mar 2016
(10 years ago)
1.0.1-123 Mar 2016
(10 years ago)
1.0.117 Mar 2016
(10 years ago)