Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevConf - Porque investir em programação funcio...

DevConf - Porque investir em programação funcional @Alex Ferreira

Primeiro Evento organizado pelo Opensanca se trata do DevConf, tivemos a participação do Alex Ferreira @LocaWeb abordando sobre a importância da Programação Funcional.

Opensanca

May 27, 2017
Tweet

More Decks by Opensanca

Other Decks in Programming

Transcript

  1. HASKELL BROOKS CURRY • Teoria da lógica combinatória – 1927.

    • Base para o design das linguagens de programação funcional. • Higher-order functions.
  2. KURT GÖDEL • Teoria das funções recursivas – 1931. •

    Considerado um dos mais importantes lógicos que existiu
  3. ALONZO CHURCH • Teoria do calculo lambda – 1936. •

    Funções anônimas. • Influenciou o design do LISP e das linguagens de programação funcional em geral. • Conceitos de abstração. • Linguagens de alto nível.
  4. PRIMEIRAS LINGUAGENS FUNCIONAIS • LISP foi criado no MIT em

    1960 • ISWIM em 1966 • SASL em 1973 • Miranda 1986 • Erlang 1986 • Haskell em 1992
  5. THE FREE LUNCH IS OVER A frequência dos processadores parou

    de subir, principalmente devido às questões de economia de energia e dissipação de calor, como é possível observar claramente no gráfico ao lado tirado do artigo de Sutter:.
  6. PRINCÍPIOS BÁSICOS • Imutabilidade • Foco em funções, não no

    estado • Funções de ordem superior • Funções recursivas
  7. ”Eu gostei de tudo que vi em erlang mas odiava

    as coisas que não vi” José Valin
  8. ELIXIR É uma linguagem dinâmica e funcional projetada para construir

    aplicações escaláveis e de fácil manutenção
  9. QUAIS AS VANTAGENS DAS LINGUAGENS FUNCIONAIS? • Imutabilidade • Poucos

    problemas de concorrência • Facilidade de testar
  10. QUAIS AS VANTAGENS DAS LINGUAGENS FUNCIONAIS? • Imutabilidade • Poucos

    problemas de concorrência • Facilidade de testar • Facilidade de manutenção
  11. When writing a modular program to solve a problem, one

    first divides the problem into subproblems, then solve the subproblems, and finally combines the solutions. The ways is which one can divide up the original problem depend directly on the ways in which one can glue solutions together ”Why functional programming matters” Jonh Hughes, 1990
  12. Functional programming is more a mindset than a particular set

    of tools or language ”Functional Thinking” Neal Ford – IBM Developer