1. Globalcode – Open4education
Trilha – Kotlin
Daniel Ferreira Monteiro Alves
Especialista em Desenvolvimento de Sistemas – Daitan Group
danfma@gmail.com, dalves@daitangroup.com, dalves@vmware.com
https://github.com/danfma
https://linkedin.com/in/danfma
4. Globalcode – Open4education
WebAssembly
Kotlin
Linguagem criada pela JetBrains
“Linguagem de programação tipada estaticamente para aplicações
multi-plataformas modernas”.
Segunda linguagem mais amada dentre os desenvolvedores,
segundo o Survey de 2018 da StackOverflow.
Web Assembly
6. Globalcode – Open4education
JavaScript
Linguagem dinâmica baseada em protótipos,
padrão dos Navegadores;
Ganhou ainda mais importância com o HTML5;
Possui inúmeras bibliotecas e frameworks disponíveis.
Fonte: https://medium.com/samsung-internet-dev/think-you-know-the-top-web-browsers-458a0a070175
8. Globalcode – Open4education
JavaScript
Então, pra que outra linguagem?
Bom, como Frederick Brooks disse, “não existe bala de
prata”...
A linguagem evoluiu e vai continuar a evoluir, mas
alguns desenvolvedores podem sentir falta de um ou
outro recurso já presente em outras linguagens.
9. Globalcode – Open4education
JavaScript
E... a linguagem tem uns “recursos” bem
estranhos:
[] + [] => “”
Array(3) == “,,” => true
var x = [1];
x == x => true
x == !x => true
NaN == NaN => false
Fonte: https://charlieharvey.org.uk/page/javascript_the_weird_parts
10. Globalcode – Open4education
ELM
Fable (F#)
Bridge (C#)
Jsweet (Java)
...
Kotlin2JS (Kotlin).
JavaScript, se não quero...
Tenho “Transpilers”!
CoffeeScript
Babel
TypeScript
PureScript
LiveScript
Dart
12. Globalcode – Open4education
Kotlin2JS
Gera JavaScript compatível com ECMAScript 5.1;
Interoperabilidade com módulos JavaScript;
Mesma funcionalidade da biblioteca padrão, seja
almejando JS ou a JVM.
13. Globalcode – Open4education
Kotlin2JS
Se Kotlin transpila para JavaScript, então um
programa escrito em Kotlin pode rodar onde um
programa escrito em JavaScript roda, certo?
14. Globalcode – Open4education
Mas, precisamos de umas
“coisitas” a mais...
Fonte:
https://www.reddit.com/r/ProgrammerHumor/comments/7zfgwg/frontend_vs_backend/
17. Globalcode – Open4education
Kodando
Conjunto de bindings criados para permitir utilizar
bibliotecas JavaScript existentes, com Kotlin
Começou como um projeto pessoal;
Evoluiu para uma primeira versão em React;
Uma segunda versão de React;
E depois, RxJs, Mithril, Jest, React Router DOM e uns
utilitários.
18. Globalcode – Open4education
Kodando
Onde eu acho?
https://bintray.com/danfma/kotlin-kodando
Bindings:
Mobx / Mobx React
React / React DOM
React Router DOM
MithrilJS
Redux implementation using RxJs
Posterior surgimento do NodeJS, agora se tornou uma opção boa para desenvolvimento de aplicações back-end e serveless.
Por exemplo: se você segue o padrão OO, vai sentir falta das classes
Sim, com pequenas ressalvas, por exemplo:
Reflexão não funciona;
Não temos decorators;
Faltam bindings para bibliotecas existentes do ecossistema JavaScript.