SlideShare uma empresa Scribd logo
1 de 44
Diego Pacheco
Software Architect | Agile Coach
@diego_pacheco
Porque eu deveria dar bola para isso?
FP – É muito velha!
FP – velho?
FP – pre-histórico
Lambda Calculus - 1930
Funções matemáticas – Currying - Lambda Calculus - 1930
LISP - 1958
Código - LISP - 1958
Código - LISP #SQN
Haskell - 1990
Código - Haskell- 1958
Matemática…
Ah não…
#Fail
Entrega, Prática, Mercado!
Tudo em C, C++, Java,.NET
Banco de Dados
Servidor Web
Sistemas Operacionais
Middleware Server
Cache/Data Grids
Web Browsers
Games
Smart
Phones
Mercado, empregos, java/.net
http://www.indeed.com/jobanalytics/jobtrends?q=java%2C+.net%2C+C%2C+haskell%2C+lisp&l=
TOP Linguagens 2014
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Mas como assim, se programação
OO / imperativa tem tudo isso de
bom.
por que diabos eu deveria dar bola
para programação functional hein?
Programação
Imperatíva / OO
Distrações
Distrações
Mais do mesmo...
Java
.NET
Python
Ruby
CC++
Php
OO Bad Design
OO Bad Design – EX: Checked Exceptions
Cargo Cult!
Aprenda algo
diferente !!!
FP vs Prog. Imperativa
1. Pega o café
2. Coloca o café na xícara
3. Coloca água quente na xícara
5. Mexe o café com a água
4. retorna o café
retorna mexe (água, coloca (café, xícara))
Imperativa
Funcional
FP Puro
FP Influencia
Pós FP/Híbridas
http://www.indeed.com/jobanalytics/jobtrends?q=clojure%2C+scala%2C+f%23&l=
Crescimento
Qual a diferença?
FP
Imperativa
Function & Data | Data & Functions
Algorithm focus
State Discipline
Pure Functions: Avoid Side Effects, Improve Refactoring!
Deeply Learning
Perpective is everything: Change your way to think!
Diego Pacheco
Software Architect | Agile Coach
@diego_pacheco
Obrigado!
Thank you!

Mais conteúdo relacionado

Destaque (18)

12702889
1270288912702889
12702889
 
Taller 1
Taller 1Taller 1
Taller 1
 
Proceso de comunicacion
Proceso de comunicacionProceso de comunicacion
Proceso de comunicacion
 
Metodo das boquinhas
Metodo das boquinhasMetodo das boquinhas
Metodo das boquinhas
 
Katarina e o urso
Katarina e o ursoKatarina e o urso
Katarina e o urso
 
Strategy Execution Summit 2013 Symnetics
Strategy Execution Summit 2013   SymneticsStrategy Execution Summit 2013   Symnetics
Strategy Execution Summit 2013 Symnetics
 
Bus de Abu Dhabi a Dubai
Bus de Abu Dhabi a DubaiBus de Abu Dhabi a Dubai
Bus de Abu Dhabi a Dubai
 
Decreto n 3.244
Decreto n 3.244Decreto n 3.244
Decreto n 3.244
 
Fprieto educacion constructivismo y mas alla (sep12)
Fprieto educacion constructivismo y mas alla (sep12)Fprieto educacion constructivismo y mas alla (sep12)
Fprieto educacion constructivismo y mas alla (sep12)
 
Cartelera Control Interno - Noviembre
Cartelera Control Interno - NoviembreCartelera Control Interno - Noviembre
Cartelera Control Interno - Noviembre
 
Bank management and portfolio behavior
Bank management and portfolio behaviorBank management and portfolio behavior
Bank management and portfolio behavior
 
Projeto etwinning - divulgação
Projeto etwinning - divulgaçãoProjeto etwinning - divulgação
Projeto etwinning - divulgação
 
1 festa junina 2013
1 festa junina 20131 festa junina 2013
1 festa junina 2013
 
Aa s st600-results-2010
Aa s st600-results-2010Aa s st600-results-2010
Aa s st600-results-2010
 
El porque del calor
El porque del calorEl porque del calor
El porque del calor
 
La trata de personas juli ari biank(2)
La trata de personas juli ari biank(2)La trata de personas juli ari biank(2)
La trata de personas juli ari biank(2)
 
Mohamad_El-Moubacher_CV
Mohamad_El-Moubacher_CVMohamad_El-Moubacher_CV
Mohamad_El-Moubacher_CV
 
Urbal iii capacit modificado
Urbal iii capacit modificadoUrbal iii capacit modificado
Urbal iii capacit modificado
 

Semelhante a Programação funcional x imperativa

TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?Diego Pacheco
 
Criando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.comCriando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.comPentahoBrasil
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaDiego Pacheco
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineTiago Peczenyj
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Isaac Barros
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPaulino Michelazzo
 
GraphQL com .NET Core
GraphQL com .NET CoreGraphQL com .NET Core
GraphQL com .NET CoreMVP Microsoft
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangElaine Naomi
 
Tdc graphql do node para go
Tdc   graphql do node para goTdc   graphql do node para go
Tdc graphql do node para goAllan Carvalho
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de InternetVanessa Oliveira
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Diego Pacheco
 
Paralelização em Sistemas Computacionais por Bruno Domingues
Paralelização em Sistemas Computacionais por Bruno DominguesParalelização em Sistemas Computacionais por Bruno Domingues
Paralelização em Sistemas Computacionais por Bruno DominguesJoao Galdino Mello de Souza
 
DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...
DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...
DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...taty paya
 
DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...
DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...
DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...taty paya
 
Primeiros passos para estruturar uma equipe front-end
Primeiros passos para estruturar uma equipe front-endPrimeiros passos para estruturar uma equipe front-end
Primeiros passos para estruturar uma equipe front-endDiego Eis
 
Front end, back end, full stack. onde vivem o que comem hoje na uni_granrio
Front end, back end, full stack.  onde vivem  o que comem   hoje na uni_granrioFront end, back end, full stack.  onde vivem  o que comem   hoje na uni_granrio
Front end, back end, full stack. onde vivem o que comem hoje na uni_granrioAnna Cruz
 

Semelhante a Programação funcional x imperativa (20)

TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?TDC 2014 POA: Programacao funcional Por que Importa?
TDC 2014 POA: Programacao funcional Por que Importa?
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
Criando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.comCriando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.com
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestrutura
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade online
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 
GraphQL com .NET Core
GraphQL com .NET CoreGraphQL com .NET Core
GraphQL com .NET Core
 
Além da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e ErlangAlém da programação funcional com Elixir e Erlang
Além da programação funcional com Elixir e Erlang
 
Tdc graphql do node para go
Tdc   graphql do node para goTdc   graphql do node para go
Tdc graphql do node para go
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de Internet
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0
 
Paralelização em Sistemas Computacionais por Bruno Domingues
Paralelização em Sistemas Computacionais por Bruno DominguesParalelização em Sistemas Computacionais por Bruno Domingues
Paralelização em Sistemas Computacionais por Bruno Domingues
 
DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...
DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...
DODSALVADOR19_Arrancada & DevOps - o que este esporte pode nos ensinar sobre ...
 
DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...
DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...
DODPOA19_Arrancada - o que este esporte pode nos ensinar sobre agilidade e pe...
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 
Plugins
PluginsPlugins
Plugins
 
Primeiros passos para estruturar uma equipe front-end
Primeiros passos para estruturar uma equipe front-endPrimeiros passos para estruturar uma equipe front-end
Primeiros passos para estruturar uma equipe front-end
 
Front end, back end, full stack. onde vivem o que comem hoje na uni_granrio
Front end, back end, full stack.  onde vivem  o que comem   hoje na uni_granrioFront end, back end, full stack.  onde vivem  o que comem   hoje na uni_granrio
Front end, back end, full stack. onde vivem o que comem hoje na uni_granrio
 

Mais de Diego Pacheco

Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!Diego Pacheco
 
Continuous Discovery Habits Book Review.pdf
Continuous Discovery Habits  Book Review.pdfContinuous Discovery Habits  Book Review.pdf
Continuous Discovery Habits Book Review.pdfDiego Pacheco
 
Thoughts about Shape Up
Thoughts about Shape UpThoughts about Shape Up
Thoughts about Shape UpDiego Pacheco
 
Encryption Deep Dive
Encryption Deep DiveEncryption Deep Dive
Encryption Deep DiveDiego Pacheco
 
Management: Doing the non-obvious! III
Management: Doing the non-obvious! IIIManagement: Doing the non-obvious! III
Management: Doing the non-obvious! IIIDiego Pacheco
 
Design is not Subjective
Design is not SubjectiveDesign is not Subjective
Design is not SubjectiveDiego Pacheco
 
Architecture & Engineering : Doing the non-obvious!
Architecture & Engineering :  Doing the non-obvious!Architecture & Engineering :  Doing the non-obvious!
Architecture & Engineering : Doing the non-obvious!Diego Pacheco
 
Management doing the non-obvious II
Management doing the non-obvious II Management doing the non-obvious II
Management doing the non-obvious II Diego Pacheco
 
Testing in production
Testing in productionTesting in production
Testing in productionDiego Pacheco
 
Nine lies about work
Nine lies about workNine lies about work
Nine lies about workDiego Pacheco
 
Management: doing the nonobvious!
Management: doing the nonobvious!Management: doing the nonobvious!
Management: doing the nonobvious!Diego Pacheco
 
Dealing with dependencies
Dealing  with dependenciesDealing  with dependencies
Dealing with dependenciesDiego Pacheco
 
Dealing with dependencies in tests
Dealing  with dependencies in testsDealing  with dependencies in tests
Dealing with dependencies in testsDiego Pacheco
 

Mais de Diego Pacheco (20)

Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!Naming Things Book : Simple Book Review!
Naming Things Book : Simple Book Review!
 
Continuous Discovery Habits Book Review.pdf
Continuous Discovery Habits  Book Review.pdfContinuous Discovery Habits  Book Review.pdf
Continuous Discovery Habits Book Review.pdf
 
Thoughts about Shape Up
Thoughts about Shape UpThoughts about Shape Up
Thoughts about Shape Up
 
Holacracy
HolacracyHolacracy
Holacracy
 
AWS IAM
AWS IAMAWS IAM
AWS IAM
 
CDKs
CDKsCDKs
CDKs
 
Encryption Deep Dive
Encryption Deep DiveEncryption Deep Dive
Encryption Deep Dive
 
Sec 101
Sec 101Sec 101
Sec 101
 
Reflections on SCM
Reflections on SCMReflections on SCM
Reflections on SCM
 
Management: Doing the non-obvious! III
Management: Doing the non-obvious! IIIManagement: Doing the non-obvious! III
Management: Doing the non-obvious! III
 
Design is not Subjective
Design is not SubjectiveDesign is not Subjective
Design is not Subjective
 
Architecture & Engineering : Doing the non-obvious!
Architecture & Engineering :  Doing the non-obvious!Architecture & Engineering :  Doing the non-obvious!
Architecture & Engineering : Doing the non-obvious!
 
Management doing the non-obvious II
Management doing the non-obvious II Management doing the non-obvious II
Management doing the non-obvious II
 
Testing in production
Testing in productionTesting in production
Testing in production
 
Nine lies about work
Nine lies about workNine lies about work
Nine lies about work
 
Management: doing the nonobvious!
Management: doing the nonobvious!Management: doing the nonobvious!
Management: doing the nonobvious!
 
AI and the Future
AI and the FutureAI and the Future
AI and the Future
 
Dealing with dependencies
Dealing  with dependenciesDealing  with dependencies
Dealing with dependencies
 
Dealing with dependencies in tests
Dealing  with dependencies in testsDealing  with dependencies in tests
Dealing with dependencies in tests
 
Kanban 2020
Kanban 2020Kanban 2020
Kanban 2020
 

Programação funcional x imperativa