Programação Reativa com Red.

Fora as diversas correções e novas características da versão 0.6.1 de Red, a que me chamou mais a atenção foi a programação reativa. A maioria que já desenvolveu algum programa para alguma GUI já teve contato com a programação por eventos, isto é, quando acontece algum evento com a alteração de um texto, clicar um botão, etc., é gerado um evento que será tratado. Cada elemento da janela poderá estar associado a um trecho de código quando ocorrer algum evento relacionado a ele.

Na programação reativa, ocorre uma visão inversa. Algum trecho de código está associado a um ou mais eventos que acontecem. A implementação em Red contempla não apenas GUI como também código. Um exemplo simples seria o somatório de uma região em uma planilha. Se você especificou que o valor de uma célula é o somatório de uma parte de uma coluna como A1..A10, por exemplo, sempre que ocorrer alguma alteração nos valores de alguma das células relacionadas com o somatório, o cálculo deverá ser refeito. Outro exemplo poderia misturar software com hardware e teríamos um alarme que, quando acionado, muda o estado de uma variável e alguma ação deverá ser realizada. O evento (alarme alterando a variável) gera uma reação do programa (é executado um treco de código).

O destaque fica por conta de como foi feita a implementação. Foi criado um framework em Red com aproximadamente 250 linhas de código (por enquanto) utilizando o tipo objeto. O código está no github.

Por enquanto, a implementação pode ser considerada experimental mas já é possível testar algumas funcionalidades com ela. Abaixo você pode ver um exemplo simples de um objeto com as variáveis x e que, quando alteradas recalculam automaticamente a variável total que nada mais é que a soma de x e y. Como também pode ser utilizado em uma GUI, no exemplo abaixo, poderíamos ter uma janela com os campos x e y como sendo para a entrada dos valores e, em vez de direcionarmos o evento de cada uma para a soma e atualização do total, podemos apenas informar a widget do total reagir de forma adequada quando os valores forem alterados.

Por enquanto era isto. Agora é aguardar a versão 0.6.3 que permitira o desenvolvimento de aplicativos para Android. A versão 0.6.2 é a preparação para que os programas possam rodar no Android. É claro que teremos melhorias e correções enquanto isso.

Você poderá obter mais informações sobre a programação reativa bem como diversos exemplos na página de Red.

 

Anúncios