Choque de programação: Angular e Kotlin
Estava procurando um texto sobre tecnologias do momento? Encontrou ̶#̶$̶@̶%̶!!!
Trabalho com Java e falarei sobre duas tecnologias de programação: Angular e Kotlin.
Antes, digo que a minha intenção é especulativa. Não faço uma aposta confiante no futuro delas, mas o potencial é forte e elas possuem vários pontos com que concordo.
Também não as apresento como “a solução mais bacana”. Tecnologia de programação é uma das últimas coisas com que me incomodo num projeto. Sou mais motivado por perguntas como: o negócio do cliente está bem definido? A documentação é boa? A metodologia de desenvolvimento é adequada? O tempo previsto é, no mínimo, razoável? O conhecimento da equipe é bom? A equipe que iniciou o projeto tem comprometimento de nele permanecer até a entrega (pelo menos boa parte da equipe)?
Contudo, tecnologia não deixa de ser interessante para mim. Caótico, eu sei, a alegria com uma tecnologia dura poucos anos e com essas não será diferente.
Angular
Um framework para a camada de apresentação, pela Google. O hype é grande… E a confusão, também. Primeiramente, não falo de AngularJS, falo da “evolução” dele. E acho que é bem aí que as coisas desandam com relação ao mercado. Muitos gostam do AngularJS (sou um deles) e a diferença dramática para o Angular cria barreiras na adoção de ambos. Porém gostei da mudança.
Que me chama mais a atenção? A execução no cliente (navegador), simplificando o código, melhorando tanto a performance quanto a utilização de recursos. Comparar com tecnologias de servidor (JSF, Wicket, etc) é sem graça para mim, pois minha preferência está no novo paradigma, não na tecnologia. É como comparar GIT (distribuído) com SVN (centralizado), é mais interessante a mudança de paradigma do que a tecnologia em si.
Nesse paradigma (AngularJS, Angular, React, etc), qual “ganha”? Sei lá! Por enquanto dou preferência ao Angular pois acho mais completo e pela adoção do TypeScript.
TypeScript
https://www.typescriptlang.org
É o JavaScript “tipado”. Não sou fã de JavaScript, gosto de linguagem tipada, então o TypeScript me agrada. Há muitas vantagens e desvantagens (como tudo na vida). Uma desvantagem é o ambiente de execução mais complexo (por enquanto). Mas como foi a desenvolvida pela Microsoft, até essa maldita pode adotar a linguagem sem choro. 😀
Kotlin
Gosto muito de Java, mas me agradam as linguagens mais dinâmicas. Torci pelo Groovy, mas nunca fui convencido de sua ampla adoção. Minha esperança é o Kotlin, desenvolvido pela JetBrains (do IntelliJ). Por quê? É boa, compatível com o Java, foi recentemente disponibilizada para Android e a JetBrains mantém um bom nível de qualidade e funcionamento.
Spring Boot e Spring Data
Não sou fã da Spring (organização), mas os produtos são ótimos. Esses dois frameworks são top (no mundo Java). Gosto da ideia de micro serviços e serverless, o Spring Boot puxa para esse lado. O Spring Data, quando bem entendido, diminui muito a quantidade de código na camada de persistência.
Demonstração
https://gitlab.com/ricardocampos/kotling
Criei um exemplo mínimo com as tecnologias aqui citadas. Quem tiver interesse, acesse o link acima e dê uma olhada. E assista ao Choque de Cultura: https://www.youtube.com/watch?v=ylr7kx-qXgg&list=PLTeqfOQzqJNyUjKVEogo5AA1O_w2m1hO3
Valeu!