Linguagem Ciência de Dados: qual a melhor do mercado?
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:
Leia nosso artigo sobre 5 ferramentas de Big Data para você conhecer
1 1. Linguagem para ciência de dados: Python
1.1 Os pacotes de Python e suas utilidades:
2 2. Linguagem R
2.1 Os pacotes de R e suas utilidades:
3 3. Scala
3.1 As bibliotecas de Scala e seus pacotes mais famosos:
4 4. SAS
5 5. Linguagem para Ciência de Dados: Java
6 6. Matlab
8 Afinal, qual a melhor linguagem para ciência de dados?
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:
pandas (manipulação de dados)
sciPy (computação científica)
Matplotlib (apresentação gráfica)
Aqui estão os primeiros passos para começar a desenvolver em Python.
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)
*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 é 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
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.
Fundamentos de Python na análise de dados
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.
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?
A 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.
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).
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 na 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!