domingo, 28 de maio de 2017

Kotlin - Olá Mundo

É tradição criar o primeiro programa em uma nova linguagem o famoso "Olá Mundo" (Hello World), e quem sou eu para quebrar essa tradição. Esse tutorial será todo realizado com meu ambiente (Ubuntu 17.04 com a OpenJDK 8.0) desse modo faça as devidas adaptações para seu ambiente.
Primeiro passo é óbvio consiste da instalação do ambiente. Isso é feito com dois comandos no terminal:
$ curl -s https://get.sdkman.io | bash
$ sdk install kotlin
O primeiro realiza o download do projeto SDKMAN e disponibiliza o comando SDK para o bash, para usar o segundo comando deve-se sair e entrar novamente no terminal. O segundo comando instala, basicamente, duas ferramentas kotlinc (o compilador) e kotlin (o executor), seriam os correspondentes a javac e java.

Segundo passo é criar o programa nessa linguagem, para isso abra um Vim, Nano, Editor de Comandos, ou qualquer outro editor de sua preferência e crie um arquivo chamado hello.kt com o seguinte conteúdo:
fun main(args: Array<String>) {
  println("Hello World!")
}
Saia do editor e para compilar digite o seguinte comando:
$ kotlinc hello.kt -include-runtime -d hello.jar
Nesse momento começam as diferenças entre Java não será criado um arquivo compilado (correspondente ao .class de Java) mas uma biblioteca (padrão JavaARchive) que pode tanto ser executada com o Java:
$ java -jar hello.jar
Quanto com Kotlin:
$ kotlin -classpath hello.jar HelloKt
Observe que nesse segundo caso é quando definimos o nome da classe do programa (HelloKt), outra ação bem diferente de Java é que podemos entrar em um ambiente da linguagem para testar os comandos, para isso digite:
$ kotlinc-jvm
Ao entrar tente o comando println("Hello World!"). Para sair desse ambiente digite :quit.

Descobrindo o Kotlin:

Pronto, agora já está habilitado para começar a realizar testes com essa nova linguagem, lembre-se que normalmente quem sai na frente obtém os melhores lugares.

Obrigado e até a próxima
Fernando Anselmo

terça-feira, 23 de maio de 2017

Kotlin - Vai tomar o Trono de Java?

Vou começar essa postagem bem diferente de todas as que você já viu por aí, primeiro duas perguntas: "Kotlin vai derrubar Java?" e "Kotlin vai substituir Java?". E não será preciso ler todo blog para saber minha resposta: "Sinceramente, não sei!". Acredito que Java foi a linguagem que por mais tempo programei programo. O problema é que todo esse tempo me fez ver alguns problemas nela.

O principal problema existe uma facilidade e complexidade da linguagem. Facilidade pois Java tem muitos poucos comandos e complexidade por ter uma biblioteca muito grande e difícil de assimilar tudo sem exigir muito entendimento de alguns conceitos. Deixe-me mostrar um simples "Hello World" escrito em Java:
public class Hello {
  public static void main(String [] args) {
    System.out.println("Hello World");
  }
}
Se já viu qualquer programa escrito nessa linguagem saiba que para um professor explicar o significado desses códigos ao iniciante é bem complicado, primeiro devemos falar sobre classes, em seguida o que são métodos estáticos, retornos de método, arrays, Classe System, objeto out, método println (e sua diferença para o print) e finalmente a classe String. A coisa complica mesmo quando desejamos sair desse método para outro não estático. Em Kotlin é melhor? Julgue isso com o mesmo exemplo:
package hello

fun main(args: Array) {
   println("Hello World!")
}
Não é que seja melhor ou pior, é simplesmente mais intuitivo o que isso está fazendo. Java começou a ter problema no seu início com as Applets que foram rapidamente substituídas pela Swing que por sua vez deu lugar na entrada do mundo Web e por fim foi parar no celular com Android. Foi anunciado agora que o Android vai adotar TAMBÉM a Kotlin.

O grande problema de Java sempre foi não ter um Pai (ou ter um Pai que não cuidava muito bem de sua filha - a falecida Sun sempre foi uma empresa de hardware e não de software). Java sofreu quando ganhou um Pai Adotivo (a Oracle) e se dividiu em duas (atualmente temos a OpenJDK), resultado que isso apenas tornou a linguagem mais confusa do que merecia, Java é uma adolescente e se fosse uma pessoa teria sérios problemas.

Afinal de contas o que é Kotlin, acredito que algumas pessoas se lembrem da (também falecida) Borland. Era uma empresa voltada a grandes ferramentas de programação como os conhecidos Borland Pascal, Delphi e JBuilder. Quem assumiu seu trono foi a JetBrains com uma série de fantásticas ferramentas para os desenvolvedores como PyCharm, WebStorms, IntelliJ e o Android Studio. Kotlin nasceu nesse meio.

Sinceramente acho que ainda veremos muita coisa antes de afirmar que Java está perdendo sua liderança para Kotlin, mas acredito que não me importo com isso, me importo é saber qual das duas me manterá empregável e a resposta é sim, pretendo estudar essa linguagem (assim com estudei Groovy, R e Go) e recomendo fortemente que faça o mesmo. Se a substituição vier prefiro estar preparado do que chorar porque me amarrei a uma linguagem que agora não passa de história (como Clipper, Fortran ou Algol).

Obrigado e até a próxima
Fernando Anselmo

PS. Pode se preparar para me ver falando ainda muito dessa linguagem.





domingo, 21 de maio de 2017

Sails.js - Um caso de amor

Sabe aquelas tecnologias que quando você começa a conhecer bem se torna um verdadeiro caso de amor? Assim foi comigo e o Sails.js. Não foi apenas questão de achar o framework um dos mais interessantes que vi nessa nova geração de JavaScript. Mas descobri no Sails um servidor Node.js completo com a disponibilização de serviços, uma parte visual interessante e toda flexibilidade que precisava para tocar meus projetos.

Sails.js é framework Javascript projetado para se assemelhar a arquitetura MVC de frameworks como Ruby on Rails. Foi escrito em Node.js e utiliza Express como um servidor web. Além disso, é fornecido com o Waterline ORM, simplificando a camada de dados, mas se desejar pode-se trocar os adaptadores para a maioria dos bancos de dados SQL ou NoSQL.

Resolvi expor esse caso para a comunidade e para isso começou com um Paper (draft) que coloquei gratuitamente na Academia.edu de modo que possa baixá-lo gratuitamente. E não pretendo parar por aí. No meu Canal do YouTube pretendo lançar uma série de vídeos mostrando algumas possibilidades interessantes para realizar com este MVC.

Assista ao primeiro vídeo:


Obrigado e até a próxima
Fernando Anselmo