tdc 2014 poa: programacao funcional por que importa?

Post on 26-Dec-2014

358 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

TDC 2014 POA: Programacao funcional Por que Importa?

TRANSCRIPT

Programação Funcional

Por que Importa?

Diego PachecoSoftware Architect | Agile Coach

diego-pacheco.blogspot.com@diego_pacheco diegopacheco diego.pacheco

diegopachecorsdiegopacheco

http://about.me/diegopacheco

Ilegra.com

Programação Funcional

Por que Importa?

FP – É muito velha?

FP – pré-histórico!

Lambda Calculus - 1930

Funções matemáticas – Currying - Lambda Calculus - 1930

LISP - 1958

Código - LISP #SQN

Código - LISP - 1958

Haskell - 1990

Código - Haskell- 1990

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

GamesSmartPhones

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 eu deveria dar bola para programação funcional hein?

Programação Imperativa / OO

Formalismo, Syntax, Detalhes, Steps...

Distrações podem causar erros!

Distrações

Mais do mesmo...

Java

.NETPython

Ruby

CC++Php

OO Bad Design

OO Bad Design – EX: Checked Exceptions

Cargo Cult! (Fulano)Todo mundo faz então...

Aprenda algodiferente !!!

FP vs Prog. Imperativa

1. Pega o café2. Coloca o café na xícara3. Coloca água quente na xícara5. Mexe o café com a água4. retorna o café

retorna mexe (água, coloca (café, xícara))

Imperativa

Funcional

FP Puro

FP Influencia

Pós FP/Híbridas

Algumas comparações

FP e o mundo prático!

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

https://github.com/mmcgrana/ring/blob/master/ring-jetty-adapter/test/ring/adapter/test/jetty.clj

Algorithm focus

Mais reuso de código!

O que eu posso fazer?

State Discipline

Pure Functions: Avoid Side Effects, Improve Refactoring!

Correto VS Prático

No final do dia...

Aprendendo com Diversão, por que é algo realmente diferente!

Higher Order Functions

Currying

Lambda

Recursion

For/List Comprehensions

Monads

[Resumo/Comparação] Conceitos novos mas não tão diferentes assim...

Immutability

No Side Effects

Pure Functions

O que mais de legal vem da programação Funcional!?

Reactive 2.0

http://www.reactivemanifesto.org/

Akka.io

~650 bytes

4GB: 5.6 milhões de atores

50 milhões de mensagens p/segundo – 1 maquina.

Melhores Abstrações

Big Data / Map Reduce

100x Memoria10x disco

FRP / RX / Netflix

Perspectiva é tudo, muda seu jeito de ver o mundo!

Diego PachecoSoftware Architect | Agile Coach

Programação Funcional

Por que Importa?

diego-pacheco.blogspot.com@diego_pacheco diegopacheco diego.pacheco

diegopachecorsdiegopacheco

Obrigado !!!

top related