Clojure? O que é Clojure? Como funciona?
Essas são perguntas comuns de quem entra em contato com esse tema pela primeira vez.
Apesar de programação ser um assunto cada vez mais popular, Clojure ainda é uma linguagem pouco utilizada em comparação com outras, como JavaScript e HTML. Segundo uma pesquisa com os usuários do site Stack Overflow, apenas 1,4% citou Clojure como a linguagem mais utilizada.
O que é Clojure?
Basicamente, Clojure é uma linguagem de programação desenvolvida a partir de Lisp – uma família de linguagens criada por John McCarthy em 1958 –, por isso pode ser considerada um dialeto de Lisp.
Lançada à comunidade em 2007, a linguagem Clojure foi criada por Rich Hickey como uma versão moderna de Lisp para programação funcional (saiba mais sobre isso neste outro post). Isso significa que, diferentemente das linguagens imperativas e orientadas a objetos, Clojure é baseada em funções matemáticas que incentivam a imutabilidade e estruturas de dados imutáveis.
Outra característica dessa linguagem é que ela é executada na Java Virtual Machine (JVM, ou Máquina Virtual Java, em português).
"Por isso, Clojure consegue usufruir de todas as vantagens de Java, como importar bibliotecas de Java e se comunicar com fluidez com uma das linguagens mais utilizadas no mundo", afirma Bruno Rodrigues, tech manager no Nubank.
Também existem versões alternativas para outros ambientes de execução, como Clojure CLR – que "traduz" o código para a plataforma .NET conseguir ler – e ClojureScript – que "traduz" o código para JavaScript.
Como outros dialetos de Lisp, Clojure trata código como dados e tem um sistema de macros integrado. Na prática, criar uma macro equivale a adicionar novas construções à linguagem. Dessa forma, é possível alterá-la de acordo com as necessidades.
Quais as vantagens de Clojure?
De acordo com Bruno, uma das vantagens de Clojure é ser uma linguagem mais objetiva. "Enquanto em Java é preciso escrever muito código para dar uma instrução ao objeto, Clojure é mais conciso", explica.
Outra vantagem está na hora de testar. Como programação funcional preza pelo princípio da imutabilidade, fica mais simples criar testes e garantir que elas funcionem conforme o esperado.
"Uma linguagem funcional, quando utilizada de forma correta, possui comportamento equivalente a uma função matemática, por isso não retorna um resultado inesperado", diz Bruno.
Além disso, por rodar em JVM, é possível utilizar todo o ecossistema criado para Java. Isso significa que, além de permitir o uso de bibliotecas de Java e facilitar a integração entre aplicações escritas nas duas linguagens, dá para aproveitar toda a base de código escrito em Java e integrá-la a uma aplicação escrita em Clojure.
Outro aspecto está relacionado à comunidade técnica. Apesar de Clojure ser uma linguagem menos utilizada, sua comunidade é bem ativa – o que se traduz em maior e melhor suporte das pessoas e um ecossistema com ferramentas para automação de projetos, resolução de dependências, frameworks de propósitos gerais, entre outros.
O que Clojure tem a ver com o Nubank?
Tudo!
O Nubank é uma empresa de tecnologia. Por isso, lá no começo, em 2013, buscamos ferramentas que poderiam nos ajudar a resolver desafios ousados – como remover a burocracia do sistema financeiro e devolver às pessoas o controle sobre o seu dinheiro.
Na época em que o Nubank foi fundado, Clojure pareceu a melhor opção para os problemas que precisávamos resolver. Hoje, com mais de 15 milhões de clientes, todas as áreas do Nubank usam Clojure e mais de 90% dos microsserviços são escritos nessa linguagem.
"Criamos diversas bibliotecas internas em Clojure", conta Bruno. "Se precisamos fazer cálculos bancários, de juros ou de negócios, por exemplo, usamos nossas próprias bibliotecas", complementa.
Ainda temos códigos escritos em outras linguagens, como Python e Scala, mas nossa infraestrutura de microsserviços inteira está escrita em Clojure.
É com essa base robusta criada aqui dentro que conseguimos tirar a complexidade do mercado financeiro e desenvolver produtos simples, justos e sem burocracia.
Se você quer saber mais sobre nossa engenharia, acesse o canal Nubank On The Stage, o blog Building Nubank e os conteúdos abaixo: