Go

Compartilhar:

Essas perguntas foram mostradas apenas aos entrevistados que escolheram o Go como uma de suas três linguagens de programação principais.

Para que você usa o Go?

Famoso por sua eficiência e velocidade, recursos de concorrência, robusta biblioteca-padrão, simplicidade e legibilidade, o Go é definitivamente uma linguagem pronta para a produção. Não surpreende que a parcela dos desenvolvedores que usam Go no trabalho esteja aumentando. O Go é usado na produção por muitas grandes empresas, incluindo o Google, Dropbox, Microsoft, PayPal, Netflix e outras.

Ao desenvolver em Go, qual é o principal sistema operacional que você usa?

Este dado é, de certa forma, consistente com o que observamos nas pesquisas realizadas pela equipe do Go. Este costuma ser chamado de "linguagem da nuvem" por ser amplamente usado para criar aplicações e ferramentas de DevOps nativas para a nuvem. Isso explica a popularidade do Linux e do macOS entre os desenvolvedores em Go.

Você utiliza múltiplas versões do Go ao mesmo tempo?

Apenas cerca de um terço dos desenvolvedores Go trabalham em um único projeto de cada vez, enquanto o restante deles trabalha em vários projetos ao mesmo tempo.

Qual ou quais versões do Go você usa?

O Go é ótimo em retrocompatibilidade, mas alguns usuários ainda executam várias versões ao mesmo tempo. Um desses casos de uso é quando os desenvolvedores configuram seu CI para ser executado com duas ou três versões diferentes do Go para detectar regressões e outros problemas.

Qual motor de modelos você utiliza para o desenvolvimento em Go?

Faz sentido que html/template esteja em primeiro lugar. Este pacote evita automaticamente conteúdo potencialmente perigoso, como dados gerados pelo usuário, e ajuda a evitar ataques por injeção de código.

Quais linguagens você usa juntamente com o Go em um mesmo projeto?

Segundo uma pesquisa recente sobre o Go, 37% dos desenvolvedores de Go o usam para criar Web sites e serviços Web. Este dado explica por que tantos desenvolvedores usam JavaScript, TypeScript e Go no mesmo projeto.

A alta classificação do Python provavelmente é impulsionada pela tendência de muitos projetos de Python a migrarem para o Go. Quando os desenvolvedores decidem adicionar novos serviços a um projeto escrito em Python, eles tendem a fazer isso usando Go, que é conhecido pela sua eficiência, suporte à concorrência e ótimo desempenho em redes e serviços Web. Esta abordagem tem suas desvantagens, mas permite que os desenvolvedores evitem reescrever sua base de código.

Observe que o GoLand já oferece suporte a JavaScript e TypeScript desde a instalação. Você também pode instalar o plug-in Python Community Edition e tirar proveito do seu suporte a Python.

Que tipo de software você desenvolve com Go?

Você usa espaços de trabalho (go.work)?

O modo de espaços de trabalho foi introduzido no Go 1.18, permitindo aos desenvolvedores trabalharem em vários módulos ao mesmo tempo, sem editarem um arquivo go.mod para cada módulo. Com os espaços de trabalho do Go, você pode controlar todas as dependências através de um arquivo go.work.

Quais frameworks de Web para Go você usa regularmente?

No último ano, o framework Gin foi a solução mais popular para desenvolvimento para a Web, enquanto o pacote net/http da biblioteca-padrão manteve sua posição. Confira nosso Guia do GO REST para entender melhor as diferenças entre o Gin e o net/http.

Que tipo de proxy de módulos Go você usa?

Você usa vendoring nos seus projetos?

No Go, vendoring é a prática de criar as suas próprias cópias locais das dependências necessárias para um projeto específico e incluir essas cópias na sua estrutura de arquivos. Assim, você pode garantir que o seu projeto contenha todo o código necessário para criar uma aplicação e não tenha que depender de baixar dependências de fontes externas.

Como a maioria das abordagens, o vendoring tem algumas desvantagens. Alguns desenvolvedores acreditam que ele torna o repositório de código menos transparente e as alterações mais difíceis de revisar. Os módulos do Go ajudam os desenvolvedores a abandonar o vendoring, graças a recursos como o Go proxy, que coloca as dependências em cache e garante que a versão correta de cada pacote esteja sempre disponível.

Qual Go Router você usa regularmente?

A biblioteca-padrão ainda ultrapassa dois roteadores populares, o gorilla/mux e o go-chi/chi. Você pode consultar o Guia do Go REST para entender melhor as diferenças entre o gorilla/mux e a biblioteca-padrão.

Quais frameworks de teste você costuma utilizar?

Quantas dependências externas existem nos seus projetos?

Qual é o tamanho da base de código com a qual você está trabalhando no seu IDE ou editor?

Você usa genéricos?

Os desenvolvedores em Go vêm pedindo o suporte a genéricos há muito tempo e esse suporte foi finalmente adicionado no Go 1.18, em março de 2022. Mais ou menos um ano depois, mais de 80% dos desenvolvedores em Go estão usando ou já experimentaram usar genéricos.

Para quais dos itens seguintes você já usou o TinyGo?

O TinyGo dá grandes resultados quando você precisa produzir programas pequenos e eficientes para sistemas embarcados ou WebAssembly. Como mostra esta pesquisa, o TinyGo também é usado para criar CLIs. O Go tem uma biblioteca-padrão excepcional, mas talvez você não precise de todo o seu poder de fogo se estiver criando uma CLI que faça apenas tarefas básicas. Nesse caso, o TinyGo é uma melhor escolha, pois permite que você mantenha sua CLI pequena e precisa.

Quais dos seguintes sistemas de build você usa regularmente?

Obrigado pelo seu tempo!

Esperamos que você tenha achado nosso relatório útil. Compartilhe este relatório com seus amigos e colegas.

Se tiver dúvidas ou sugestões, entre em contato conosco em surveys@jetbrains.com.