Java 6 • Performance • Interoperabilidade • Footprint: standard library & runtime ~100Kb • Tempo de Compilação não é mais um problema • Tooling evoluindo 5
- DCE (Dead Code Elimination) • JavaScript legível e depurável • Compatibilidade com código JavaScript pré-existente • Mesmas features da Standard Library da JVM - incluindo Coroutines 11
interagir com qualquer tipo de código JavaScript • Strong-typed APIs / TypeScript -> https://github.com/kotlin/ts2kt • Dynamic types para outros cenários 13
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") }) } 16
• Backend baseado no LLVM • Interoperabilidade com código nativo e bibliotecas - binding gerado a partir de arquivos .h • MacOS / iOS - Objective C e Swift • Atualmente na versão 0.9 - em desenvolvimento - 1.3 17
nenhuma plataforma, assim como a declaração de APIs que necessitam de implementação específica platform: Contém a implementação das APIs definidas em um módulo common, além de outros códigos específicos da plataforma regular: Módulo comum que tem como target uma plataforma específica 26
velocidade de análise e compilação dos build scripts, em comparação com Groovy • IDE friendly, melhor autocomplete • Unificação da linguagem de desenvolvimento • 1.0 RC 6 incluído no Gradle 4.10.1, estável no Gradle 5.0 (próxima versão) 40