Diurno

A vez da Linguagem Funcional

por: Giulia Tonon

data: 02/03/2016

Compartilhar no facebook
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no linkedin
Compartilhar no facebook
Compartilhar no twitter
Compartilhar no whatsapp
Compartilhar no linkedin

Ao trabalhar com desenvolvimento de sistemas no ambiente produtivo, estamos totalmente habituados a utilizar linguagens imperativas e orientadas a objeto. É uma forma consagrada e amplamente utilizada. Contudo, um “novo” paradigma de programação tem ganhado força, devido à demanda ininterrupta por escalabilidade e distribuição: a Linguagem Funcional.

O conceito de Linguagem Funcional

A linguagem funcional é um paradigma de programação. O desenvolvimento é feito com base em resultados de funções e a programação é feita com expressões, como se as funções fossem os objetos. Nessa abordagem, o valor de saída depende apenas dos argumentos de entrada. Dessa maneira, não importa o ambiente ou cenário em que o sistema esteja inserido. Assim, o resultado da saída é sempre o mesmo para os mesmos argumentos de entrada.

Trocando em miúdos, essa seria uma programação focada na imutabilidade de estado, já que as funções apresentam o mesmo valor e comportamento durante todo o processo. Desta forma, a linguagem funcional torna-se totalmente inerente a situações de paralelismo, distribuição e altíssima concorrência e criticidade.

Vantagens

Este conceito do paradigma funcional não é nada recente, tem origem no cálculo lambda datado dos anos 30. Várias linguagens que aplicam este conceito funcional foram surgindo ao longo dos anos. Contudo, as linguagens funcionais se mantiveram à margem das consagradas linguagens orientadas a objeto e imperativas. Isso deve-se, pode-se presumir, às limitações de processamento e ao fato de que uma programação linear costumar ser mais natural e intuitiva.

No entanto, com o aumento da capacidade de processamento, armazenamento e banda, que cresceram muito e continuam crescendo para atender a demanda dos sistemas escalares, as linguagens funcionais ganharam seu merecido espaço.

Muitas linguagens funcionais ganharam destaque como Scala, Clojure, Erlang e Haskell.

Scala

Scala, por exemplo, é uma linguagem funcional que roda na JVM e é totalmente integrada ao Java. Além disso, apresenta os recursos de linguagens orientadas a objeto. Isso permite o desenvolvimento de arquiteturas mais avançadas. Uma vantagem da Scala em relação a outras linguagens funcionais é justamente esta integração com o Java.

Um mesmo sistema pode ter simultaneamente classes interagindo em Scala e Java. Isso possibilita uma migração fácil e gradual de um sistema Java para um conceito mais funcional.Esta vantagem comumente é um diferencial na escolha da linguagem. Ela já foi utilizada na programação do noticiário The Guardian, por exemplo.

Outra vantagem das linguagens funcionais são a sintaxe muito mais concisa, o que pode agradar o desenvolvedor por gerar um código bem mais limpo.

As linguagens orientadas a objeto tem seu domínio no ambiente produtivo, mas este reinado está cada vez mais ameaçado pelas linguagens funcionais. Talvez seja a hora de dar protagonismo a elas. Elas se mostram uma solução mais interessante num ambiente cada vez mais distribuído e com escalabilidade crítica.

Lingugagem funcional faz parte do DNA da dti, entre em contato conosco para saber mais!

Por: Ariny Guedes