8 razões pelas quais os desenvolvedores amam Go e 8 razões pelas quais o odeiam

Em 2007, vários programadores pesquisaram no Google diversas opções para criação de software, mas não conseguiram encontrar nada que gostassem. Eles tiveram que gerenciar milhões de linhas de código que armazenavam e transmitiam dados constantemente para a World Wide Web, que tinha que lidar com milhões de conexões em redes ao redor do mundo. O caminho dos dados estava repleto de problemas de contenção e simultaneidade.

As linguagens de programação existentes não eram de muita utilidade. As linguagens existentes foram criadas para gerenciar jogos, gerenciamento de desktop ou outras tarefas comuns que existiam antes do advento dos navegadores da web. Os programadores do Google ficaram insatisfeitos com a falta de fluência da linguagem e começaram a pensar em uma maneira melhor. Existe uma maneira de lidar com operações de E/S em algumas linhas de código e ao mesmo tempo atender a todos os requisitos de segurança exigidos pelo Google?

ⓒ Banco de imagens Getty

A resposta a esta pergunta foi “não”. Então criamos Golang, uma linguagem simples superficialmente semelhante a C ou Java. A primeira versão pública foi lançada em 2009, e a primeira versão 1.0 foi lançada em 2012. O Google continua investindo na linguagem Go. No momento em que este artigo foi escrito, a versão estável mais recente era 1.22.5.

Dentro do Google, a linguagem Go alimenta grande parte da infraestrutura. Muitos programadores fora do Google também confiaram no Go. Go foi recentemente listado entre os 10 principais idiomas no Índice Tiobe e atualmente está classificado em 8º lugar.

O sucesso surpreendente foi recebido com muitos elogios, mas também com duras críticas. Em muitos casos, críticas e elogios são feitos ao mesmo tempo pelo mesmo trabalho. Go apresenta recursos que alguns desenvolvedores gostam e outros não.

Vá com calma para aprender

A linguagem Go não possui muitos recursos complexos ou peculiaridades. Os designers do Go criaram intencionalmente uma linguagem que é rápida de aprender. Em vez de adicionar vários recursos adicionais, o Google certificou-se de ter apenas os recursos mínimos necessários para desempenhar suas funções. Isso não significa aceitar todas as boas ideias, mas sim focar na visão ideal que o programador necessita.

Por que você o ama? : Quanto mais simples a linguagem, mais fácil será para novos programadores e membros da equipe aprenderem. Como existem apenas algumas funções ou estruturas a serem dominadas, um programador experiente pode aprender algumas em um dia. Também é mais fácil contratar pessoal para o projeto porque você pode ensinar rapidamente novos truques do Go, mesmo se estiver familiarizado com os métodos existentes. Além disso, o código é fácil de ler porque não há estruturas desconhecidas ou desconhecidas aparecendo em locais estranhos.

Por que eu não gosto disso? : A simplicidade não é necessariamente ruim, mas o problema é a parte que falta. Uma bruxa escolheria um livro de feitiços em miniatura? O quarterback escolherá um manual que inclua algumas jogadas? Alguns programadores acham que programar com Go é como programar com uma mão amarrada nas costas. Todos os bons recursos que outros designers de linguagem trouxeram ao mundo estão faltando no Go. É um preço alto a pagar pela simplicidade.

READ  SIEK lança campanha da semana de presentes para comemorar o mês da família... "Do reembolso aos descontos"

Vá, não ceda à popularidade.

Os desenvolvedores originais do Go queriam criar uma linguagem pequena e, para isso, removeram muitos recursos comuns encontrados em outras linguagens. Go é uma linguagem simplificada. Ele faz o que deveria fazer, mas não possui recursos adicionais.

Por que você o ama? : Muitos desenvolvedores apreciam muito a simplicidade do Go. Não é necessário que você adquira ou mantenha conhecimento especializado em dezenas de empregos para se qualificar. Ao ler o código, você nunca descobrirá uma estrutura que não tenha visto antes.

Por que eu não gosto disso? : todo mundo tem seus recursos e truques favoritos, mas há uma boa chance de você não conseguir encontrá-los no Go. Os desenvolvedores costumam reclamar que as coisas que podem fazer em Go podem ser feitas em uma linha em COBOL, Java ou em sua linguagem preferida.

Sintaxe baseada em C

As pessoas que criaram o Go estão profundamente enraizadas no Unix. A sintaxe do Go é muito familiar para quem já usou C ou uma linguagem baseada em C, como Java ou C#. Eles estão familiarizados com os colchetes Go e as propriedades de tipo. Cortamos algumas arestas do C tradicional e simplificamos alguns detalhes para torná-lo mais moderno, mas ele continua a tradição que começou com C.

Por que você o ama? : Os programadores que cresceram com o estilo C entendem intuitivamente a maior parte da linguagem Go. Você pode aprender a sintaxe muito rapidamente e passar algum tempo aprendendo como Go limpa partes que eram inadequadas em C ou Java. Existe alguma razão para não gostar dele?

Por que eu não gosto disso? : Em muitos aspectos, Python foi projetado para ter propriedades que contradizem C. Não há pontuação para separar blocos de código e os tipos são intencionalmente dinâmicos. Qualquer pessoa que goste do estilo Python encontrará muitas coisas que não gosta no Go. Dessa perspectiva, programar com Go parece um retrocesso.

Existem (também) muitas regras em Ko.

Desde o início, os criadores do Go queriam definir não apenas a sintaxe, mas também o estilo e os padrões de uso da linguagem. Por exemplo, para evitar controvérsias sobre o recuo no código Go, criamos uma biblioteca de formatação padrão e uma lista selecionada de termos para incentivar os programadores a usarem os melhores termos. Também proibiu explicitamente alguns costumes que seriam considerados inaceitáveis ​​em outras línguas, como variáveis ​​não utilizadas e dependências circulares. O processo de construção do Go está programado para parar quando encontrar esses elementos na base de código.

Por que você o ama? : As fortes convenções do Go garantem que o código seja extremamente legível. Além disso, como há menos opções ou razões para moldar o estilo de cada indivíduo, há menos casos de discussões de equipe sobre estilo.

READ  Análise do Arc Browser para Windows | Substitua completamente a experiência tradicional de guias

Por que eu não gosto disso? : Todas essas regras e regulamentos extras parecem algemas. Por que variáveis ​​não utilizadas são um problema? Se o compilador detectá-lo, ele irá removê-lo sem incomodar você. É ruim para os programadores terem um pouco de liberdade?

Tratamento adicional de erros intencionais

Muita programação moderna envolve a criação de caminhos adicionais para o código seguir quando ocorre um erro. O código funciona normalmente até que algo dê errado. Se ocorrer um erro, ele deverá ser restaurado, o que pode causar uma breve pausa ou paralisação total da execução. Para construir um sistema automatizado, é necessária uma autoverificação para determinar se ele está funcionando normalmente ou falhando.

Go adota uma abordagem inovadora e incentiva os programadores a escrever dois caminhos para a mesma função. O código Good Go define a abordagem geral e o que fazer quando ocorrem erros. Os programadores Go costumavam dizer: “Um erro é um valor normal.” Porque eles fazem parte do mesmo código. Go também possui um sistema separado de digitação de erros, que permite aos programadores criar tipos mais específicos de erros e então decidir como lidar com eles.

Por que você o ama? : O método Go reconhece a presença de erros e leva o programador a desenvolver um plano para lidar com os erros. Isso permite que os programadores planejem com antecedência e criem flexibilidade para criar softwares melhores.

Por que eu não gosto disso? : O tratamento desnecessário de erros torna as funções Go mais complexas e difíceis de entender. Freqüentemente, é necessário que todas as funções da cadeia profunda contenham código semelhante que execute aproximadamente a mesma coisa para os mesmos erros. Outras linguagens, como Java e Python, incentivam os programadores a “lançar” erros em determinados blocos mais acima na cadeia, onde irão “capturar” os erros. Como resultado, o código fica mais limpo.

Biblioteca padrão

A sintaxe Go não é a única coisa projetada para ser um padrão simples, mas poderoso, que mantém as equipes unidas. A biblioteca padrão inclui suporte para muitas tarefas básicas comuns na programação de microsserviços baseados na Web. As rotinas de E/S lidam com tudo, desde o processamento de pacotes de rede de baixo nível até tarefas mais complexas, como manipulação de HTTPS ou decodificação de dados JSON. Todo o servidor web pode ser configurado com apenas algumas linhas de código. Isso ocorre porque todos eles estão listados na seção “net/http” da biblioteca.

Por que você o ama? : quando as bibliotecas nativas cobrem muitos recursos padrão, a maior parte do código se torna mais legível porque ninguém precisa escrever sua própria versão do código ou discutir sobre qual pacote ou biblioteca de terceiros é melhor.

Por que eu não gosto disso? : É difícil reclamar de um monte de códigos úteis como esse, mas pessoas altamente sensíveis apontam que a concorrência é um bom indicador de demanda e inovação. O fato de algumas linguagens suportarem vários pacotes que realizam a mesma tarefa demonstra profundo interesse e rica cultura.

READ  As atenções estão voltadas para o Pavilhão CFK, único local de exibição de jogos na 2ª Edição do Fotógrafo em Fez.

Tamanho do arquivo executável

Um dos objetivos da equipe Go era tornar os programas Go mais fáceis de distribuir, e eles alcançaram esse objetivo empacotando tudo em um único arquivo executável. Todas as rotinas da biblioteca Go estão incluídas na edição padrão, para que você possa executar tudo imediatamente.

Com o tempo, os desenvolvedores que não gostavam de arquivos executáveis ​​com tamanhos de dezenas a centenas de megabytes encontraram maneiras de remover partes desnecessárias. É um pouco mais trabalhoso, pois você precisará definir as tags apropriadas e incluir etapas adicionais no processo de criação, mas ainda é possível.

Por que você o ama? : O espaço em disco é barato. Se você tiver várias versões de uma biblioteca instaladas, distribuir código para vários locais desconhecidos pode ser complicado. Os desenvolvedores Go economizam muito tempo criando um único arquivo executável.

Por que eu não gosto disso? : Quantas cópias da biblioteca Go estão no disco? Se houver 100 programas, significa que existem 100 cópias da biblioteca. Em algum momento, a eficiência se torna um problema. É claro que o espaço em disco está mais barato do que nunca, mas a largura de banda da memória e o cache ainda são problemas importantes com a velocidade de execução.

Google, nosso forte apoiador

Gorang foi desenvolvido pelo Google, e o Google continua sendo um dos principais patrocinadores do Go, fornecendo a maioria dos compiladores e conjunto de ferramentas. Além do Google, existe também o GopherJS, um compilador que converte Go para JavaScript. No entanto, a maior parte do trabalho de desenvolvimento do Go é feito internamente no Google.

Por que você o ama? : No trabalho moderno, escrever código para servidores e clientes ocupa uma grande parte. Esta também é uma grande parte da carga de trabalho do Google. Em outras palavras, se Go é bom para o Google, também é bom para outras pessoas que trabalham da mesma forma. Se os engenheiros do Google criarem algo de que gostem, certamente atrairá outras pessoas trabalhando em projetos semelhantes.

Por que eu não gosto disso? : Não é que as pessoas odeiem o Google. Os programadores não confiam na autoridade central. Questões como dependência de fornecedor e perda de controle são problemas sérios para qualquer pessoa que coordene uma pilha de tecnologia. Apesar das políticas brandas do Google, os programadores ainda desconfiam do Google, especialmente porque têm outras linguagens para escolher e que possuem grandes comunidades de código aberto.
editor@itworld.co.kr

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *