Linguagem de programação Julia

Julia é uma linguagem de programação de alto nível, dinâmica e de elevado desempenho, lançada em 2012 como solução multi-plataforma e de código aberto para computação científica. Apresenta ótimas características para a construção de modelos matemáticos e de técnicas de simulação numérica, permitindo analisar e resolver problemas científicos e de engenharia, através do computador.

Pluto.jl

O Pluto.jl é uma biblioteca Julia que proporciona um ambiente de desenvolvimento integrado para a criação de documentos computacionais interativos (notebooks). Utilizando um navegador web (recomendado: Mozilla Firefox ou Google Chrome), o Pluto.jl permite combinar código Julia, resultados computacionais, texto explicativo, expressões matemáticas, gráficos, imagens, etc., de forma interligada. Esta abordagem facilita o processo de ensino-aprendizagem, oferecendo uma experiência interativa ao utilizador.

Notebooks reativos e reproduzíveis

Os notebooks Pluto são reativos, pois a atualização de uma parte do código reexecuta automaticamente todas as partes afetadas por essa alteração. Ou seja, o Pluto reconhece as dependências entre as células, nas parcelas de código Julia. Por conseguinte, sempre que uma célula é alterada, todas as células dependentes são automaticamente atualizadas (como numa folha de cálculo: MS Excel, Google Sheets, …). Assim, os resultados são recalculados em tempo real, permitindo ao utilizador a exploração dinâmica dos conceitos de forma interativa.

Os notebooks Pluto são reproduzíveis, pois configuram automaticamente as dependências necessárias. O Pluto.jl regista as bibliotecas usadas no notebook e configura o ambiente de execução, assegurando a qualquer utilizador as mesmas condições computacionais. Esta funcionalidade elimina o problema comum de “funciona no meu computador”, permitindo uma colaboração mais eficiente e resultados consistentes entre diferentes máquinas.

Notebooks de Máquinas Elétricas II

A escolha do Pluto.jl como ambiente de programação reativo para Julia, para a elaboração de “Notebooks Reativos de Apoio a Máquinas Elétricas II”, possibilita a implementação de boas práticas de Ciência Aberta. O Julia com o Pluto.jl permitem disponibilizar recursos educacionais abertos, através da realização de materiais de ensino-aprendizagem. Também no âmbito da investigação e desenvolvimento, estas ferramentas permitem aplicar os princípios FAIR:

  • Findable
  • Accessible
  • Interoperable
  • Reusable

Assim, os notebooks reativos com Julia/Pluto podem fomentar a transparência, reprodutibilidade, reutilização e inovação em ciência/engenharia.

Time to first plot

Julia é uma linguagem compilada just-in-time (JIT). Isso significa que o compilador irá gerar código binário conforme necessário. Assim, quando abrir/executar o notebook pela primeira vez, verificará que tem de aguardar algum tempo pela compilação do código Julia, dependendo da complexidade do mesmo e da capacidade de processamento do seu computador. Por exemplo, a biblioteca Plots.jl para realização de gráficos tem uma dimensão considerável e exige tempo de compilação. Esta latência na compilação de um programa Julia é conhecida por “time to first plot”, que teve melhorias significativas nas versões 1.6, 1.9 e 1.10 do Julia. Após a 1ª execução, apenas as alterações que realize (no código, nos dados, por interação) serão compiladas, pelo que verificará, a partir daí o elevado desempenho da linguagem Julia.

Assim, como sugestão, após abrir um dos notebooks de Máquinas Elétricas II no seu Julia/Pluto, pode fazer uma primeira leitura desse notebook na versão estática do mesmo, disponibilizada neste website, até a 1ª compilação/execução terminar, para então depois poder utilizá-lo.

Informação complementar

Sobre notebooks Pluto

Sobre a linguagem de programação Julia