A interoperabilidade entre Clojure e Java não é um recurso acessório ou uma biblioteca adicional; é uma característica fundamental e intrínseca ao design da linguagem. Essa capacidade de interagir de forma transparente e robusta com o ecossistema Java decorre do fato de que Clojure é uma linguagem hospedada na Java Virtual Machine (JVM). Ela compila diretamente para bytecode Java, o que a torna uma cidadã de primeira classe no universo JVM.

Como ressaltado por Amit Rathore, essa união é poderosa: "It also runs on the JVM. This makes for a very potent combination." Essa base compartilhada permite que os desenvolvedores Clojure aproveitem um dos ecossistemas de software mais maduros, vastos e testados do mundo, sem a necessidade de "pontes" ou camadas de tradução complexas.

Nesta aula, exploraremos os mecanismos práticos dessa interoperabilidade, começando pelo cenário mais comum: chamar código Java a partir de uma aplicação Clojure.

1. Chamando Código Java a partir do Clojure

2. Chamando Código Clojure a partir do Java

3. Tópicos Avançados e Padrões de Uso