1  Introdução

1.1 Por que Julia?

Julia foi criada para resolver o que seus autores chamaram de problema das duas linguagens (Bezanson et al. 2017): você prototipa em uma linguagem alta e produtiva (R, Python) e, quando o código fica lento demais, reescreve o gargalo em C, C++ ou Fortran. O resultado é que a biblioteca que você usa e o código que você escreve são escritos em linguagens diferentes — o que torna o interior dos pacotes opaco para o usuário.

Em Julia, vegan seria escrito em Julia. Isso importa para o ecólogo por três razões práticas:

  1. Você consegue ler o pacote que está usando. Quando metaMDS faz algo inesperado, a resposta está em Fortran. Em Julia, @edit te leva ao código-fonte legível da função.
  2. Simulação deixa de ser proibitiva. Modelos nulos, bootstrap, aleatorização — o pão-com-manteiga da ecologia de comunidades — rodam em loops. Loops em Julia são rápidos.
  3. Os pacotes compõem. Tipos definidos em um pacote funcionam com funções de outro sem código de cola, por causa do despacho múltiplo (Seção 4.4).

1.2 O custo honesto

Esses benefícios não são de graça, e este livro não vai fingir o contrário. Deixa eu mostrar alguns benefícios e custos.

O que você ganha O que você perde
Loops rápidos sem vetorizar Ecossistema de ecologia de comunidades (vegan, picante, FD)
Código de pacote legível Modelos aditivos generalizados (mgcv)
MixedModels.jl com a sintaxe de fórmula do lme4 Diagnóstico de resíduos ao estilo DHARMa
Composição via despacho múltiplo Massa crítica de tutoriais e respostas no Stack Overflow
Um único ambiente reprodutível (Project.toml + Manifest.toml) Latência de compilação na primeira chamada
NotaA validade desta tabela

A coluna da direita é uma avaliação do ecossistema Julia em agosto de 2026, feita consultando os registros de pacotes públicos. Ecossistemas mudam. Antes de concluir que algo não existe, verifique — e se encontrar um pacote que preencha uma destas lacunas, o capítulo está errado e deve ser corrigido. Vou tentar atualizar com certa frequência, mas certamente não conseguirei manter tudo em dia.

NotaQuando não usar Julia

Se sua análise é essencialmente vegan::adonis2() seguido de metaMDS(), use R. Este livro cobre até GLMs justamente porque é até aí que a recomendação “use Julia” se sustenta sem ressalvas.

1.3 A latência de compilação

Julia compila cada método na primeira vez que ele é chamado com um dado conjunto de tipos. Isso é o que torna a segunda (terceira, quarta, …) chamada rápida, e a primeira, lenta.

soma_quadrados(v) = sum(x^2 for x in v)

v = randn(1_000_000)

# primeira chamada: inclui a compilação
@elapsed soma_quadrados(v)
0.0100205
# segunda chamada: só a execução
@elapsed soma_quadrados(v)
0.00050175

A diferença entre as duas chamadas é o tempo de compilação. Em uma sessão de análise real esse custo é pago uma vez. Em um script curto que roda uma única vez e termina, esse custo de compilação pode ter um impacto perceptível. Vale entender um pouco sobre o fenômeno antes de concluir que “Julia é uma linguagem lenta”.

1.4 Estrutura do livro

Exercícios

  1. Instale Julia via juliaup e reproduza o exemplo de latência acima. Quanto tempo sua primeira chamada leva?
  2. Liste três análises que você faz com frequência. Para cada uma, procure no JuliaHub se existe um pacote equivalente.