Programação Funcional e suas vantagens

Nesse artigo quero mostrar um pouco de como a programação funcional é abordada de uma forma diferente da programação interativa e orientada a objetos. Vamos ver algumas das vantagens de se utilizar esse paradigma de programação, que nos últimos anos vem ganhando força e interesse dentro da comunidade.

1. Introdução:

O paradigma funcional é baseado em aplicações de funções matemáticas e trata do conceito de imutabilidade e recursividade. Já vem sendo adotadas por grandes empresas (Linkedin, Pinterest, Twitter, NuBank, etc.), muito disso por conta do benefício que ela traz ao trabalharmos com threads, concorrência e paralelismo muito mais fácil. Podemos ver hoje um avanço dos processadores multi-cores e multi-threaded, isso se torna muito importante em aplicações que deverá escalar vários usuários e quer aproveitar o máximo de desempenho.

Torna-se mais fácil de trabalhar com aplicações matemáticas, programas que exigem resolução por recursividade, machine learning e inteligência artificial, fazendo com que a resolução de diversos problemas fique mais simples.

O código produzido em tal paradigma é completo e autossuficiente, o que traz diversos benefícios ao trabalho dos desenvolvedores. Onde, o código é mais fácil de ser feito e suas funções são avaliadas de forma isolada. Seu modelo tem facilidade nos testes e busca por bugs para sua manutenção, ocasionando programas mais concisos e imunes a erros.

Um pouco de como a Programação funcional se comporta:

2. Funções:

Na programação funcional usamos apenas funções. Elas podem ser divididas em módulos de acordo com sua semântica, além disso, pode ser passada através de argumentos para outras funções e também em atribuições e declarações de tipo. Funções que recebem outras funções como argumento são chamadas de funções de alta ordem.

Um exemplo bem comum de função de alta ordem é o filter do prelúdio recebe uma função e uma lista como argumentos, e seleciona (filtra) os elementos da lista para os quais a função dada resulta em verdadeiro.

3. Estilo declarativo:

A programação funcional tem uma abordagem diferente, o desenvolvedor deve escrever funções e o software irá funcionar com base na interação entre essas expressões matemáticas. O resultado de uma função serve como parâmetro para outras e assim por diante. Semelhante a uma calculadora.

4. Imutabilidade:

“A programação funcional é um paradigma de programação que trata apenas de aplicação de funções matemáticas, evitando a alteração de estado e mutabilidade de dados. Ou seja, assim que uma variável é alocada na memória e um valor é associado a este local, tal valor não pode ser mudado e sim transformado por uma aplicação de função.”

5. Tipagem:

Temos que o Haskell é uma linguagem fortemente tipada, com um sistema de tipos muito avançado. Todos os possíveis erros de tipo são encontrados em tempo de compilação (tipagem estática). Isto torna os programas mais seguros e mais rápidos, eliminando a necessidade de verificações de tipo em tempo de execução.

6. Pensamento da Programação Funcional:

Quando é criado uma estrutura por exemplo, vamos criar dois tipos Carta e Deck. Onde Deck vai ser uma lista de Cartas -> Deck = Deck [Carta] e um módulo onde teremos funções puras para lidarmos com os tipos criados.

Lembrando que as variáveis são imutáveis, logo a função embaralhar não irá alterar o valor interno de um deck, ela vai retornar um novo deck com base no recebido como parâmetro.

7. Conclusão:

Podemos observar que a Programação Funcional está ganhando muito espaço hoje em dia, por se tratar de um paradigma que consegue realizar tarefas em uma perspectiva diferente. Ela consegue gerar um código mais conciso e legível, que possui maior facilidade na hora de realizar teste e busca por bugs. Em alguns problemas faz com que o código seja reduzido em grande parte, facilitando condições de programação simultânea.

ExibirMinimizar
aci institute 15 anos compartilhando conhecimento