A vez da Linguagem Funcional - dti
Início » Artigos » Tecnologia na prática » A vez da Linguagem Funcional
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.
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, 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.