Zephyrnet Logo

Ciência de dados e linguagem de programação Go – KDnuggets

Data:

Conteúdo patrocinado

Comentários de Tom Miller, Diretor do Corpo Docente da Northwestern University MSDS .

Anos atrás, como estudante de estatística aplicada na Universidade de Minnesota, aprendi uma lição sobre programação na academia. No início do curso, o professor disse:

“Eu não me importo com o idioma que você usa nas tarefas, contanto que você faça seu próprio trabalho.”

Eu tinha experiência com Fortran, mas estava aprendendo Pascal sozinho, tentando adotar um estilo de programação estruturada.

Seguindo a palavra do professor, programei a primeira tarefa em Pascal enquanto meus colegas usavam Fortran. A primeira tarefa está vencida. Levo meu trabalho (uma lista de programas) até a frente da sala e entrego-o ao professor. Ele olha interrogativamente e pergunta: “O que é isso?”

Eu explico: “É Pascal. Você nos disse que poderíamos programar em qualquer idioma que quiséssemos, desde que fizéssemos nosso próprio trabalho.”

Ao que o professor diz: “Pascal. Eu não leio Pascal. Eu só leio Fortran.”

Lição aprendida: os acadêmicos não estão especialmente abertos a novas linguagens de programação.

FORTRAN

Fortran foi desenvolvido por John Backus na IBM e lançado em 1957. Ao ouvir seu nome, pense em “tradução de fórmulas”. Fortran é adequado para cálculos numéricos, conforme necessário para aplicações científicas e de engenharia. Fortran ressurgiu recentemente, talvez devido às demandas computacionais de grandes conjuntos de dados e supercomputação.

PASCAL

Projetado por Nicholas Wirth, um cientista da computação suíço, e lançado em 1970, Pascal é um derivado do ALGOL. Pascal estava alinhado com um movimento em direção à programação estruturada em muitas universidades nas décadas de 1970 e 80. Variações do Pascal têm sido usadas para programação de sistemas na Apple e na Microsoft.

 
Os estudantes de ciência de dados na maioria das universidades hoje teriam uma experiência semelhante se enviassem trabalhos em Go, Rust ou qualquer outra linguagem contemporânea em vez de Python ou R.

Com aplicativos de aprendizado de máquina e IA, o Python domina o dia. Os cientistas de dados podem se sentir satisfeitos navegando em um barco Python com coletes salva-vidas, como Numpy, Pandas, Scikit-learn e TensorFlow pelos seus lados.

Mas cuidado. Os oceanos de dados de hoje estão agitados. Os tubarões estão se aproximando.

Lembre-se das palavras do Chefe Brody para Quint no filme Tubarão: “Você vai precisar de um barco maior.” Eu sugeriria que um barco maior e mais rápido fosse construído com Go.

VAI (GOLANG)

Go foi desenvolvido por três cientistas da computação do Google: Robert Griesemer, Rob Pike e Ken Thompson. Ele mantém as vantagens de desempenho do C, embora seja mais fácil e seguro de trabalhar do que o C. Go foi lançado em 2009 e tem sido a principal linguagem de programação de sistemas do Google. Para sistemas de missão crítica em muitas organizações, Go está substituindo C/C++, C#, Java e Python. Às vezes, Go é chamado de “Golang” para diferenciá-lo do jogo de tabuleiro Go e para fornecer um termo mais confiável nos mecanismos de pesquisa.

Carreiras em ciência de dados: o porquê de ir

Em uma apresentação intitulada “O porquê de ir”, Carmen Andoh traçou o desenvolvimento de linguagens de computador de 1980 a 2017. Ela apresentou um argumento convincente para usar Go em grandes projetos de programação. Seu argumento parece verdadeiro hoje.

  • Go é eficiente em termos de máquina. Supera as linguagens que são interpretadas, bem como as linguagens que dependem de máquinas virtuais.
  • Python entrou no cenário da informática há mais de trinta anos, antes da prevalência dos processadores multi-core. Python é uma linguagem interpretada de thread único, pouco adequada para sistemas que exigem processamento simultâneo.
  • Os cientistas de dados podem escrever em Python, mas para tarefas de computação intensiva é C ou C++ que faz o trabalho. Python é apenas a “cola” que mantém unidas as peças do barco do aprendizado de máquina.
  • Não demora muito para encontrar exemplos de benchmarks que demonstrem as vantagens do Go sobre Python e R, as linguagens líderes em ciência de dados.

Às vezes descrito como “C para o século 21”, Go é uma linguagem fortemente tipada que compila diretamente em código de máquina. Ele compila muito mais rápido que C e executa quase tão rápido quanto C.

C, C++ E C#

C foi desenvolvido por Dennis Ritchie no Bell Labs e introduzido em 1972. Por fornecer acesso de baixo nível à memória e mapear facilmente instruções de máquina, C tem sido uma linguagem de programação de sistemas popular por muitos anos. C tem vantagens de desempenho sobre a maioria das outras linguagens de programação. C++ e C# fornecem extensões orientadas a objetos para C, mantendo a estrutura e as vantagens de desempenho do C.

O processamento simultâneo (nunca é uma tarefa fácil) é um recurso intrínseco do Go

Go oferece um rico conjunto de ferramentas para aproveitar as vantagens dos computadores digitais multicore atuais. A ciência de dados precisa de linguagens e sistemas que possam lidar com as demandas do mundo atual, orientado e com uso intensivo de dados. A ciência de dados precisa do Go.

Go é eficiente para programadores. Python é frequentemente considerado fácil de aprender. Mas eu diria que Go é mais fácil de aprender do que Python. Go é simplicidade por design, uma linguagem com apenas vinte e cinco palavras-chave. Go é fácil de ler, usar e manter ao longo do tempo.

Fiquemos felizes porque os líderes da comunidade Go estão relutantes em adicionar novos recursos. Donald Knuth teve a ideia certa. Quando ele chegou à versão 3.14 do TeX, ele declarou que não haveria novas versões da linguagem, nem novos recursos, apenas correções de bugs. E a cada correção de bug, ele pegava emprestado outro dígito de π (pi).

Um mantra dos programadores Go: “Mantenha a simplicidade. Continue funcionando.

Go tem uma estrutura bem definida com utilitários de formatação para garantir um estilo comum entre os programadores, um estilo que às vezes é chamado de “Go idiomático”. Go possui gerenciamento automatizado de memória (coleta de lixo), protegendo os programadores contra vazamentos e erros de memória. Go é mais seguro que C e C++.

Os principais desenvolvedores do Go têm um compromisso com a compatibilidade com versões anteriores, e o sistema de módulos do Go promove a segurança, garantindo que os pacotes certos sejam incorporados em cada compilação em tempo de compilação. Go monitora as versões de software à medida que a pilha de software cresce.

Pense no desenvolvimento de software como um jogo de Jenga. Queremos acessar os blocos na parte inferior da pilha, garantindo ao mesmo tempo que a pilha inteira não entre em colapso. Vá, vamos fazer isso.

Go simplifica a pilha de software. E quanto à pilha de software, à infraestrutura?

Quando o Python (mesmo reforçado por C ou C++) não está à altura da tarefa, os cientistas de dados recorrem a outras linguagens e sistemas. Aqui está uma chamada solução para os problemas de desempenho do Python:

 
Ciência de dados e a linguagem de programação Go

Ciência de dados e a linguagem de programação Go
 

Para implementar soluções de alto desempenho, os cientistas de dados recorrem ao Spark, que é construído em Scala, que depende da Java Virtual Machine. E para fornecer acesso fácil, esses cientistas de dados bem-intencionados adicionam o PySpark à mistura. Esta é a melhor maneira de resolver os problemas de desempenho do Python? Não.

Considere uma pilha de software mais simples. É vá, apenas vá:

 
Ciência de dados e a linguagem de programação Go

Ciência de dados e a linguagem de programação Go
 

Com exemplos de código de conferências GopherCon em 2021 e 2023, Daniel Whitenack mostra como implementar soluções de aprendizado de máquina e inteligência artificial em Go. Podemos usar Go para construir aplicativos web integrados e inteligentes, incluindo aqueles que recorrem à IA generativa e a grandes modelos de linguagem.

Go representa a linguagem de programação de sistemas por excelência para os computadores digitais multicore atuais. Go é a linguagem da nuvem. Go é a linguagem da computação distribuída. Os cientistas de dados que viam o Python como a “linguagem cola” do passado agora podem considerar o Go como a “super cola”.

Go é amplamente utilizado na indústria. As empresas valorizam a segurança, a simplicidade e o desempenho do Go. Eles também reconhecem os pontos fortes do Go como ambiente de programação de sistemas backend. Go é adequado para desenvolver servidores web e de banco de dados, interfaces de programação de aplicativos e microsserviços. Go é adequado para implementar sistemas escalonáveis ​​e de alto desempenho.

Começando com o Google, o berço do Go, muitas empresas confiam no Go para sistemas grandes e de missão crítica. Se Go for bom o suficiente para Google, Netflix, Uber, Dropbox, PayPal, American Express, Capital One, Salesforce, Zillow, e muitos outros, então Go é bom o suficiente para o resto de nós.

Se Go puder fornecer uma plataforma eficaz para a construção Estivador, Kubernetes, Prometeu, grafana, Paquiderme, Terraform, CrowdStrike, etc., barataDB, Tecer, milvus, Aerospike, e uma gama diversificada de sistemas distribuídos e microsserviços nativos da nuvem, o Go pode ser uma plataforma eficaz para a construção de aplicativos de ciência de dados.

Os educadores de ciência da computação e ciência de dados devem aprender com a indústria. Eles deveriam adicionar Go aos seus cursos. É isso que estamos fazendo na Northwestern.

Três idiomas para ciência de dados na Northwestern

Usar Go para ciência de dados não significa que devemos desistir das coisas boas que R e Python fornecem. Podemos ser multilíngues.

Não é difícil imaginar projetos para os quais um cientista de dados possa explorar dados com R, desenvolver modelos com Python e implementar sistemas em Go. Entre as três linguagens para ciência de dados, Go é a mais nova. Go está em tendência ascendente e oferece oportunidades de emprego substanciais.

Programa de ciência de dados da Northwestern aprecia os pontos fortes das três linguagens para ciência de dados em todas as especializações do programa.

  • R, com vários pacotes para análise e modelagem, é bem conceituado pelos estatísticos aplicados. É uma excelente escolha para programação científica e pesquisa aplicada. R é especialmente bom para explorar e visualizar dados. R é o idioma principal na maioria dos cursos de especialização em Análise e Modelagem da Northwestern.
  • Python é atualmente a linguagem de computador mais popular na ciência de dados. É especialmente forte no processamento de linguagem natural e serve como cliente principal para plataformas de aprendizagem profunda. Python fornece um ambiente rico em recursos para o desenvolvimento de modelos, e Python é a linguagem principal na maioria dos cursos de especialização em Inteligência Artificial da Northwestern.
  • Go é uma linguagem de programação de sistemas projetada para os computadores multiprocessadores atuais. É adequado para implementar sistemas escalonáveis ​​e de alto desempenho para ciência de dados, incluindo aplicações web e servidores de banco de dados. Go é a linguagem principal na especialização em Engenharia de Dados da Northwestern, conforme mostrado no Aprendendo a ir para a ciência de dados .

Alunos em Mestrado on-line da Northwestern University em Ciência de Dados O programa desenvolve as habilidades essenciais de análise e liderança necessárias para analisar e interpretar dados para tomar decisões informadas e impactantes em uma ampla variedade de campos. As aulas são ministradas por um corpo docente talentoso de especialistas do setor. Os alunos desenvolvem experiência em suas áreas de interesse selecionando um curso geral de ciência de dados ou uma das cinco especializações: Análise e Modelagem, Gerenciamento de Análise, Inteligência Artificial, Engenharia de Dados e Empreendedorismo Tecnológico. Os alunos aprendem em tempo parcial, em seu próprio ritmo, totalmente online. As inscrições são aceitas trimestralmente.

 
Ciência de dados e a linguagem de programação Go

Ciência de dados e a linguagem de programação Go
 
 

local_img

Inteligência mais recente

local_img