Data

25 fev, 2019

Qual a melhor linguagem para ciência de dados?

Publicidade

Você começou a trabalhar com ciência de dados. Já passou pela observação, compreendeu o problema, formulou algumas hipóteses e até já escolheu o framework que irá trabalhar, mas ainda existe uma dúvida no seu workflow: qual linguagem será utilizada para a modelagem de dados?

Qual a melhor linguagem para os seus projetos? Isto é, aquela que vai otimizar tempo de trabalho, oferecer assertividade e familiaridade.

Alguns especialistas de Data Science dizem que o desempenho da linguagem em si não importa, desde que haja desenvoltura no uso. Outros dizem que, para que o trabalho flua bem, é necessário utilizar algumas linguagens-chave.

Qual deles está certo? O assunto ainda está em aberto. O fato é que cada uma das linguagens tem suas vantagens. Umas mais e outras menos, é claro, mas é importante conhecer cada uma para ter um diagnóstico mais seguro.

Vamos lá?

Leitura recomendada:

Python e ciência de dados

Hoje, sem dúvidas, Python é a linguagem mais utilizada em Ciência de Dados no Brasil. Não há como negar isso. O Python surgiu em 1991, no Centro de Matemática e Computação, em Amsterdã, na Holanda.

É uma linguagem acadêmica, bastante utilizada em cursos de matemática e estatística, de tipagem dinâmica, funcional e que tem como base a orientação a objetos. Também é de sintaxe simples, o que justifica bastante sua popularidade.

Além disso, Python conta com uma gigantesca comunidade, o que ajuda no seu aprimoramento constante. Ao usar Python você também consegue desfrutar de ambientes interativos para execução de códigos, os populares REPL.

Ah, não podemos esquecer de mencionar que Python também possui fácil integração com outras linguagens e isso é particularmente positivo se o cientista de dados precisar usar uma máquina virtual Linux e outra Windows, por exemplo.

Uma de suas grandes vantagens são os pacotes exclusivos para ciência de dados, como o scikit-learn para Machine Learning, além de NumPy e Pandas para análise de dados.

Python também é menos complexo de ser aprendido do que outras linguagens.

Os pacotes de Python e suas utilidades:

  • scikit-learn (machine learning)
  • pandas (manipulação de dados)
  • sciPy (computação científica)
  • Matplotlib (apresentação gráfica)

Leitura recomendada:

Linguagem R

Juntamente com Python, a linguagem R é uma das mais utilizadas. A R é uma linguagem também muito apreciada por matemáticos e estatísticos, já que possui suporte para cálculos e análises complexas. E, claro, porque ela também foi criada por estatísticos*.

É uma linguagem para modelagem linear e não-linear, análises temporais, agrupamento e etc. E há algo muito importante: se quiser trabalhar com R, você vai precisar de um computador com memória RAM suficiente. É bom já avisar que máquinas com menos de 64 bits não serão suficientes.

Um dos maiores ‘poréns’ do seu uso é a maior complexidade no aprendizado. Se não há uma experiência prévia com SAS ou Matlab, o uso da linguagem R pode se tornar penoso. Não é uma boa opção se o desejo é de agilidade inicial.

Outro ponto é que, embora possa cair muito bem para projetos estatísticos profundos, o fato de não contar com um suporte contratado deixa muitas empresas inseguras pela possibilidade de surgimento de bugs.

Mas o cenário está mudando: hoje, gigantes como Microsoft e Oracle já desenvolvem soluções de analytics em R, o que acaba trazendo um efeito evangelizador ao mercado.

Falando em vantagens: assim como com Python, também é possível o uso de ambientes interativos para codar (REPL).

Sem esquecer, claro, da sua ampla biblioteca nativa, que possui uma das maiores (se não a maior) quantidade de pacotes do mercado. Catalogados, já são mais de 9 mil.

Os pacotes de R e suas utilidades:

  • stringr: manipulação de strings
  • ggvis e o ggplot2: apresentação gráfica**
  • zoo: time-series
  • caret: machine learning

*R foi criada por Ross Ihaka e Robert Gentleman, em meados dos anos 1990.

**O ggplot2 é gratuito e é considerado uma das melhores (senão a melhor) ferramenta do mercado para visualização e apresentação de dados. Vale a pena conferir!

Scala

Scala é uma linguagem orientada a objetos e funcional, assim como Python. E assim como a linguagem R, Scala possui ampla biblioteca nativa.

Se estiver entre usar Python e R, aí vai uma informação para não descartar Scala: a linguagem é amplamente utilizada por grandes corporações como Twitter e até a comunidade GitHub.

Ah, não podemos esquecer que Scala também é utilizada no queridíssimo Apache Spark, o framework de processamento distribuído favorito dos engenheiros de dados.

E, apesar de possuir grandes similaridades com Java, Scala tende a ser mais simples e sintetizar melhor, isto é, costuma utilizar menos linhas de código. Com Scala você faz mais escrevendo menos.

Das linguagens orientadas a objetos, Scala é considerada uma das mais rápidas. Isso se houver uma comparação com Python, por exemplo.

Pela proximidade com Java, a Scala também possui uma vantagem específica: compatibilidade com a JVM, máquina virtual Java, que ainda é amplamente utilizada.

As bibliotecas de Scala e seus pacotes mais famosos:

  • ScalaNLP: biblioteca de Machine Learning
  • PredictionIO: também para Machine Learning, trata-se de framework open source excelente para Cientistas de Dados.
  • Epic: framework para análise preditiva
  • Factorie: toolkit para modelagem probabilística
  • Saddle: biblioteca de manipulação de dados
  • Axle: biblioteca open source para computação científica
  • Breeze: biblioteca para processamento numérico e álgebra linear
  • Chalk: biblioteca para processamento de linguagem natural
  • MLlib: framework de Machine Learning

SAS

Criada na Universidade da Carolina do Norte, em 1976, a SAS nasceu para suprir a demanda de uma pesquisa agrícola e mais tarde foi difundida para pesquisas em várias indústrias.

Se pudéssemos fazer um paralelo com algumas das linguagens mais populares em Data Science (Python, R e Scala), diríamos que SAS é muito similar a R, só que não é open source. Outra grande diferença é a maior facilidade de aprender, se comparada a R.

Por ser paga – e portanto contar com suporte estabelecido – a SAS oferece mais estabilidade e segurança, mas perde para R na evolução da tecnologia, já que R é open source.

Apesar de Python, atualmente, ser a mais utilizada no Brasil – e isso se dá até por um fenômeno de boost do Data Science e do surgimento de muitos profissionais novos – em alguns locais SAS aparece como favorita, na frente de Python e só perdendo para R.

Java

Apesar de ser bem menos utilizada hoje, a linguagem Java funciona bem para o Hadoop MapReduce, já que o HDFS é escrito em Java. Você conhece o Hadoop, certo? Hadoop é um dos mais famosos frameworks para processamento e armazenamento de Big Data.

Uma boa novidade é o Java 9, lançado em 2017, que trabalha com o JShell, facilitador do uso de REPL. Este recurso não estava disponível para as versões anteriores de Java.

“Mas se temos linguagens mais atualizadas, robustas e funcionais, por que optar por Java?”

Bem, o Java oferece uma grande quantidade de debuggers, recursos de segurança e profilers, ideais para quem não quer se aventurar em linguagens mais robustas, porém em constante evolução, como é o caso de R.

Sim, nós sabemos que a sintaxe ainda é um problema para Java, mas se você já tiver experiência em Java, por que não experimentar?

Linguagem Matlab

A Matlab – assim como a Octave, que não citamos ainda, mas também é uma opção – é de alto desempenho, mas não está disponível em open source, o que pode ser um porém se não estiver atuando em uma empresa.

Os prós da Matlab é que ela é poderosíssima para criação de algoritmos e modelagem estatística.

Julia

Julia é a jovenzinha da lista, divulgada apenas em 2012, mas não fica atrás quando o assunto é desempenho. Julia foi criada especificamente para computação científica, processamento distribuído, machine learning e álgebra linear de grande escala. E o melhor de tudo: Julia é open source!

Foi criada com base no dinamismo de Ruby, na velocidade da Linguagem C e no potencial de Matlab para modelagem estatística e criação de algoritmos. É de simples sintaxe, muito parecida com o modo como opera Python.

O seu maior porém são as bibliotecas, que ainda são escassas, o que é natural, se levarmos em consideração a idade da linguagem.

Apesar de não ser tão conhecida, alguns cientistas de dados a defendem veemente pela agilidade para lidar com aplicações diversas e pelo desempenho com clusters (processamento distribuído).

Afinal, qual a melhor linguagem para ciência de dados?

Tem gente indecisa por aí? O próximo é entender qual o seu momento na área. Se você já tem uma boa bagagem na área e precisa desenvolver projetos complexos, com certeza olhará para R e Matlab com outros olhos.

Agora, se você está no começo do trabalho e precisa de menos complexidade, tanto Python, como Julia podem servir muito bem.

Matlab e SAS são bem úteis se você preza pela segurança e suporte do seu projeto, e isso vale para os casos de grandes corporações. Mas isso não é regra: veja o caso da Microsoft e Oracle, que estão investindo fortemente em R.

No caso dessas corporações, em específico, existe uma grande equipe de desenvolvedores fazendo plantão de testes e monitorando projetos. É isso que você deve pesar.

Agora, se você já tem experiência em Java e quer seguir carreira na área de ciência de dados, Java servirá perfeitamente bem em sua iniciação. E sem falácias de que Java não funciona: as limitações de sintaxe não prejudicarão severamente seus projetos.

A dica de hoje é:

Teste. Teste e investigue todas as possibilidades. Você já tem as ferramentas – agora é mãos à obra!

***

Artigo original publicado na GeekHunter e republicado com a autorização da autora: Qual a melhor linguagem para ciência de dados?