O que é Julia e primeiros comandos

Aprenda o que é a linguagem Julia, por que ela é usada em estatística e programação científica, e escreva seus primeiros comandos passo a passo.

1. Antes dos primeiros comandos: o que torna Julia diferente?


Antes de escrever nosso primeiro comando, é importante entender uma coisa:

Julia não é apenas “mais uma linguagem de programação”.
Ela foi pensada especialmente para matemática, estatística, ciência de dados, simulações e computação científica.

Isso significa que muitas escolhas da linguagem foram feitas para facilitar a vida de quem trabalha com números, fórmulas, tabelas, vetores, matrizes, gráficos e modelos matemáticos.

Em outras linguagens, às vezes precisamos escolher entre:

  • código fácil de escrever;
  • código rápido de executar.

Julia tenta juntar os dois mundos:

uma sintaxe clara e próxima da matemática, mas com desempenho alto.

Ideia central:
Julia foi criada para permitir que você escreva código científico de forma simples, expressiva e rápida.

2. Principais características da linguagem Julia


A tabela abaixo resume algumas das características mais importantes da linguagem.

Característica Explicação
Múltiplo despacho Julia escolhe qual método executar com base nos tipos dos argumentos.
Tipagem dinâmica Você não precisa declarar o tipo de uma variável o tempo todo; Julia infere tipos como Int64, Float64, String e Bool.
Tipagem forte Julia não mistura tipos incompatíveis de forma descuidada.
Alta performance O desempenho pode chegar próximo de linguagens como C e Fortran.
JIT Julia compila o código durante a execução, usando Just-In-Time compilation.
Broadcasting Usa o ponto para aplicar operações elemento a elemento.
Sintaxe matemática Permite escrever código parecido com expressões matemáticas.
Pacotes Possui um gerenciador de pacotes integrado.
Metaprogramação Permite usar macros e gerar código automaticamente.
Código genérico Uma mesma função pode funcionar para vários tipos de dados.
Interoperabilidade Julia consegue conversar com Python, R, C, Fortran e outras linguagens.
Indexação em 1 O primeiro elemento de um vetor é acessado com [1].

Agora vamos entender cada ponto com calma.


3. Múltiplo despacho: uma das ideias mais importantes de Julia


O múltiplo despacho é uma das características mais famosas de Julia.

Em linguagem simples, significa que Julia pode escolher uma função diferente dependendo dos tipos dos valores que você passa para ela.

Veja um exemplo:

struct Cachorro end
struct Gato end

encontro(a::Cachorro, b::Cachorro) = "Os cachorros brincam juntos"
encontro(a::Cachorro, b::Gato) = "O cachorro corre atrás do gato"
encontro(a::Gato, b::Cachorro) = "O gato se assusta com o cachorro"
encontro(a::Gato, b::Gato) = "Os gatos se ignoram"

println(encontro(Cachorro(), Gato()))

Saída esperada

O cachorro corre atrás do gato

Nesse exemplo, a função tem sempre o mesmo nome:

encontro

Mas Julia escolhe qual versão executar olhando os tipos dos argumentos:

Cachorro()
Gato()

Ou seja, esta chamada:

encontro(Cachorro(), Gato())

usa esta definição:

encontro(a::Cachorro, b::Gato) = "O cachorro corre atrás do gato"
Resumo:
No múltiplo despacho, o nome da função pode ser o mesmo, mas o comportamento muda conforme os tipos dos argumentos.

4. Tipagem dinâmica: você não precisa declarar tudo


Julia possui tipagem dinâmica.

Isso significa que você pode criar variáveis sem dizer explicitamente qual é o tipo delas.

Por exemplo:

idade = 18
nome = "Ana"
altura = 1.68
aprovado = true

Julia entende automaticamente que:

Variável Valor Tipo interpretado por Julia
idade 18 Int64 — número inteiro de 64 bits
nome "Ana" String — texto
altura 1.68 Float64 — número decimal de ponto flutuante
aprovado true Bool — valor lógico verdadeiro ou falso

Em Julia, você pode verificar o tipo de qualquer valor com a função typeof:

println(typeof(idade))
println(typeof(nome))
println(typeof(altura))
println(typeof(aprovado))

Saída esperada

Int64
String
Float64
Bool

Na maioria dos computadores atuais de 64 bits, um número inteiro como 18 aparece como Int64, e um número decimal como 1.68 aparece como Float64.

Você não precisou escrever algo como:

idade::Int64 = 18

Embora Julia permita anotações de tipo, elas não são obrigatórias no começo. Neste exemplo, Int64 deixa explícito que idade deve ser um inteiro de 64 bits.


5. Tipagem forte: Julia não mistura tudo automaticamente


Julia também possui tipagem forte.

Isso significa que ela não mistura tipos incompatíveis sem você deixar claro o que quer fazer.

Veja este exemplo:

numero = 10
texto = "5"

println(numero + texto)

Esse código gera erro, porque Julia não soma automaticamente um número com um texto.

Para fazer a soma, você precisa converter o texto "5" para número:

numero = 10
texto = "5"

valor_convertido = parse(Int64, texto)

println(numero + valor_convertido)

Saída esperada

15

A função parse(Int64, texto) transforma o texto "5", que é do tipo String, em número inteiro do tipo Int64.

Interpretação:
Julia é flexível para criar variáveis, mas não é descuidada com operações entre tipos diferentes.

6. Alta performance e JIT


Julia é conhecida por ter alta performance.

Isso acontece porque Julia usa uma estratégia chamada JIT, abreviação de:

Just-In-Time compilation

Em português:

compilação no momento da execução.

Na prática, quando você executa uma função pela primeira vez, Julia compila aquela função para os tipos de dados usados.

Por isso, às vezes a primeira execução pode parecer um pouco mais lenta, mas as próximas execuções tendem a ser mais rápidas.

function soma_quadrados(n)
    total = 0

    for i in 1:n
        total = total + i^2
    end

    return total
end

println(soma_quadrados(1000))

Nesse exemplo, a função soma os quadrados dos números de 1 até 1000.

Matematicamente, ela calcula:

\[1^2 + 2^2 + 3^2 + \cdots + 1000^2\]

7. Broadcasting: o ponto em Julia


Uma das coisas mais importantes para quem vai trabalhar com dados em Julia é o broadcasting.

Broadcasting significa aplicar uma operação elemento por elemento.

Veja:

notas = [7.5, 8.0, 6.5, 9.0]

notas_ajustadas = notas .+ 0.5

println(notas_ajustadas)

Saída esperada

[8.0, 8.5, 7.0, 9.5]

O ponto em:

.+ 

significa:

some 0.5 em cada elemento do vetor.

Sem o ponto, Julia tentaria somar um vetor inteiro com um número de uma forma que não representa a operação elemento a elemento.

Outro exemplo:

notas = [7.5, 8.0, 6.5, 9.0]

proporcoes = notas ./ 10

println(proporcoes)

Saída esperada

[0.75, 0.8, 0.65, 0.9]

Aqui:

./

significa:

divida cada nota por 10.

Regra prática:
Em Julia, quando você quiser aplicar uma operação a cada elemento de um vetor, provavelmente vai usar o ponto: .+, .-, .*, ./ ou uma função com ponto, como sqrt.(x).

8. Sintaxe matemática


Julia permite escrever códigos muito próximos da notação matemática.

Por exemplo, em matemática escrevemos:

\[f(x) = x^2 + 2x + 1\]

Em Julia, podemos escrever:

f(x) = x^2 + 2x + 1

println(f(3))

Saída esperada

16

Explicando:

\[f(3) = 3^2 + 2 \cdot 3 + 1\] \[f(3) = 9 + 6 + 1 = 16\]

O símbolo ^ representa potência.

Então:

x^2

significa:

\[x^2\]

9. Pacotes em Julia


Julia possui um gerenciador de pacotes integrado.

Pacotes são extensões que adicionam novas funcionalidades à linguagem.

Por exemplo:

  • DataFrames.jl para trabalhar com tabelas;
  • CSV.jl para ler arquivos CSV;
  • Plots.jl para fazer gráficos;
  • Statistics para funções estatísticas;
  • Distributions.jl para distribuições de probabilidade.

Para instalar um pacote, podemos usar:

import Pkg

Pkg.add("DataFrames")

Depois de instalado, usamos:

using DataFrames

E então podemos criar uma tabela:

using DataFrames

df = DataFrame(
    disciplina = ["Julia", "Estatística", "Cálculo"],
    minutos = [45, 60, 30]
)

println(df)

Aqui, DataFrame representa uma tabela com linhas e colunas.


10. Metaprogramação e macros


Julia também permite metaprogramação.

Isso significa que o código pode manipular ou gerar outro código.

Um exemplo simples de macro é @time.

@time sum(1:1_000_000)

A macro @time mede o tempo gasto para executar uma expressão.

Neste caso, estamos somando os números de 1 até 1_000_000.

O sublinhado em:

1_000_000

serve apenas para melhorar a leitura.

É o mesmo que escrever:

1000000

11. Código genérico


Em Julia, uma função pode funcionar para vários tipos de dados.

Veja:

dobro(x) = 2 * x

println(dobro(10))
println(dobro(3.5))
println(dobro([1, 2, 3]))

Saída esperada

20
7.0
[2, 4, 6]

A mesma função dobro funcionou para:

  • número inteiro;
  • número decimal;
  • vetor.

Isso é uma das grandes forças de Julia.


12. Interoperabilidade


Julia também consegue conversar com outras linguagens.

Isso é importante porque, na prática, muitos projetos científicos usam bibliotecas já existentes em outras linguagens.

Julia pode interagir com:

Linguagem Uso comum
Python Bibliotecas de machine learning, automação e ciência de dados.
R Estatística, modelos, relatórios e visualização.
C Bibliotecas de baixo nível e alta performance.
Fortran Computação científica clássica e métodos numéricos.

Isso significa que aprender Julia não te isola do restante do ecossistema científico.


13. Indexação em 1


Em Julia, o primeiro elemento de um vetor é acessado com índice 1.

Veja:

notas = [7.5, 8.0, 6.5, 9.0]

println(notas[1])
println(notas[2])

Saída esperada

7.5
8.0

Aqui:

notas[1]

pega o primeiro valor.

E:

notas[2]

pega o segundo valor.

Atenção para quem vem de Python, JavaScript ou C:
Nessas linguagens, geralmente o primeiro elemento é acessado com índice 0. Em Julia, o primeiro elemento é acessado com índice 1.

14. Então, como devemos pensar em Julia?


Depois de ver essas características, podemos resumir Julia assim:

Julia é uma linguagem feita para escrever código científico com clareza, desempenho e expressividade matemática.

Ela é especialmente interessante para quem trabalha ou estuda:

  • estatística;
  • probabilidade;
  • ciência de dados;
  • matemática;
  • simulação;
  • otimização;
  • análise numérica;
  • visualização de dados;
  • programação científica.

Agora que entendemos o “espírito” da linguagem, podemos começar de fato com os primeiros comandos.


15. Primeiro comando em Julia


O primeiro comando clássico em programação é imprimir uma mensagem na tela.

Em Julia, usamos a função println.

println("Olá, Julia!")

Saída esperada

Olá, Julia!

A função println() imprime uma informação na tela e pula para a próxima linha.

Vamos dividir:

Parte Significado
println Função usada para mostrar algo na tela.
() Parênteses usados para passar informações para a função.
"Olá, Julia!" Texto que será mostrado na tela.

Referências

As explicações deste post foram organizadas didaticamente a partir da documentação oficial e dos materiais oficiais da linguagem Julia.

Referência Onde consultar
Site oficial da linguagem Julia julialang.org
Documentação oficial — Tipos em Julia docs.julialang.org — Types
Documentação oficial — Métodos e múltiplo despacho docs.julialang.org — Methods
Documentação oficial — Dicas de performance docs.julialang.org — Performance Tips
Documentação oficial — Visão geral da documentação docs.julialang.org

Compartilhe este artigo

Escrito em 21/05/2026

Comentários

MorrisonKühlsen

Estatística descomplicada.

Artigos, fórmulas e tabelas
para estudantes e
profissionais.

morrisonkuhlsen.com