Programação funcional – Motivação

Sempre escutei falar em programação funcional, porém até agosto nunca despertou interesse. Foi então que li um artigo (infelizmente não lembro onde) que estava comparando os paradigmas OOP e FP, quando de repente, começou a explicar os motivos da criação do paradigma OOP relacionados a memória. Mind-blowing  🙂

Na OOP mudamos o estado de um objeto, por isso utilizamos uma quantidade menor de memória. Se lembrarmos que nos anos 70 e 80 os computadores tinham KBs de memória, fazia muito sentido otimizarmos ao máximo os recursos. Como trade-off, aumentou-se a complexidade, uma vez que foi introduzido problemas de concorrência e manipulação de estado de objetos.

O tempo passou e então estamos em 2017. Cloud computing, memória ram na casa do TBs tendendo ao infinito, escala, microservice, sistemas distribuídos, SaaS e muitas outras buzz words. Por que ainda precisamos lidar com problemas de concorrência e mutabilidade de dados? Por que não utilizarmos um paradigma que trabalha com imutabilidade, reduz problemas de concorrência, permite escala e facilita a distribuição?

uhm…

Neste momento entra a programação funcional!

  • Imutabilidade
  • Pattern match
  • Inferencia de tipos
  • Resolve problemas de concorrência
  • Resolve problemas de escala
  • Facilidade nos Testes de unidade

Após esse momento de Mind-Blowing, comecei a estudar os conceitos de FP, cálculo lambda, Haskell, F# e Erlang! Quando mais estudo essas linguagens mais fico apaixonado pela programação funcional! Estou em um trabalho constante e diário para mudar o mindset na solução de problemas pensando em Funções e não mais em Objetos! É desafiador mas no final, o resultado é sensacional 🙂

#FicaDica Vídeo da Erickson de 1985 apresentando o Erlang 🙂 Vale a pena!!!

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s