Go

Compartir:

Estas preguntas solo se han mostrado a las personas encuestadas que han seleccionado Go como uno de sus tres lenguajes de programación principales.

¿Para qué utiliza Go?

Famoso por su eficacia y velocidad, sus funciones de concurrencia, su sólida biblioteca estándar, su sencillez y su legibilidad, Go es sin duda un lenguaje listo para la producción, y no es de extrañar que la proporción de desarrolladores que utilizan Go para trabajar vaya en aumento. Go es utilizado en producción por muchas grandes empresas, como Google, Dropbox, Microsoft, PayPal y Netflix, entre otras.

Cuando desarrolla en Go, ¿qué sistema operativo utiliza principalmente?

Estos datos coinciden en cierta medida con lo que vemos en las encuestas realizadas por el equipo de Go. A Go se le suele llamar «lenguaje de la nube» porque se utiliza mucho para crear aplicaciones nativas de la nube y herramientas DevOps. Esto explica la popularidad de Linux y macOS entre los desarrolladores de Go.

¿Utiliza varias versiones de Go al mismo tiempo?

Solo un tercio de los desarrolladores de Go trabajan con un solo proyecto a la vez, mientras que el resto trabaja con varios proyectos simultáneamente.

¿Qué versión(es) de Go utiliza?

Go es muy compatible con versiones anteriores, pero algunos usuarios siguen ejecutando varias versiones al mismo tiempo. Uno de los casos de uso es cuando los desarrolladores configuran su CI para que se ejecute con dos o tres versiones diferentes de Go para detectar regresiones y otros problemas.

¿Qué motor de plantillas utiliza para su desarrollo en Go?

Es lógico que html/template ocupe el primer lugar. Este paquete escapa automáticamente del contenido potencialmente peligroso, como los datos generados por el usuario, y le ayuda a evitar ataques de inyección de código.

¿Qué lenguajes utiliza junto con Go en un mismo proyecto?

Según la reciente encuesta sobre Go, el 37 % de los desarrolladores de Go utiliza Go para crear sitios y servicios web. Este dato explica por qué tantos desarrolladores utilizan JavaScript, TypeScript y Go en el mismo proyecto.

El alto puesto de Python se ve probablemente apuntalado por la tendencia de muchos proyectos Python a migrar a Go. Cuando los desarrolladores deciden añadir nuevos servicios a un proyecto escrito en Python, tienden a hacerlo utilizando Go, conocido por su eficiencia, compatibilidad con la concurrencia y sólido rendimiento en redes y servicios web. Este enfoque tiene sus desventajas, pero evita que los desarrolladores tengan que reescribir su base de código.

Tenga en cuenta que GoLand proporciona compatibilidad con JavaScript y TypeScript desde el momento de su instalación. También puede instalar el complemento Python Community Edition y aprovechar su compatibilidad con Python.

¿Qué tipos de software desarrolla con Go?

¿Utiliza espacios de trabajo (go.work)?

El modo espacio de trabajo fue introducido en Go 1.18, y permite a los desarrolladores trabajar en varios módulos simultáneamente sin editar archivos go.mod para cada módulo. Con los espacios de trabajo Go, puede controlar todas las dependencias utilizando un archivo go.work.

¿Qué marcos de trabajo web Go utiliza habitualmente?

Al igual que el año pasado, el marco de trabajo Gin es la solución más popular para el desarrollo web, mientras que el paquete net/http de la biblioteca estándar sigue manteniendo su posición. Consulte nuestra Guía de Go REST para comprender mejor las diferencias entre Gin y net/http.

¿Qué tipo de proxy de módulos de Go utiliza?

¿Utiliza el vendoring en sus proyectos?

En Go, vendoring es la práctica de crear sus propias copias locales de las dependencias necesarias para un proyecto específico e incluir estas copias en su estructura de archivos. De esta forma, puede asegurarse de que su proyecto contiene todo el código necesario para compilar una aplicación, y no tiene que depender de la descarga de dependencias de fuentes externas.

Como la mayoría de los enfoques, el vendoring presenta algunos inconvenientes. Algunos desarrolladores piensan que hace que el repositorio de código sea menos transparente y que los cambios sean más difíciles de revisar. Los módulos Go ayudan a los desarrolladores a alejarse del vendoring gracias a características como el proxy Go, que almacena en caché las dependencias y garantiza que la versión correcta del paquete esté siempre disponible.

¿Qué router de Go utiliza habitualmente?

Dos enrutadores populares, gorilla/mux y go-chi/chi, siguen siendo superados por la biblioteca estándar. Puede consultar la Guía de Go REST para comprender mejor las diferencias entre gorilla/mux y la biblioteca estándar.

¿Qué marcos de trabajo de pruebas utiliza habitualmente?

¿Cuántas dependencias externas tiene en sus proyectos?

¿Cuál es el tamaño de la base de código con la que trabaja en su IDE o editor?

¿Utiliza genéricos?

Los desarrolladores de Go llevan pidiendo la compatibilidad con genéricos desde siempre, y finalmente se añadió a Go 1.18 en marzo de 2022. Un año más tarde, más del 80 % de los desarrolladores de Go utilizan o han probado los genéricos.

¿Para cuál de las siguientes opciones ha utilizado TinyGo?

TinyGo muestra grandes resultados cuando se necesita producir programas pequeños y eficientes para sistemas incrustados o WebAssembly. Como muestra esta encuesta, TinyGo también se utiliza para crear CLI. Go tiene una biblioteca estándar excepcional, pero puede que no necesite toda su potencia si está creando una CLI que solo realiza tareas básicas. En ese caso, TinyGo es una mejor opción, ya que le permite mantener su CLI reducida y precisa.

¿Qué sistemas de compilación utiliza habitualmente?

¡Gracias por el tiempo que nos ha dado!

Esperamos que nuestro informe le haya resultado útil. Comparta este informe con sus amigos y compañeros.

Si tiene alguna pregunta o sugerencia, no dude en ponerse en contacto con nosotros a través de surveys@jetbrains.com.