Programação Reativa

Programação Assíncrona

Postado em Atualizado em

A programação orientada por eventos é um paradigma de programação em que o fluxo do programa é determinado por eventos como ações do usuário (cliques do mouse, pressionamentos de teclas), saídas do sensor ou mensagens de outros programas / tópicos. A programação assíncrona é um padrão de design que garante a execução do código não bloqueável. Assim ela é excelente para uma execução mais rápida dos programas, mas vem com preço, é um pouco mais difícil de programar e, na maioria das vezes, acabamos tendo que lhe dar com o paradigma de callbacks. Se engana os concorrentes da JVM que estão “pregando por aqui” que Java não tem esse modelo. Tem e faz muito tempo! Segue um resumo ai das opções:

Java 5 Futures

Futures foram introduzidos em Java 5 (2004). Eles são objetos que prometem manter o resultado de uma operação assim que a operação for concluída. Por exemplo, quando uma tarefa (ou seja, Executável ou Chamada) é submetida a um executor.

Java 8 Completable Futures

As Completable Futures foram introduzidas no Java 8 (2014). Elas são de fato, uma evolução da Future regulares, inspirados no Future Listenable do Google, parte da biblioteca da Guava. Eles são Futures que também permitem que você enfileirar as tarefas em uma cadeia.

RxJava

RxJava é uma biblioteca completa para programação reativa. Da mesma forma que o Futures, RxJava pode ser usado para encadear um monte de ações síncronas ou assíncronas para produzir um ou mais resultados significativos. No entanto, ao contrário do Futures, que são de uso único, o RxJava funciona em fluxos de zero ou mais itens, incluindo fluxos sem fim com um número infinito de itens. Também é mais flexível e fluente graças a um conjunto de operadores incrivelmente ricos.

Java 9 Reactive Streams

Reactive Streams do Java 9, defini uma especificação para o uso padrão da JVM a programação reativa. São um conjunto de interfaces que serão implementadas por várias bibliotecas de fluxos reativos, como RxJava 2, Akka Streams e Vertx. Eles permitem que essas bibliotecas reativas se interconectem, preservando a contrapressão importante. Ou seja, a partir do Java 9, a revolução reativa vai entrar ai em todos os produtos java que darão suporte a tal conceito.

E assim, como vocês bem podem ver, não se faz necessário abandonar a JVM em virtude de programação reativa. Bora tocar o barco. Que venha essa nova onda!

“Em todas essas situações temos a vitória completa por meio daquele que nos amou.” Romanos 8:37

Anúncios