A linguagem de programação Julia

Julia é uma linguagem de programação de alto nível surgida em 2012, que implementa várias ferramentas para uso geral em matemática aplicada. É muito parecida com o Matlab. Em particular, Julia possui várias ferramentas para otimização, tais como:

Dentre as vantagens do Julia sobre o Matlab, destacam-se:

Para saber mais sobre o Julia, consulte o Wikipedia.

Instalando o Julia em sua máquina

Método 1: Loja de aplicativos (versões novas do GNU/Linux Ubuntu)

É possível encontrar o Julia na loja de aplicativos do Ubuntu (Ubuntu Software). As versões recentes do Ubuntu trazem versões atualizadas do Julia. Dentro da loja, procure por “Julia”, escolha a fonte “Snap Store” e certifique-se que a versão selecionada é a estável (atualize a lista de softwares da loja antes). Caso não encontre versões atualizadas, recomenda-se outros métodos. O Julia pode estar dispoinível em lojas de aplicativos de outras distrubuições Linux.

Atualizações do Julia são gerenciadas pelo próprio sistema operacional.

Método 2: Gerenciador Juliaup

Juliaup é um instalador do Julia com gerenciamento de versões. Funciona em Mac, Windows e Linux. Acesse este link para detalhes.

Este método é interessante para usuários do Windows. Em versões recentes do Windows, é encontrado na loja de aplicativos do sistema. Veja este link.

Atualizações do Julia são gerenciadas pelo Juliaup.

Método 3: Pacotes pré-compilados

ATENÇÃO: neste método, não há atualização automática do Julia.

  1. Baixe a última versão estável para seu sistema em https://julialang.org/downloads
  2. Siga as instruções de instalação

Após a instalação, o Julia estará pronto para uso. Você pode executá-lo via terminal:

julia

Para auxiliá-lo na instalação do Julia pré-compilado + pré-requisitos + pacotes utilizados nas disciplinas de otimização, baixe ESTE SCRIPT e siga as instruções contidas nele (testado no Ubuntu 22.04)

Método 4: Compilar do código fonte

É possível compilar o Julia a partir de seu código fonte, disponível em https://github.com/JuliaLang/julia.git.

Julia com ambiente gráfico

Existem plataformas (IDEs) gráficas que se integram ao Julia. Exemplos são o Visual Studio e o Juno.

É possível ainda utilizar seu navegador de internet como saída gráfica através do Jupyter ou JupyterLab.

Uma alternativa interessante é o pacote Pluto. Este pacote abre um ambiente gráfico no navegador de internet com recursos interessantes. Para utilizá-lo, instale o pacote Pluto.jl no seu Julia (veja seção abaixo) e execute using Pluto; Pluto.run() do terminal do Julia.

De qualquer forma, assim como no Matlab/Octave, a principal via de utilização do Julia é a linha de comandos. Portanto é essencial familiarizar-se com seus comandos.

Iniciando o uso do Julia

O Julia “padrão”, sem interface gráfica, é executado pelo terminal de comandos do sistema. Para usuários Windows, recomendo usar um terminal de comandos melhor que o cmd. Por exemplo, Powershell (já presente no Windows 10) ou cmder.

Observação: o Julia compilará códigos na primeira vez em que os comandos forem executados. Nas rodadas seguintes a execução é rápida.

Instalando/atualizando pacotes

As ferramentas de otimização e muitas outras vêm na forma de pacotes. Primeiro você deve instalar os pacotes dentro do Julia:

O Julia gerencia pacotes de maneira similar à distrubuições GNU/Linux como Ubuntu e Mint. Você pode atualizar os pacotes instalados executando

julia: ]up

Usando pacotes instalados

Assim como no Matlab, um pacote Julia precisa ser carregado para uso sempre que o Julia for aberto. Dentro do ambiente Julia, execute

julia> using JuMP

Isso carregará o pacote JuMP na memória e suas funções internas ficarão disponíveis para uso.

Importante: nas versões até 1.5.x, o Julia compilará o pacote na primeira vez em que for carregado. Isso leva um tempo, mas é feito uma única vez. A partir da versão 1.6.x, a compilação é feita no momento da instalação do pacote.

Dicas

Uso do Julia em otimização - primeiros passos

Neste link você encontra dicas e exemplos para os primeiros passos na escrita e resolução de problemas de otimização com o Julia.

Links úteis sobre Julia