JetBrains • Statically typed, safe, and pragmatic • It's design is inspired by languages like Java, Scala, C#, and Groovy • Object Oriented with some Functional features 3
Java 6 • Performance • Interoperability • Footprint: standard library & runtime costs only ~100Kb • Compilation Time is not a problem anymore • Learning curve 10
5.1 on Kotlin 1.2 - ECMAScript 2015 support soon • Optimized JavaScript - DCE (Dead Code Elimination) • Legible and debuggable JavaScript • Compatibility with existing JavaScript code • Same features as the JVM Standard Library - including Coroutines 15
to interact with any JavaScript code • Statically-typed APIs / TypeScript -> https://github.com/kotlin/ts2kt • Dynamic types for any other scenarios 16
require("express") val app = express() app.get("/", { req, res -> res.type("text/plain") res.send("i am a beautiful butterfly") }) app.listen(3000, { println("Listening on port 3000") }) } 20
without VM • LLVM based backend • Interoperability with any native code and libraries - you can generate the binding interface using .h files • MacOS / iOS • Latest version is 0.8.2 - in active development 21
any platform. Also can hold common interfaces and class signatures that must have a specific implementation in each platform platform: Contains the specific implementation of some interface defined by a common module regular: A regular module that contains only code to a specific platform 30
analysis time and compilation time of build scripts, compared to Groovy • IDE friendly, better autocomplete • Unify the language used in the project • 1.0 RC6 included in Gradle 4.10.1, final to be included in Gradle 5.0 (next version) 44