Linguagem De Programação Júlia

Há alguns dias escrevi a respeito da ferramenta de testes de performance que criei chamada Stressify.jl. Após a escrita deste artigo muitos vieram me perguntar pelo LinkedIn um entendimento maior sobre o que é a linguagem de programação Julia, assim no texto de hoje trago uma visão breve do funcionamento da linguagem Julia, espero que gostem!

Um pouco de história

A linguagem Julia foi concebida em 2009 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah e Alan Edelman, todos com experiência em ciência da computação e computação científica. Quando conceberam o projeto seu objetivo era que combinasse a facilidade de uso e a flexibilidade de linguagens de alto nível com a performance de linguagens compiladas de baixo nível.

Após muitas mudanças desde o protótipo em cima da linguagem Schema até a mudança para o compilador LLVM apareceu a primeira versão em 2012, trazendo alguns pilares importantes.

  • Performance: Que o código fosse tão rápido quanto o de C ou Fortran.
  • Facilidade de Uso: Com uma sintaxe clara e expressiva, similar a Python ou MATLAB.
  • Dinâmica: Com tipagem dinâmica para facilitar o desenvolvimento rápido.
  • Paralelismo e Distribuição: Suporte nativo para computação paralela e distribuída.

Atualmente se tornou uma linguagem de âmbito geral sendo utilizado tanto para visão matemática até para projetos de desenvolvimento web e também de testes como é o caso do Stressify.jl.

Casos de Uso

Para mostrar um pouco de como é uma linguagem de âmbito geral trago alguns casos de uso.

Astronomia: Com a biblioteca AstroLib.jl, Julia consegue realizar análise de dados astronômicas complexas, modelagem de sistemas planetários e até mesmo simulações de fenômenos cósmicos.

Bioinformática: Julia também é usada em bioinformática para análise de dados genômicos, devido à sua eficiência em processamento de grandes conjuntos de dados e sua flexibilidade em modelagem matemática.

Finanças Quantitativas: No setor financeiro, especialmente em finanças quantitativas, Julia é valorizada por sua velocidade e capacidade de lidar com grandes volumes de dados em tempo real. Pacotes como JuMP são usados para otimização financeira, enquanto MarketData.jl facilita a análise de dados de mercado. Aqui nesta parte detalho que um dos maiores financiadores do projeto que utiliza Julia para modelagem financeira é a gigante BlackRock.

Machine Learning: Julia é particularmente eficaz em machine learning devido à sua capacidade de combinar alta performance com a simplicidade de uma linguagem de alto nível. Bibliotecas como Flux e MLJ permitem a construção e treinamento de modelos de aprendizado de máquina de maneira eficiente.

Instalação e Primeiros Passos

Bom, depois que conhecemos um pouco mais da linguagem de programação Júlia e seus casos de uso nada melhor que conhecer como realizar a instalação da linguagem e posteriormente realizar alguns códigos de âmbito geral para entendimento.

Inicialmente a instalação é muito simples, esta podendo ser instalado em vários sistemas operacionais, desde o Mac até Windows, dependendo do sistema operacional você irá ver a seguir.

Para a instalação no Windows, basta clicar neste link e escolher a opção Windows que já é realizado o download da versão mais recente como executável e posterior basta clicar para instalar e seguir as opções no instalador. Este formato também pode ser realizado para Mac, na qual no link anterior escolha qual a compatibilidade do seu Mac e realize a instalação.q

Para Linux existe duas possibilidades a primeira é executado no terminal o comando curl -fsSL https://install.julialang.org | sh ou utilizando também do link explicado na opção Windows e escolher qual distribuição você utiliza e realizar o download e instalação.

Após a instalação, o ambiente interativo REPL (Read-Eval-Print Loop) pode ser iniciado executando o comando julia no terminal ou clicando no ícone do programa.

COMANDOS BÁSICOS NO REPL

O REPL é o ambiente interativo de Julia, onde você pode digitar comandos e ver os resultados imediatamente. Aqui estão os primeiros comandos para começar:

Hello World

O primeiro programa tradicional em qualquer linguagem é o “Hello World”. Em Julia, isso pode ser feito com:

println(“Hello, World!”)

Operações Aritméticas

Julia suporta operações aritméticas básicas diretamente no REPL:

2 + 3 # Soma
5 - 2 # Subtração
4 * 3 # Multiplicação
10 / 2 # Divisão
2 ^ 3 # Potência

Atribuição de Variáveis

Você pode atribuir valores a variáveis usando o operador =:

x = 10
y = 20
z = x + y
println(z) # Exibe 30

Tipos de Dados

Julia é uma linguagem de tipagem dinâmica, mas você pode verificar o tipo de uma variável usando a função typeof:

x = 10
typeof(x) # Retorna Int64 (ou Int32, dependendo da arquitetura)

Strings

Strings são sequências de caracteres e podem ser manipuladas de várias formas:

s = “Julia”
println(“Olá, $s!”) # Interpolação de strings

Estruturas Condicionais

Estruturas condicionais permitem controlar o fluxo do programa. O comando if é um exemplo básico:

x = 10
if x > 5
println(“x é maior que 5”)
else
println(“x é menor ou igual a 5”)
end

Loops

Loops são usados para repetir operações. O loop for é comum:

for i in 1:5
println(“Iteração $i”)
end

Funções

Funções são blocos de código reutilizáveis. Você pode definir uma função simples assim:

function saudacao(nome)
println(“Olá, $nome!”)
end

saudacao(“Mundo”)

Criando Arrays e acessando Arrays

arr = [1, 2, 3, 4, 5]

println(arr[1]) # Acessa o primeiro elemento (índices começam em 1)

Importando pacotes

Julia possui um ecossistema rico de pacotes. Para usar um pacote, você precisa instalá-lo e importá-lo:

using Pkg
Pkg.add(“Stressify”) # Instala o pacote Example
using Stressify # Importa o pacote

Ajuda e Documentação

O REPL de Julia possui um modo de ajuda integrado. Para acessar a documentação de uma função, use o comando ? seguido do nome da função:

?println

Recursos Adicionais

Agora que conhecemos mais sobre a linguagem e seu escopo inicial como variáveis, laço de repetição, condicional e também entendimento sobre arrays em Julia, vamos entender mais sobre seus recursos adicionais.

Por ser uma linguagem Open Source você irá conhecer uma gama enorme de bibliotecas que você pode utilizar, esse saindo desde visão de astronomia até mesmo em machine Learning. Essas bibliotecas você pode encontrar nos links abaixo:

  • Julia Packages: Um site que cataloga e organiza pacotes de Julia por categoria.
  • Github: Muitos pacotes de Julia são hospedados no GitHub, onde você pode contribuir ou reportar issues, um padrão muito legal da comunidade para todos os pacotes Julia você pode encontrar digitando .jl no final, neste caso é um pacote Julia

Por fim se você tiver oportunidade de assistir online ou presencialmente o JuliaCon, nesta conferência é apresentado as tendências da linguagem e também você pode conhecer os mantenedores de cada projeto, se tiver a oportunidade assista!

Conclusão

Conhecer uma linguagem de programação não é um caminho fácil, conheci a linguagem Julia em 2016 e posso dizer que os avanços que houve nestes últimos tempos e a tendência do mercado para inteligência artificial, pode trazer esta linguagem a um conhecimento maior do mercado, comparável a linguagens muito conhecidas como Python, R, Java e Javascript. Aprender a linguagem Julia é uma excelente escolha para quem busca uma linguagem eficiente e versátil para computação científica e análise de dados.

Caso tenha mais curiosidade sobre a linguagem comente aqui no artigo ou me contacte que iremos conversar muito sobre, bem como posso tirar todas as dúvidas e curiosidades.

Referências