É bem provável que você não conheça Julia. Essa é uma linguagem de alto nível criada em 2009 para alta performance em análise de números, estatísticas e ciência da computação. Está crescendo em aplicações de Big Data. Entretanto, ela está prestes a ganhar um impulso significativo: a Mozilla está querendo levar o poder de Julia para dentro dos navegadores.
A meta de seus engenheiros é transformar essa ferramenta de ciência de dados em um recurso do Firefox através de um interpretador WebAssembly. O resultado será um plugin poderoso que poderá abrir portas para interações ainda sequer sonhadas. Em outras palavras, há um grande futuro para Julia e essa foi uma das linguagens de maior ascensão em 2018, de acordo com diferentes indicadores de popularidade.
Embora esse artigo não tenha a pretensão de ensinar a você como programar em Julia, nosso objetivo é apontar a direção certa para mergulhar de cabeça na linguagem.
1) Introdução a Julia
Até o momento, o Código Fonte não tinha uma categoria dedicada a Julia, dada o alcance de nicho da linguagem de programação. Entretanto, não é difícil encontrar um ponto de partida para quem está conhecendo agora seu imenso potencial.
O ponto inicial mais óbvio para começar a entender o Julia é a própria documentação oficial da linguagem administrada pela comunidade de desenvolvedores responsável por manter o padrão. Além de oferecer informação constantemente atualizado de acordo com a versão vigente da linguagem, o site oficial também oferece a última versão para download, vídeos sobre o tema, ferramentas e funciona como um ponto central de atividades para toda a comunidade de programadores. Infelizmente, esse conteúdo não se encontra disponível em Português.
É possível encontrar uma versão em nosso idioma dessa documentação oficial, mas está bastante defasada de acordo com a última versão. Ainda assim, pode funcionar como uma porta de entrada para iniciantes. A nossa recomendação é sempre ter um bom domínio do Inglês, uma recomendação que vale para aprender qualquer linguagem de programação.
Em Português, a melhor referência introdutória é Julia para Pythonistas, uma palestra ministrada em 2018 que apresenta a linguagem para quem já tem algum conhecimento de Python.
2) Cursos Online Econômicos
Quer você seja um autodidata ou não, um bom curso pode ajudar a iniciar sua caminhada em uma nova caminhada, afiar os conhecimentos que você já tem ou mesmo ensinar truques e meandros da linguagem que você não havia percebido. Em muitos casos, nem precisa gastar muito dinheiro:
- Introduction to Julia – Em Inglês. Carga horária: 20 horas. Custo: gratuito.
- Julia Scientific Programming – Em Inglês. Carga horária: 23 horas. Custo: gratuito.
- Udemy: Getting Started With Julia – Em Inglês. Carga horária: 10 horas. Custo: R$26 (valor promocional por tempo limitado).
- Udemy: Coding for non-programmers in Julia – Em Inglês. Carga horária: 10 horas. Custo: R$26 (valor promocional por tempo limitado).
- Linguagem Julia – Em Português. Carga horária: 7 horas. Custo: gratuito.
- Getting Started With Julia – Em Inglês. Carga horária: 10 horas. Custo: US$10.
3) Ferramentas
A ferramenta certa para a tarefa certa é fundamental para se aventurar em uma nova linguagem de programação. Felizmente, já existe todo um ecossistema de programas focados para desenvolvedores de Julia:
- Juno: IDE baseado em Atom, criado especificamente para a linguagem Julia. Gratuito.
- Julia Studio: IDE multiplataforma, criado especificamente para a linguagem. Gratuito.
- JuliaBox: IDE online que roda direto no navegador. Pago, com funcionalidades gratuitas.
- Weave: ferramenta de produção de relatórios de dados. Gratuito.
- Kakoune: editor de código baseado em Vi altamente customizável. Gratuito.
- Julia DT: Development Toolkit para Eclipse. Gratuito.
- Julia para Visual Studio Code: extensão que oferece suporte à linguagem. Gratuito.
- Julia para VIM: extensão que oferece suporte à linguagem no editor. Gratuito.
- Julia para IntelliJ IDEA: plugin que oferece suporte à linguagem. Gratuito.
- Julia para Emacs: extensão que oferece suporte à linguagem no editor. Gratuito.
- Julia para Sublime Text: plugin que oferece suporte à sintaxe, com destaques, no editor. Gratuito.
- IJulia: kernel de Julia para Jupyter. Gratuito.
- Revise.jl: ferramenta que atualiza definições de funções automaticamente em uma sessão em execução. Gratuito.
- Debugger.jl: a ferramenta oficial de debug de Julia. Gratuito.
- Rebugger.jl: uma ferramenta de debug a nível de expressão para Julia com interface de linha de comando (REPL). Gratuito.
- Infiltrator.jl: ferramenta que permite estabelecer um breakpoint em contexto local, inspecionar variáveis locais e a pilha de chamadas, entre outras utilidades. Gratuito.
4) Livros Recomendados
Ninguém tem um computador na cabeça e um bom livro sobre uma linguagem de programação pode funcionar tanto como uma fonte inicial de aprendizado, como uma constante fonte de referência. Confira nossa lista de recomendações para Julia:
- The Julia Express (Bogumił Kaminski). Em Inglês. Gratuito.
- Think Julia: How to Think Like a Computer Scientist (Allen Downey, Ben Lauwens). Em Inglês. Gratuito.
- Julia Programming for Operations Research (Changhyun Kwon). Em Inglês.
- Aprendendo Julia – Introdução à linguagem de programação Julia com exemplos e códigos (Amaury André). Em Português.
- Dossiê Linguagem Julia (José Wesley Magalhães, Josué Barbosa, Leonardo Alves). Em Português. Gratuito.
- Data Science with Julia (Paul D. McNicholas, Peter Tait). Em Inglês.
- Julia High Performance (Avik Sengupta). Em Inglês.
- Mastering Julia (Malcolm Sherrington). Em Inglês.
- Getting started with Julia (Ivo Balbaert). Em Inglês.
- Julia for Data Science (Anshul Joshi). Em Inglês.
- Julia Cookbook (Jalem Raj Rohit). Em Inglês.
- Learning Julia (Anshul Joshi, Rahul Lakhanpal). Em Inglês.
- Hands-On Computer Vision with Julia (Dmitrijs Cudihins). Em Inglês.
- First Semester in Numerical Analysis with Julia (Giray Ökten). Em Inglês. Gratuito.
5) Comunidades de Desenvolvedores
Interagir com a comunidade de desenvolvedores que já tem experiência na linguagem ou com outros iniciantes com as mesmas dúvidas e descobertas também é um caminho fundamental para aprender sobre Julia, além de uma ótima oportunidade de estabelecer laços profissionais e pessoais duradouros. Confira algumas das melhores comunidades relacionadas a Julia na web:
- Dúvidas de Julia no Stackoverflow
- The Julia Slack – frequentado por desenvolvedores da base da linguagem
- The JuliaLang Gitter
- The Julia Discourse – frequentado por desenvolvedores da base da linguagem
- The JuliaLang Github Repository
- JuliaBloggers – agregador de blogs sobre Julia
- r/Julia no Reddit
- #julia channel no IRC
- Grupo de usuários no Rio de Janeiro
- Grupo de usuários em São Paulo