BT

Crescente da Programação Reativa

por Dio Synodinos , traduzido por Vitor Puente em 07 Nov 2013 |

A Programação Reativa baseia-se em fluxos de dados e na propagação de mudanças, com o modelo de execução de uma linguagem de programação repercutindo automaticamente alterações através do fluxo de dados. Com a popularidade de arquiteturas orientadas a eventos, escaláveis e interativas, tanto do lado do cliente quanto do servidor, o conceito de "reatividade" está ganhando cada vez mais atenção.

O InfoQ já vem acompanhando esse paradigma há alguns anos. Algumas semanas atrás o grupo de pesquisa Gartner incluiu os termos "Programação Reativa" e "Web orientada a eventos" em sua publicação "Hype Cycle for Application Development, 2013", na seção "On the rise" (Em crescimento).

Recentemente, Bruce Eckel, autor de vários livros sobre programação, e Jonas Boner, criador do Akka e CTO da Typesafe, publicaram o "Manifesto Reativo", o qual visa definir o que são aplicações reativas.

Segundo os autores, essas aplicações devem ser capazes de:

  • Reagir a eventos - a natureza de ser orientada a eventos permite as demais qualidades;
  • Reagir a cargas - foco na escalabilidade ao invés de performance voltada a um usuário apenas;
  • Reagir a falhas - ser resiliente com a capacidade de recuperação em todos os níveis;
  • Reagir aos usuários - combinar as características acima para proporcionar uma experiência de usuário interativa.

Seguindo a publicação desse manifesto, Martin Odersky, criador do Scala, Erik Meijer, criador do Reactive Extensions e Roland Kuhn, líder técnico do Akka, anunciaram um curso gratuito chamado "Princípios de Programação Reativa", no Coursera.

O intuito do curso é ensinar os princípios de Programação Reativa, uma disciplina emergente que combina sistemas concorrentes, sistemas orientados a eventos e sistemas assíncronos. É essencial para a escrita de qualquer sistema distribuído ou baseado em web services; também é de extrema importância para muitos sistemas concorrentes de alto desempenho. A Programação Reativa pode ser vista como uma extensão da programação funcional mais abstrata voltada a sistemas concorrentes que lidam com estado distribuído, coordenando e orquestrando cadeias de dados assíncronos trocadas pelos atores.

Uma empresa que tem utilizado muito a Programação Reativa é o Netflix. Inclusive contribuiu com o porte do Rx para o Java:

A Programação Reativa Funcional tem possibilitado aos desenvolvedores do Netflix elevar a concorrência do lado do servidor sem as típicas preocupações com sincronização ou thread-safety. A implementação da camada de serviços da API tem total controle sobre os detalhes específicos da concorrência. Isso nos permite procurar cada vez mais por melhorias no desempenho sem o receio de quebrar o código do cliente. O RxJava é eficaz no servidor e está cada vez mais presente em nosso código.

O Facebook também lançou recentemente a biblioteca React JavaScript, para construção de interfaces com usuários sofisticadas. Stoyan Stefanov, engenheiro do Facebook, explica o principal conceito por trás do React:

O React permite construir aplicações utilizando componentes capazes de renderizar dados. Quando os dados mudam, os componentes são automaticamente atualizados de maneira muito eficiente e apenas quando necessário. Todo o trabalho de vincular e desvincular gerenciadores de eventos fica por conta do React. Também de maneira eficiente - usando delegação.

A Programação Reativa já está chamando a atenção da comunidade de desenvolvedores de front-end. Tal interesse iniciou no ano de 2009 com o paper Flapjax [PDF], e contribuiu com diversas bibliotecas que implementaram os princípios da Programação Reativa, tais como Bacon.js, Knockout, Meteor, React.js, Reactive.coffe e RxJS.

No QCon de San Francisco de 2013, haverá uma grande cobertura do paradigma Reativo por toda as tendências de TI e inovação, tanto em tutoriais e em tracks regulares.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.