Uma linguagem ambiciosa
Linguagens de programação não são usadas apenas por programadores: matemáticos, estatísticos e pesquisadores também precisam lidar com elas, o que nem sempre é uma tarefa fácil ou rápida. E se houvesse uma linguagem feita especialmente para todos eles?
Jeff Bezanson, um de seus criadores, que dá para evitar as desvantagens de outras linguagens, pois “boa parte delas foi projetada de forma caótica”. É possível repensá-las para criar uma nova, mantendo suas vantagens.
A Julia é bastante adequada para uso técnico, por ser mais rápida que Matlab (feita para álgebra linear), R (para estatística), Python e até mesmo a Go, criada pelo Google para compilar programas mais rapidamente. Este gráfico ajuda a entender isso (menor é melhor):
Também é possível compilar programas mais rápido com a Julia. Geralmente, você precisa converter seu código para Java ou C e então compilá-lo, o que pode resultar em erros. Com a nova linguagem, é possível fazer isso diretamente, usando a ferramenta LLVM– que conta com o apoio de Apple e Google.
Tem mais: caso seu programa tente resolver um problema difícil, é possível dividi-lo em partes e distribuí-lo entre vários computadores – isso se chama paralelismo. Dessa forma, é possível replicar parte do Hadoop, sistema usado pelo Facebook e Yahoo para análise de dados.
Você pode testar a Julia neste link; ela está disponível para Windows, OS X e Ubuntu. A documentação está disponível.
Desenvolvida desde 2009 com apoio do MIT, a Julia lançou sua primeira versão de código aberto em fevereiro de 2012. Na época, Bezanson e a equipe explicaram porque criaram uma nova linguagem:
"Nós somos gananciosos: nós queremos mais.
Queremos uma linguagem que seja open source, com uma licença liberal. Queremos a velocidade do C com o dinamismo do Ruby. Queremos uma linguagem que tenha homoiconicidade, com macros de verdade como o Lisp, mas com notação matemática óbvia e familiar como o Matlab. Queremos algo tão útil para a programação em geral como o Python; tão fácil para estatística como o R; tão natural para o processamento de string como o Perl; e tão poderoso para a álgebra linear como o Matlab… Algo que seja bem simples de aprender, mas que ainda satisfaça os hackers mais sérios. Queremos que ela seja interativa e facilmente compilada."
Mesmo sendo tantas coisas ao mesmo tempo, ela “não é exatamente ideal para criar aplicativos de desktop ou sistemas operacionais”, como Benzason disse. É possível usá-la para programação web, no entanto, mas ela é inicialmente focada em uso técnico.
Por mais que a Julia traga tantas vantagens, ela ainda é mais uma entre diversas opções de programação. É difícil concorrer quando há tantas opções já estabelecidas, mas ela ainda tem chance. Na verdade, ela ajuda a repensar a programação, mostrando que uma só linguagem pode oferecer de tudo. Que vença a melhor.
matéria de Felipe Ventura.
retirado de : http://gizmodo.uol.com.br/julia-linguagem-programacao/
As características de Julia são tipagem opcional, multiple dispatch, e bom desempenho, alcançado utilizando inferência de tipos e compilação just-in-time (JIT), implementada utilizandoLLVM Ela é multi-paradigma, combinando características de programação imperativa, funcional e orientada a objetos. A sintaxe de Julia é similar a do GNU Octave ou METALAB(R) e consequentemente os programadores que que já utilizam estas linguagens devem sentir-se imediatamente confortáveis com Julia. Enquanto MATLAB(R) é um bem eficiente para experimentações e explorações de álgebra linear numérica, possui limitações para tarefas computacionais fora deste campo relativamente pequeno. Julia mantem a facilidade e expressividade do MATLAB(R) para computação numérica de alto nível, mas ultrapassa as limitações comparadas a uma linguagem de programação de propósito geral. Para alcançar isso, Julia é construída com heranças das linguagens de programação matemática, mas também herda muito de outras linguagens dinâmicas populares, incluindo Lisp, Perl, Phyton, Lua e Ruby.
As características mas significativas de Julia em relação a linguagens dinâmicas típicas são:
- O núcleo da linguagem impõe muito pouco; a biblioteca padrão é escrita utilizando a própria linguagem Julia, incluindo operadores primitivos como operações aritméticas de inteiros
- Uma grande variedades de tipos para construir e descrever objetos, que pode também, opcionalmente, ser utilizado para fazer declarações de tipos
- A habilidade de definir o comportamento de funções com base na combinação de vários tipos de argumentos via multiple dispatch
- Geração automática de código eficiente e especializado para diferentes tipos de argumentos
- Bom desempenho, aproximando-se de linguagens estáticas e compiladas como C


Nenhum comentário:
Postar um comentário