Documentário oficial de Clojure
(clojure.org)- Divulgação de um documentário oficial em vídeo de 1 hora sobre como Clojure se tornou a linguagem de infraestrutura de fintechs globais
- Apresenta a trajetória das origens únicas de Clojure, de sua comunidade orientada por valores e de seu impacto na forma de pensar software
- Link do YouTube: Como o projeto pessoal de um programador mudou a forma como pensamos sobre software
- As notas do episódio reúnem artigos fundamentais, livros, palestras e casos de empresas que serviram de base para Clojure
- Também apresenta runtimes como Clojure, ClojureScript, ClojureCLR e projetos de extensão como Babashka, Jank, ClojureDart
- A página oficial funciona como um hub abrangente do ecossistema Clojure, cobrindo ferramentas de IA, ciência de dados, integração com editores e canais da comunidade
Visão geral do documentário
- O documentário de Clojure mostra como, a partir dos dois anos sabáticos de Rich Hickey e de uma ideia obstinada, a linguagem passou a impulsionar a stack de engenharia de uma das maiores fintechs do mundo
- Participam nomes importantes como Rich Hickey, Alex Miller e Stuart Halloway, explorando as origens não convencionais de Clojure, sua comunidade orientada por valores e seu impacto na forma de pensar software
- O documentário foi produzido com patrocínio do Nubank
Notas do episódio
-
Artigos de pesquisa fundamentais
- Out of the Tarpit (2006) — Ben Moseley & Peter Marks, aponta que o estado mutável do software é uma das principais causas da complexidade acidental
- Ideal Hash Trees — Phil Bagwell, pesquisa sobre Hash Array Mapped Tries (HAMTs) que inspirou diretamente as estruturas de dados persistentes de Clojure
- Composable Memory Transactions (2005) — Tim Harris e outros, apresenta o conceito de Software Transactional Memory (STM), que influenciou o modelo de concorrência de Clojure
- Paper Bibliography — lista de artigos consultados por Rich Hickey no desenvolvimento de Clojure, organizada por Michael Fogus
-
Livros influentes
- On Lisp — Paul Graham, obra de referência sobre técnicas avançadas de Lisp, disponível gratuitamente online
- Programming Clojure (4th ed.) — de Alex Miller, Stuart Halloway e Aaron Bedra, cuja 1ª edição foi publicada junto com o Clojure 1.0
- The Joy of Clojure — de Michael Fogus & Chris Houser
-
Principais palestras de Rich Hickey
- Simple Made Easy (2011) — palestra clássica que define a diferença entre "simple" e "easy"
- Clojure at LispNYC (2007) — primeira apresentação pública de Clojure
- Are We There Yet? (2009) — análise do modelo de estado de Clojure e do conceito de tempo na programação
- Hammock Driven Development (2010) — enfatiza uma abordagem de refletir profundamente sobre o problema antes de escrever código
- The Value of Values (2012) — destaca a importância dos valores imutáveis (immutable values)
- Writing Datomic in Clojure (2012) — explica por que Datomic foi escrito em Clojure
- Effective Programs - 10 Years of Clojure (2017) — retrospectiva dos 10 anos de evolução de Clojure e da priorização de recursos voltados à solução de problemas reais
- Talk Transcripts — arquivo com transcrições de palestras de Rich Hickey e da comunidade
- Rich Hickey Talks — playlist com vídeos de palestras de Rich
-
Ensaios de Paul Graham
- Beating the Averages, Revenge of the Nerds e outras coletâneas de ensaios
-
Principais empresas e projetos
- Cognitect — empresa de consultoria que administrou Clojure por muito tempo
- Nubank — maior banco digital independente do mundo, opera sua infraestrutura principal com Clojure e Datomic e, após adquirir a Cognitect em 2020, passou a liderar o desenvolvimento de Clojure
- Datomic — banco de dados distribuído baseado em fatos imutáveis (immutable facts), projetado por Rich Hickey e pela Cognitect
-
Comunidade e materiais de arquivo
- Java.next Blog Series (2008) — série de posts de Stuart Halloway sobre tendências das linguagens da JVM
- Clojure IRC Log Archive — arquivo preservado do canal IRC inicial de Clojure
- Clojure Etiquette — diretrizes de etiqueta da comunidade originadas de uma mensagem de Rich em uma mailing list
Dialetos e runtimes de Clojure
-
Núcleo
- Clojure — roda na JVM, com guia oficial de primeiros passos e o livro introdutório gratuito Brave Clojure
- ClojureScript — compilado para JavaScript, com suporte a bibliotecas de frontend como Reagent e Re-frame
- ClojureCLR — Clojure executado sobre o .NET CLR
-
Extensões
- Babashka — permite scripting rápido sem o tempo de inicialização da JVM
- Jank — compilador nativo voltado para LLVM
- ClojureDart — para desenvolvimento de apps mobile com Flutter
- Squint / Cherry — variações de ClojureScript compiladas para módulos ES
- Other Clojure-like projects — oferece uma lista de outros projetos semelhantes
-
Ciência de dados
- libpython-clj — chama diretamente bibliotecas Python como NumPy, pandas, scikit-learn a partir de Clojure
- Noj — toolkit nativo de ciência de dados em Clojure desenvolvido pelo SciCloj, integrando dataframes, visualização e machine learning
- Tablecloth — combina integração com Python e dataframes em Clojure
-
Clojure e IA
- ECA (Editor Code Assistant) — ferramenta de apoio à edição de código
- Backseat Driver — ferramenta de Clojure para o Copilot
- ClojureMCP — servidor MCP que conecta assistentes de IA e REPL, como Claude, Codex e Gemini
- MCP-nREPL — servidor MCP mínimo baseado em Babashka, oferecendo acesso a nREPL para agentes de programação
- clojure-mcp-light — ferramenta CLI leve para assistentes de programação com LLM
- #ai-assisted-coding (Clojurians Slack) — canal ativo da comunidade sobre IA e desenvolvimento em Clojure
Primeiros passos
- Experiência completa — o guia oficial inclui vídeos de instalação para macOS, Linux e Windows, com uso do Calva no VS Code
- Caminho mais rápido — instale o Babashka e comece a fazer scripts imediatamente, sem necessidade de configurar a JVM
- Web/frontend — comece com ClojureScript + Shadow CLJS
- Apps mobile — desenvolva apps em Flutter com ClojureDart
- Usuários de Python — use libpython-clj para chamar bibliotecas Python diretamente
- Editor — o Calva oferece suporte a REPL, edição estrutural e integração com IA (Backseat Driver) no VS Code; veja o guia de editores
Glossário
- Lisp — família de linguagens que expressa código na forma de listas aninhadas entre parênteses; Clojure é um dialeto de Lisp
- REPL — Read-Eval-Print Loop, sessão interativa que lê expressões, as avalia e exibe o resultado
- Programação funcional — estilo de programação centrado em funções, minimizando estado mutável e efeitos colaterais
- Valor (Value) — dado que não muda após ser criado; Clojure usa valores imutáveis por padrão
- Estrutura de dados persistente (Persistent Data Structure) — coleção que preserva versões anteriores ao ser modificada; aqui, "persistent" significa preservação de versões
- Complexidade acidental (Accidental Complexity) — complexidade causada não pelo problema em si, mas por ferramentas ou escolhas de design
- STM (Software Transactional Memory) — modelo de concorrência que coordena mudanças de estado compartilhado por transações em vez de locks
- Linguagem hospedada (Hosted Language) — linguagem que roda sobre uma plataforma existente em vez de ter runtime próprio; Clojure roda na JVM, ClojureScript em JS e ClojureCLR em .NET
Acompanhar Clojure e comunidade
- Canais oficiais no YouTube, Reddit, Slack, LinkedIn e outros
- Clojure/Conj Conference 2026 — prevista para acontecer de 30 de setembro a 2 de outubro de 2026 em Charlotte, Carolina do Norte, nos EUA
6 comentários
Já faz bastante tempo que Clojure surgiu, então fico curioso sobre por que ele voltou a ser assunto agora.
No começo, tive a experiência de resenhar um livro sobre Clojure. Depois, vi algumas empresas tentarem usá-lo, mas a conclusão foi que não era fácil adotá-lo em ambiente corporativo. Achei que acabaria sendo esquecido, então também me pergunto por que ele voltou a ser comentado.
Usei Java desde o início e por muito tempo, mas embora a JVM ainda seja bastante usada porque muitas grandes empresas já desenvolveram muito software em Java, porque (no caso dos EUA) a maior parte da mão de obra indiana trabalha com Java, e porque Java é ensinado desde o ensino médio até a universidade, entre outros motivos, na minha opinião ela já não combina mais com a época atual. Gosto de Lisp, mas não consegui identificar no texto acima que vantagens estão sendo novamente destacadas, na era da IA, para que uma linguagem tão de nicho e um modelo de JVM que já parece estar em declínio voltem a ser discutidos.
Nunca cheguei a aprender de verdade uma linguagem de programação funcional, então estou pensando em começar com Clojure. Como devo estudar? Gostaria muito de receber conselhos dos desenvolvedores.
Minha experiência e a conclusão de várias pessoas eram de que, para estudar uma linguagem funcional, o caminho clássico era fazê-lo com uma linguagem funcional pura.
Isso era algo dito na época em que as linguagens funcionais estavam surgindo e também quando receberam muita atenção, e eu concordava com isso. Eu estudei com Erlang no começo do seu surgimento, e na época foi algo bastante impactante e uma experiência surpreendente.
Então, como vocês aprenderam uma linguagem de programação puramente funcional? Até agora, eu vinha estudando linguagens de programação (C, Go, Python etc.) com livros técnicos + projetos paralelos; será que também faz sentido seguir essa mesma direção de aprendizado para linguagens de programação funcionais?
Pode variar de pessoa para pessoa, mas acho que, na área de computação, quase todo mundo não estuda do jeito que você mencionou? Hoje em dia também existe a opção de estudar por vídeo, então o ideal é seguir o método de aprendizagem que mais combina com você.
Comentários no Hacker News
Clojure foi a melhor coisa que aconteceu na minha carreira
Graças a essa linguagem, meu salário dobrou e consegui mudar para um setor mais estável
A atmosfera inclusiva da conferência Heart of Clojure foi realmente impressionante. A comunidade continua ativa até hoje e, em especial, é marcante a paixão da comunidade Jank, que cria um dialeto de Clojure para trabalho de baixo nível
O problema é que a maioria das empresas valoriza mais a facilidade de substituir desenvolvedores do que a estabilidade ou autenticidade da linguagem. No fim, isso derruba a qualidade e cria um ciclo vicioso em que tentam substituir tudo por IA e acabam arruinando a própria empresa
O que me surpreendeu ao usar Clojure comercialmente foi que muitos desenvolvedores nem conheciam a filosofia da linguagem, as palestras do Rich Hickey ou mesmo como usar o REPL. Ainda assim, eles estavam em posição de manter codebases em Clojure, o que me parecia estranho
O motivo de eu ter migrado para Clojure foi justamente o loop curto de feedback, então, se não vão aproveitar isso, não sei por que usar essa linguagem
Graças a Clojure, consegui tocar um negócio sustentável como empreendedor solo nos últimos 10 anos
Como cliente e servidor compartilhavam a maior parte da lógica de negócio, até codebases complexas eram fáceis de manter
Acima de tudo, a linguagem e o ambiente são centrados em estabilidade, então eu nunca senti o chão sumir a cada poucos anos como acontece com outras linguagens
Clojure não é uma linguagem nova nem brilhante, mas é uma companheira confiável no longo prazo
Antigamente eu programava em Clojure todos os dias e lembro de ter jantado com Rich Hickey na Clojure/Conj
Minha primeira startup também foi toda feita em Clojure, e eu fui um adotante bem inicial que compilava Clojure para JS e rodava isso em Lambda numa época em que a AWS ainda tinha poucos serviços
Ainda hoje fico empolgado só de pensar em assistir aos vídeos relacionados
Uso Clojure desde 2013, e é uma linguagem que teve um impacto muito positivo na minha vida
Sou um usuário um tanto fora do padrão, e a maior parte do meu trabalho artístico foi feita em Clojure
Quando eu tocava uma startup, Clojure também me ajudou a evitar o burnout
Participar da comunidade também foi uma grande alegria, e sou grato pela dedicação de tantas pessoas
Clojure é uma linguagem e um ecossistema excelentes
No começo eu até doei para o projeto do Rich, e por alguns anos ganhei dinheiro desenvolvendo em Clojure
Hoje não uso com tanta frequência, mas ainda me diverti atualizando exemplos de um livro antigo de Clojure duas horas atrás
E também se você acha que Clojure é adequado para aplicações de ML/IA; mesmo com boa interop com Python, por que não se difundiu mais?
No JVM, Clojure é minha linguagem alternativa favorita
Ela herda a tradição do Lisp, mas, em vez de prometer de forma ilusória recriar a JVM, o que me atrai é sua filosofia de abraçar a plataforma hospedeira
Zig segue uma linha parecida, e sinto que essa filosofia de integração é um ponto-chave para aumentar adoção e praticidade
Muito bom. Só acho uma pena que borkdude não tenha sido incluído
A expressão “stable long-term companion” do jwr ficou comigo
Nas empresas em que trabalhei que só corriam atrás do novo, no fim se gastava mais tempo com migrações
Estabilidade parece algo sem graça, mas é a única forma de times pequenos sobreviverem por muito tempo
Eu gostava muito de usar Clojure, mas a maior parte do que faço exige interação com a linguagem C, então era difícil adotá-la como linguagem principal
Eu não sabia que o Datomic agora é gratuito em termos de licença. Antes eu não usava porque o custo era alto, mas isso é interessante
Ex.: Datalevin, Datahike, Asami
O XTDB também existe, mas abandonou Datalog e seguiu por outro caminho
Também há um site de comparação: Clojurelog (um pouco desatualizado)