SlideShare una empresa de Scribd logo
1 de 33
Por que você precisa (re)aprender linguagens funcionais? Luiz Borba Maio-2010
[object Object],[object Object],[object Object],[object Object]
[object Object],(defun quicksort (lis)  (if (null lis) nil (let* ((x (car lis)) (r (cdr lis)) (fn (lambda (a) (< a x)))) (append (quicksort (remove-if-not fn r)) (list x) (quicksort (remove-if fn r))))))
[object Object],qsort [] = []  qsort (x:xs) = qsort (filter (< x) xs)  ++ [x] ++      qsort (filter (>= x) xs)
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Mas, de repente...
[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
Que diabos tá acontecendo?
[object Object]
“ Software is getting slower faster than hardware becomes faster” (Nicklaus Wirth)
código existente será obsoleto
temos que escrever código paralelo
QUEM SABE FAZER?
usando conceitos funcionais é mais fácil
Funções de Alta Ordem ,[object Object]
Imutabilidade let price = 10
Sem efeitos colaterais
Pattern Matching let peek s =     match s with     | Cons(hd, tl) -> hd     | Nil -> failwith &quot;Empty stack&quot;
[object Object],class Ping(count: int, pong: Actor) extends Actor {  def act() {  var pingsLeft = count – 1 pong ! Ping  while (true) {  receive {  case Pong => if (pingsLeft % 1000 == 0) println(&quot;Ping: pong&quot;)  if (pingsLeft > 0) {  pong ! Ping  pingsLeft -= 1  } else { println(&quot;Ping: stop&quot;) pong ! Stop  exit()  }  }  }  }  }
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Então vou fazer todos os meus novos sistemas usando linguagens funcionais?
NÃO
Vamos usar linguagens que tenham um mix de paradigmas
Funcional, Imperativa e Orientada a Objetos
Scala, C#, F# e  Java (?)
Precisamos aprender linguagens funcionais para escrever o software do futuro.
Perguntas? [email_address]

Más contenido relacionado

La actualidad más candente

JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sérioLuciano Ramalho
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorFelipe Hummel
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 
Introdução ao Objective-C
Introdução ao Objective-CIntrodução ao Objective-C
Introdução ao Objective-CGustavo Barbosa
 
Principais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoPrincipais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoIntel Software Brasil
 
Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013Intel Software Brasil
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04thomasdacosta
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...Danilo J. S. Bellini
 

La actualidad más candente (12)

JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sério
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitor
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Introdução ao JavaScript
Introdução ao JavaScriptIntrodução ao JavaScript
Introdução ao JavaScript
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Introdução ao Objective-C
Introdução ao Objective-CIntrodução ao Objective-C
Introdução ao Objective-C
 
Principais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoPrincipais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorização
 
Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013Vetorização e Otimização de Código - Intel Software Conference 2013
Vetorização e Otimização de Código - Intel Software Conference 2013
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
 

Destacado

Organizando demandas de desenvolvimento com o microsoft team foundation server
Organizando demandas de desenvolvimento com o microsoft team foundation serverOrganizando demandas de desenvolvimento com o microsoft team foundation server
Organizando demandas de desenvolvimento com o microsoft team foundation serverVinicius Moura
 
Metodologia de Gerenciamento de Projetos Ágil
Metodologia de Gerenciamento de Projetos ÁgilMetodologia de Gerenciamento de Projetos Ágil
Metodologia de Gerenciamento de Projetos ÁgilPablo Marquesi
 
Todas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saberTodas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saberLuiz Borba
 
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...Luiz Borba
 
Dias do futuro presente da programação
Dias do futuro presente da programaçãoDias do futuro presente da programação
Dias do futuro presente da programaçãoLuiz Borba
 
Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Tim Barker
 
Coisas que levei um tempo para aprender
Coisas que levei um tempo para aprenderCoisas que levei um tempo para aprender
Coisas que levei um tempo para aprenderLuiz Borba
 
Grafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vidaGrafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vidaCarlos Casalicchio
 
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de software
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de softwareAplicando conceitos gerais de gerenciamento de projetos à engenharia de software
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de softwareNatanael Simões
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de ProgramaçãoNatanael Simões
 
Como recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com BacktrackComo recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com BacktrackNatanael Simões
 
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasProcesso de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasNatanael Simões
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLNatanael Simões
 
Introdução a engenharia walter antonio bazzo - 6ª edição
Introdução a engenharia   walter antonio bazzo - 6ª ediçãoIntrodução a engenharia   walter antonio bazzo - 6ª edição
Introdução a engenharia walter antonio bazzo - 6ª ediçãoAna Cristina Ribeiro
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation ServerMaira Iantas
 
Livro estatística fácil antônio arnot crespo - ed saraiva
Livro estatística fácil   antônio arnot crespo - ed saraivaLivro estatística fácil   antônio arnot crespo - ed saraiva
Livro estatística fácil antônio arnot crespo - ed saraivaPablo Cotes
 
Albert Einstein - Biografia, Obras, Curiosidades e Outros
Albert Einstein - Biografia, Obras, Curiosidades e Outros Albert Einstein - Biografia, Obras, Curiosidades e Outros
Albert Einstein - Biografia, Obras, Curiosidades e Outros Fábio Roque
 
Morettin estatistica básica, probabilidade
Morettin   estatistica básica, probabilidadeMorettin   estatistica básica, probabilidade
Morettin estatistica básica, probabilidadelalabbesteves
 

Destacado (20)

Organizando demandas de desenvolvimento com o microsoft team foundation server
Organizando demandas de desenvolvimento com o microsoft team foundation serverOrganizando demandas de desenvolvimento com o microsoft team foundation server
Organizando demandas de desenvolvimento com o microsoft team foundation server
 
Metodologia de Gerenciamento de Projetos Ágil
Metodologia de Gerenciamento de Projetos ÁgilMetodologia de Gerenciamento de Projetos Ágil
Metodologia de Gerenciamento de Projetos Ágil
 
Todas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saberTodas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saber
 
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
 
Dias do futuro presente da programação
Dias do futuro presente da programaçãoDias do futuro presente da programação
Dias do futuro presente da programação
 
Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11
 
Coisas que levei um tempo para aprender
Coisas que levei um tempo para aprenderCoisas que levei um tempo para aprender
Coisas que levei um tempo para aprender
 
Voce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu CodigoVoce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu Codigo
 
Grafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vidaGrafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vida
 
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de software
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de softwareAplicando conceitos gerais de gerenciamento de projetos à engenharia de software
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de software
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de Programação
 
Como recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com BacktrackComo recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com Backtrack
 
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasProcesso de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
O guia-das-engenharias
O guia-das-engenhariasO guia-das-engenharias
O guia-das-engenharias
 
Introdução a engenharia walter antonio bazzo - 6ª edição
Introdução a engenharia   walter antonio bazzo - 6ª ediçãoIntrodução a engenharia   walter antonio bazzo - 6ª edição
Introdução a engenharia walter antonio bazzo - 6ª edição
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
Livro estatística fácil antônio arnot crespo - ed saraiva
Livro estatística fácil   antônio arnot crespo - ed saraivaLivro estatística fácil   antônio arnot crespo - ed saraiva
Livro estatística fácil antônio arnot crespo - ed saraiva
 
Albert Einstein - Biografia, Obras, Curiosidades e Outros
Albert Einstein - Biografia, Obras, Curiosidades e Outros Albert Einstein - Biografia, Obras, Curiosidades e Outros
Albert Einstein - Biografia, Obras, Curiosidades e Outros
 
Morettin estatistica básica, probabilidade
Morettin   estatistica básica, probabilidadeMorettin   estatistica básica, probabilidade
Morettin estatistica básica, probabilidade
 

Similar a Por que voce precisa (re)aprender linguagens funcionais

Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPJuliana Chahoud
 
Python Funcional
Python FuncionalPython Funcional
Python Funcionalpugpe
 
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUACândido Sales Gomes
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?Denis Costa
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLelliando dias
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoFernando Macedo
 
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...tdc-globalcode
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rustBruno Rocha
 
Princípios de Lógica de Programação
Princípios de Lógica de ProgramaçãoPrincípios de Lógica de Programação
Princípios de Lógica de ProgramaçãoJosé Hidasi Neto
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Intel Software Brasil
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 

Similar a Por que voce precisa (re)aprender linguagens funcionais (20)

Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHP
 
Pythonfuncional
PythonfuncionalPythonfuncional
Pythonfuncional
 
Python Funcional
Python FuncionalPython Funcional
Python Funcional
 
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
5.II SACIC - 2010 - Desenvolvimento de Aplicações para TVDigital com NCLUA
 
Introdução ao paradigma funcional com scala
Introdução ao paradigma funcional com scalaIntrodução ao paradigma funcional com scala
Introdução ao paradigma funcional com scala
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Functional Programming - Scala
Functional Programming - ScalaFunctional Programming - Scala
Functional Programming - Scala
 
pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQL
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
 
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
 
Haskell - Introdução
Haskell - IntroduçãoHaskell - Introdução
Haskell - Introdução
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
R para Iniciantes
R para IniciantesR para Iniciantes
R para Iniciantes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 
Princípios de Lógica de Programação
Princípios de Lógica de ProgramaçãoPrincípios de Lógica de Programação
Princípios de Lógica de Programação
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 

Más de Luiz Borba

Novas ferramentas para analise de dados
Novas ferramentas para analise de dadosNovas ferramentas para analise de dados
Novas ferramentas para analise de dadosLuiz Borba
 
Desconstruindo EJB
Desconstruindo EJBDesconstruindo EJB
Desconstruindo EJBLuiz Borba
 
Arquitetura pragmática
Arquitetura pragmáticaArquitetura pragmática
Arquitetura pragmáticaLuiz Borba
 
It's the end of design patterns as we know it (and i feel fine)
It's the end of design patterns as we know it (and i feel fine)It's the end of design patterns as we know it (and i feel fine)
It's the end of design patterns as we know it (and i feel fine)Luiz Borba
 
O triunfo dos nerds
O triunfo dos nerdsO triunfo dos nerds
O triunfo dos nerdsLuiz Borba
 
O ciclo da vida
O ciclo da vidaO ciclo da vida
O ciclo da vidaLuiz Borba
 
As coisas mudam
As coisas mudamAs coisas mudam
As coisas mudamLuiz Borba
 
Merda Acontece
Merda AconteceMerda Acontece
Merda AconteceLuiz Borba
 
Build 2013: O que vi por lá
Build 2013: O que vi por láBuild 2013: O que vi por lá
Build 2013: O que vi por láLuiz Borba
 
Windows 8 a nova corrida do ouro
Windows 8 a nova corrida do ouroWindows 8 a nova corrida do ouro
Windows 8 a nova corrida do ouroLuiz Borba
 
Assuntos aleatorios que podem mudar sua vida
Assuntos aleatorios que podem mudar sua vidaAssuntos aleatorios que podem mudar sua vida
Assuntos aleatorios que podem mudar sua vidaLuiz Borba
 
What i dont know about startups
What i dont know about startupsWhat i dont know about startups
What i dont know about startupsLuiz Borba
 
TDD Direto das Trincheiras versao 2
TDD Direto das Trincheiras versao 2TDD Direto das Trincheiras versao 2
TDD Direto das Trincheiras versao 2Luiz Borba
 
TDD direto das trincheiras
TDD direto das trincheirasTDD direto das trincheiras
TDD direto das trincheirasLuiz Borba
 
What killed RUP could kill Agile, too
What killed RUP could kill Agile, tooWhat killed RUP could kill Agile, too
What killed RUP could kill Agile, tooLuiz Borba
 
Métricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareMétricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareLuiz Borba
 

Más de Luiz Borba (18)

Novas ferramentas para analise de dados
Novas ferramentas para analise de dadosNovas ferramentas para analise de dados
Novas ferramentas para analise de dados
 
Desconstruindo EJB
Desconstruindo EJBDesconstruindo EJB
Desconstruindo EJB
 
Arquitetura pragmática
Arquitetura pragmáticaArquitetura pragmática
Arquitetura pragmática
 
It's the end of design patterns as we know it (and i feel fine)
It's the end of design patterns as we know it (and i feel fine)It's the end of design patterns as we know it (and i feel fine)
It's the end of design patterns as we know it (and i feel fine)
 
O triunfo dos nerds
O triunfo dos nerdsO triunfo dos nerds
O triunfo dos nerds
 
O ciclo da vida
O ciclo da vidaO ciclo da vida
O ciclo da vida
 
As coisas mudam
As coisas mudamAs coisas mudam
As coisas mudam
 
Merda Acontece
Merda AconteceMerda Acontece
Merda Acontece
 
Build 2013: O que vi por lá
Build 2013: O que vi por láBuild 2013: O que vi por lá
Build 2013: O que vi por lá
 
O futuro
O futuroO futuro
O futuro
 
Windows 8 a nova corrida do ouro
Windows 8 a nova corrida do ouroWindows 8 a nova corrida do ouro
Windows 8 a nova corrida do ouro
 
Assuntos aleatorios que podem mudar sua vida
Assuntos aleatorios que podem mudar sua vidaAssuntos aleatorios que podem mudar sua vida
Assuntos aleatorios que podem mudar sua vida
 
Startup tools
Startup toolsStartup tools
Startup tools
 
What i dont know about startups
What i dont know about startupsWhat i dont know about startups
What i dont know about startups
 
TDD Direto das Trincheiras versao 2
TDD Direto das Trincheiras versao 2TDD Direto das Trincheiras versao 2
TDD Direto das Trincheiras versao 2
 
TDD direto das trincheiras
TDD direto das trincheirasTDD direto das trincheiras
TDD direto das trincheiras
 
What killed RUP could kill Agile, too
What killed RUP could kill Agile, tooWhat killed RUP could kill Agile, too
What killed RUP could kill Agile, too
 
Métricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareMétricas Em Fabricas De Software
Métricas Em Fabricas De Software
 

Por que voce precisa (re)aprender linguagens funcionais