Quando de trata de linguagens de programação para Ciência de Dados, duas linguagens surgem imediatamente na frente de batalha: R e Python. Mas a Ciência de Dados vem crescendo de forma exponencial e já está claro, que uma única solução não irá atender a todos os requisitos dos projetos de dados. Novas linguagens e soluções têm surgido como boas opções. Vivemos um momento incrível na área de tecnologia, que vem buscando novas formas de analisarmos o imenso volume de dados que aumenta a cada dia.
Criada por Jeff Bezanson, Stefan Karpinski, Viral B. Shah e Alan Edelman em 2012 e, portanto, nascida na era do Big Data, a linguagem de programação Julia vem ganhando popularidade entre os Cientistas de Dados. Julia é uma linguagem de programação de alto nível, dinâmica e de alto desempenho para computação científica, com uma sintaxe fácil de escrever, similar ao Python. Ela fornece um compilador sofisticado, execução paralela distribuída, precisão numérica e uma extensa biblioteca de funções matemáticas e estatísticas.
Apesar de bastante nova e existir há poucos anos, Julia está rapidamente ganhando popularidade entre os Cientistas de Dados devido sua flexibilidade e facilidade de uso. Embora tenha sido projetada como uma linguagem genérica, Julia é capaz de lidar com qualquer tipo de aplicação e foi pensada para ser particularmente eficiente em utilizar o poder de sistemas distribuídos, como Hadoop, frequentemente utilizados em Big Data.
Julia foi inspirada em diversas linguagens de programação como: C, LISP, Fortran, Python, Perl, Lua, R, Ruby e Matlab. Daí vem o fato da linguagem ter sido pensada para ser genérica. Abaixo algumas das principais características da linguagem, relacionadas a Data Science:
- É uma linguagem de bom desempenho, que se aproxima de linguagens estaticamente compiladas como C
- Possui um gerenciador de pacotes para tornar a vida mais fácil
- Permite fazer a chamada direta de funções escritas em C
- Permite fazer a chamada de funções escritas em Python, usando o pacote PyCall
- Pacotes adicionais Julia estão lentamente se aproximando das funcionalidades do SciPy, incluindo Stats.jl, Distributions.jl, Optim.jl e JuMP.jl.
- DataFrames.jl fornece ferramentas para trabalhar com dados tabulares que será familiar para os usuários de R ou pandas.
- Foi projetada para paralelismo e computação distribuída
- Tipos definidos pelo usuário são tão rápidos e compactos como tipos built-ins
- Permite geração automática e eficiente de código, especializado para diferentes tipos de argumentos
- Gadfly.jl fornece um pacote de visualização similar ao ggplot2, enquanto PyPlot.jl oferece uma interface completa para matplotlib.
Graphs.jl fornece algumas das funcionalidades de pacotes como IGRAPH ou NetworkX. - Licenciamento MIT: livre e open source
Julia também possui uma extensa lista de bibliotecas e pacotes prontos para uso, totalmente voltadas para análises estatísticas e Ciência de Dados. No site https://github.com/JuliaStats é possível encontrar muitos destes pacotes.
No site da linguagem, há um benchmark interessante, que demonstra que Julia é uma linguagem bem rápida. Acesse o Julia Benchmark aqui: http://julialang.org/benchmarks
A principal IDE da linguagem é o Juno. Mas é possível testar a linguagem 100% online via browser, usando o Julia Box. Há ainda o iJulia (similar ao iPython).
Julia tem um crescendo rapidamente, mas ainda possui um ecossistema de pacotes, muito jovem. Se você quer ser produtivo, Julia precisa fazer parte de um ambiente de várias linguagens como R ou Python. Quanto de seu trabalho pode ser feito usando apenas Julia, depende de suas necessidades específicas. Os profissionais que pretendem construir novos modelos do zero utilizando algoritmos de otimização, vão achar que Julia já está quase completa de recursos. As pessoas que dependem de grande coleção de pacotes estatísticos clássicos (como a linguagem R possui) vão achar que Julia ainda precisa evoluir e adquirir mais funcionalidades.
Por fim, mais e mais da funcionalidades de estatística em R serão portadas para Julia. Em breve, podemos esperar que a maioria das tarefas de ciência de dados poderão ser feitas em Julia com a mesma facilidade com que agora pode ser feito em Python ou R.
David Matos
Aproveito para deixar aqui uma simples e singela homenagem à minha sobrinha, recém nascida. Uma princesinha. O nome dela? Julia! 🙂
Links úteis:
Site Oficial: http://julialang.org/
IDE Juno: http://junolab.org/
iJulia: https://github.com/JuliaLang/IJulia.jl
JuliaBox: https://juliabox.org/
1 thought on “Julia – A Princesinha do Cientista de Dados”