SlideShare uma empresa Scribd logo
1 de 18
CLOJURE SANDY MACIEL
É uma linguagem dinâmica e funcional que é executada na JVM
• é uma variante moderna de Lisp, desenvolvida por Rich Hickey.
• roda sobre a Java Virtual Machine(JVM).
• é um paradigma de linguagem de programação funcional.
• a sintaxe Clojure é construída em S-expressions.
o Desenvolvimento dinâmico
Não é apenas algo que você compilar e executar, mas algo com
o qual você pode interagir.
CARACTERÍSTICAS
CARACTERÍSTICAS
• Desenvolvimento dinâmico
o Programação funcional
Ele fornece as ferramentas para evitar estado mutável,
oferece funções como objetos de primeira classe, e enfatiza
iteração recursiva.
CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
o Lisp
Clojure é um membro da família Lisp de linguagens. Muitos
dos recursos do Lisp foram feitos para outras linguagens.
CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
• Lisp
o Runtime polimorfismo
Os sistemas que utilizam o polimorfismo em tempo
de execução são mais fáceis de mudar e estender.
Clojure suporta polimorfismo de várias maneiras:
•A maioria das estruturas de dados de infra-estruturas fundamentais
no runtime Clojure são definidos por interfaces Java.
•Suporta a geração de implementações de interfaces Java em Clojure
usando proxy.
•Suporta polimorfismo ao longo de ambas classes e personalizados
hierarquias com multimethod .
•Suporta uma forma mais rápida de polimorfismo com protocolos
CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
• Lisp
• Runtime polimorfismo
o Programação concorrente
Clojure simplifica a programação multi-threaded de
várias maneiras.
CARACTERÍSTICAS
• Desenvolvimento dinâmico
• Programação funcional
• Lisp
• Runtime poliformismo
• Programação concorrente
o Hospedado na JVM
É projetado para ser uma linguagem hospedeira,
compartilhando o sistema de tipo JVM, GC, etc
PREPARARANDO
O AMBIENTE
1. Baixar o arquivo clojure.(versao).zip no site
2. Descompactar local de sua prefência
3. Criar um main ( use java -cp clojure-(versao).jar clojure.main )
4. Seja feliz.
CÓDIGO EXEMPLO
(defn operacao [funcao x y]
(println (funcao x y)))
(defn operacao [funcao x y] (println (funcao x y)))
(operacao (fn [a b] (+ a b)) 2 2)
(operacao (fn [a b] (- a b)) 4 6)
(operacao (fn [a b] (* a b)) 1 0)
(operacao (fn [a b] (/ a b)) 2 4)
(operacao (fn [a b] (+ a b)) 2 2)
(operacao (fn [a b] (- a b)) 4 6)
(operacao (fn [a b] (* a b)) 1 0)
(operacao (fn [a b] (/ a b)) 2 4)
POR QUE USAR CLOJURE ?
* Rápida
* Eficiente
* Sucinta
* Projetada para simultaneidade
CLOJURE NO MUNDO
REFERÊNCIAS
 http://www.univale.com.br/unisite/mundo-
j/artigos/53_Clojure.pdf
 http://clojure.org/
OBRIGADA!!!!!

Mais conteúdo relacionado

Mais procurados

Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Daniel Lopes
 
Backend na nuvem com docker
Backend na nuvem com dockerBackend na nuvem com docker
Backend na nuvem com dockerGiovanni Bassi
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVNRicardo Coelho
 
Conhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container serviceConhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container serviceGiovanni Bassi
 
Slide Live Conhecendo o Kubernetes
Slide Live Conhecendo o KubernetesSlide Live Conhecendo o Kubernetes
Slide Live Conhecendo o KubernetesElton Fonseca
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureGiovanni Bassi
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Symfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeSymfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeGabriel Machado
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windowsGiovanni Bassi
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java Jeff Prestes
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers DockerJosé Barbosa
 
É fácil ser ágil usando .NET
É fácil ser ágil usando .NETÉ fácil ser ágil usando .NET
É fácil ser ágil usando .NETGiovanni Bassi
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on railsCOTIC-PROEG (UFPA)
 
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Renato Groff
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Renato Groff
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLRicardo Coelho
 

Mais procurados (20)

Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)
 
Backend na nuvem com docker
Backend na nuvem com dockerBackend na nuvem com docker
Backend na nuvem com docker
 
Subvertendo o código PHP com SVN
Subvertendo o código PHP com SVNSubvertendo o código PHP com SVN
Subvertendo o código PHP com SVN
 
Conhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container serviceConhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container service
 
Slide Live Conhecendo o Kubernetes
Slide Live Conhecendo o KubernetesSlide Live Conhecendo o Kubernetes
Slide Live Conhecendo o Kubernetes
 
Principais Tecnologias WEB
Principais Tecnologias WEBPrincipais Tecnologias WEB
Principais Tecnologias WEB
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e Azure
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Symfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPValeSymfony Flex @ 2º Meetup PHPVale
Symfony Flex @ 2º Meetup PHPVale
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windows
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Monitoramento de containers Docker
Monitoramento de containers DockerMonitoramento de containers Docker
Monitoramento de containers Docker
 
JEE nas nuvens: uma introdução ao openshift
JEE nas nuvens:  uma introdução ao openshiftJEE nas nuvens:  uma introdução ao openshift
JEE nas nuvens: uma introdução ao openshift
 
Jugvale
JugvaleJugvale
Jugvale
 
É fácil ser ágil usando .NET
É fácil ser ágil usando .NETÉ fácil ser ágil usando .NET
É fácil ser ágil usando .NET
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
 
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
 
Subvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOLSubvertendo o codigo PHP com SVN - ENSOL
Subvertendo o codigo PHP com SVN - ENSOL
 

Destaque

Gamificação na Computação - Campus Party Brasil 2017
Gamificação na Computação - Campus Party Brasil 2017Gamificação na Computação - Campus Party Brasil 2017
Gamificação na Computação - Campus Party Brasil 2017Sandy Maciel
 
User Experience - UX
User Experience - UXUser Experience - UX
User Experience - UXSandy Maciel
 
Testes de Desempenho
Testes de DesempenhoTestes de Desempenho
Testes de DesempenhoSandy Maciel
 
Jogos Mobile 2d + Corona SDK + Love2D
Jogos Mobile 2d + Corona SDK + Love2DJogos Mobile 2d + Corona SDK + Love2D
Jogos Mobile 2d + Corona SDK + Love2DSandy Maciel
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumSandy Maciel
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de ProjetoSandy Maciel
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Trello - Uma visão geral
Trello - Uma visão geralTrello - Uma visão geral
Trello - Uma visão geralSandy Maciel
 
Concorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoConcorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoAlexsandro Pereira
 

Destaque (11)

Testes Ágeis
Testes ÁgeisTestes Ágeis
Testes Ágeis
 
Gamificação na Computação - Campus Party Brasil 2017
Gamificação na Computação - Campus Party Brasil 2017Gamificação na Computação - Campus Party Brasil 2017
Gamificação na Computação - Campus Party Brasil 2017
 
User Experience - UX
User Experience - UXUser Experience - UX
User Experience - UX
 
Testes de Desempenho
Testes de DesempenhoTestes de Desempenho
Testes de Desempenho
 
Jogos Mobile 2d + Corona SDK + Love2D
Jogos Mobile 2d + Corona SDK + Love2DJogos Mobile 2d + Corona SDK + Love2D
Jogos Mobile 2d + Corona SDK + Love2D
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Trello - Uma visão geral
Trello - Uma visão geralTrello - Uma visão geral
Trello - Uma visão geral
 
Concorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoConcorrência na Linguagem de Programação
Concorrência na Linguagem de Programação
 
android
androidandroid
android
 

Semelhante a Clojure

NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebJairo Junior
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformMilfont Consulting
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVMWilliam Gouvea
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Painel HHVM, Zephir, PHPNG
Painel HHVM, Zephir, PHPNGPainel HHVM, Zephir, PHPNG
Painel HHVM, Zephir, PHPNGiMasters
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaGabriel Molter
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 

Semelhante a Clojure (20)

Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java Platform
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Painel HHVM, Zephir, PHPNG
Painel HHVM, Zephir, PHPNGPainel HHVM, Zephir, PHPNG
Painel HHVM, Zephir, PHPNG
 
Microframeworksphp
MicroframeworksphpMicroframeworksphp
Microframeworksphp
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Javafx
JavafxJavafx
Javafx
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e Prática
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Por dentro da jvm
Por dentro da jvmPor dentro da jvm
Por dentro da jvm
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 

Mais de Sandy Maciel

QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareSandy Maciel
 
Protagonismo feminino nos jogos
Protagonismo feminino nos jogosProtagonismo feminino nos jogos
Protagonismo feminino nos jogosSandy Maciel
 
Trabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF PlopTrabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF PlopSandy Maciel
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumSandy Maciel
 
Mercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficarMercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficarSandy Maciel
 
Jogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDKJogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDKSandy Maciel
 

Mais de Sandy Maciel (8)

QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
 
Protagonismo feminino nos jogos
Protagonismo feminino nos jogosProtagonismo feminino nos jogos
Protagonismo feminino nos jogos
 
Trabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF PlopTrabalho sobre artigo publicado na SugarLoaF Plop
Trabalho sobre artigo publicado na SugarLoaF Plop
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + selenium
 
Telegram Bot
Telegram BotTelegram Bot
Telegram Bot
 
Gamification
GamificationGamification
Gamification
 
Mercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficarMercado de TI - Chegando para ficar
Mercado de TI - Chegando para ficar
 
Jogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDKJogos Mobile 2D - Lua + Corona SDK
Jogos Mobile 2D - Lua + Corona SDK
 

Clojure