Big Datatecnologia

Qual a melhor linguagem para ciência de dados?

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. Qual o próximo passo? Escolher a linguagem de ciências de dados que irá utilizar

Mas, ainda existe uma dúvida no seu workflow: Qual a melhor linguagem para os seus projetos? Isto é, aquela que vai te reduzir 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, será necessário utilizar algumas linguagens-chave.

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

Atualmente, as linguagens mais recomendadas para ciência de dados, são:

  1. Python
  2. Linguagem R
  3. Scala
  4. SAS
  5. Java
  6. Matlab
  7. Julia
  8. C
  9. C++

1. Linguagem para ciência de dados: Python

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

É uma linguagem para ciência de dados 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. 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 scikit-learn para Machine Learning, além de NumPy e Pandas para análise de dados.

A Python também é menos complexa de ser aprendida do que outras linguagens de ciência de dados. 

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)

2. Linguagem R

Juntamente com Python, R é uma linguagem de ciência de dados muito usada. A R é 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 algo muito importante: se você 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 para ciência de dados 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)

3. Scala

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

Se você 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, a 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, a 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

4. 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 o uso de uma linguagem para ciência de dados mais populares (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.

5. Linguagem para Ciência de Dados: 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? O 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.

6. Matlab

Matlab – assim como a Octave, que não citamos ainda, mas também é uma opção – é uma linguagem alto desempenho, mas não está disponível em open source, o que pode ser um porém se você 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.

7. Julia

Essa linguagem para ciência de dados chamada 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:é open source!

Tem 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 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).