Los mejores IDE y editores de Go language

El lenguaje Go de Google, también conocido como Golang, fue elegido recientemente como el lenguaje de programación de Tiobe de 2016, en base a su rápido crecimiento en popularidad durante el año, más del doble que los subcampeones Dart y Perl. El índice de idiomas de Tiobe se basa en la “cantidad de ingenieros capacitados en todo el mundo, cursos y proveedores externos”, utilizando los resultados de múltiples motores de búsqueda.

Tanto crecimiento en popularidad conlleva un mayor interés en las herramientas de desarrollo para el lenguaje de programación. Debido a que el lenguaje Go se distribuye en forma de código abierto completo con compiladores, herramientas y bibliotecas, lo que queda para que los programadores encuentren por sí mismos los entornos de edición compatibles con Go, ya sean editores directos o entornos de desarrollo integrados (IDE), alojados localmente o en el nube.

Para este artículo, he intentado analizar todos los entornos de edición compatibles con Go disponibles y concentrarme en aquellos que parecen valer la pena. Comencé con la lista oficial de IDE y complementos para Go y reduje los aproximadamente 35 elementos de la lista a los que podrían merecer una prueba. Comenzaré con un resumen rápido de los productos útiles que encontré en cada categoría y terminaré con un vistazo de cerca a mis mejores opciones.

Tenga en cuenta que el desarrollo del lenguaje de Go generalmente se basa en la variable GOPATH establecida en la raíz de su espacio de trabajo de desarrollo de Go. Eso puede ser un problema para las aplicaciones GUI como los editores, que no siempre respetan la configuración del entorno.

Hay más de una docena de herramientas de lenguaje Go que puede instalar en directorios bajo la carpeta GOPATH con el go getcomando, una vez que Go esté instalado. Muchos de los editores que evalué utilizan una o más de estas herramientas.

Ir IDE

Hay una sorprendente cantidad de IDE que admiten Go. Sin embargo, el significado de "apoyo" varía. Cuatro IDE se destacaron para mí: Gogland, Eclipse con goclipse, LiteIDE y Komodo IDE.

En el extremo superior, Gogland de JetBrains presenta finalizaciones inteligentes, inspecciones y arreglos rápidos, refactorización simple, navegación rápida, ventanas emergentes rápidas, generación de código muy básico, detección de llamadas recursivas, ventanas emergentes de tipo de expresión, resaltado de puntos de salida, búsqueda de uso, formato de código, resaltado semántico y sugerencias de parámetros en su editor. Sí, es mucha funcionalidad para editar un idioma joven. Otras características de Gogland incluyen un depurador integrado, análisis de cobertura, ejecución de pruebas, un menú para ejecutar herramientas Go y algunas funciones no específicas de Go que son similares a las que encontrará en otros productos JetBrains, como IntelliJ IDEA. Gogland puede administrar múltiples configuraciones de GOPATH, en lugar de depender exclusivamente del entorno de GOPATH del sistema.

Actualmente, Gogland está disponible de forma gratuita como producto de acceso anticipado. Es probable que eventualmente tenga un precio similar al de otros productos JetBrains. Espere que esté disponible mediante suscripción anual, ya sea solo o en un paquete con el resto de herramientas de JetBrains, con descuentos para académicos y contribuyentes de código abierto.

En un nivel de complejidad ligeramente menor, Eclipse con goclipse proporciona resaltado de sintaxis, sangría automática y delineado en su editor, todo en el espíritu de otros módulos de lenguaje de Eclipse como Java. Las integraciones incluyen depuración con GDB, búsqueda de definiciones con las herramientas guru y godef Go, y autocompletado con la herramienta gocode. Eclipse y el complemento goclipse son gratuitos y de código abierto.

LiteIDE tiene un navegador de paquetes, vista y esquema de clases, navegador de documentos, navegación de código, usos de búsqueda y refactorización de código en su editor. Las integraciones incluyen compatibilidad con gocode, índice API de GOPATH, depuración con GDB y un área de juegos de Go. LiteIDE es gratuito y de código abierto.

Komodo IDE admite la verificación de sintaxis Go (linting) y resaltado, coloración de sintaxis, plegado de código y otras características que mejoran la productividad. Komodo también admite la inteligencia de código Go con finalizaciones, sugerencias de llamadas, esquemas y definición de go. La refactorización incluye el cambio de nombre de variables y miembros de clase y extracción de métodos. Komodo admite pruebas unitarias de Go, colaboración de código, control de versiones, shells interactivos y creación de perfiles de código. El principal reclamo de la fama de Komodo es que admite todos los principales lenguajes de código abierto, incluidos Python, Node.js, Ruby, Go, Perl y Tcl.

Komodo IDE es un producto comercial. Komodo Editor, que tiene un subconjunto de las capacidades del IDE, es gratuito.

Ir editores

Si bien un IDE puede proporcionar toda la funcionalidad que desea para desarrollar código, los IDE a menudo pueden sentirse "pesados". En otras palabras, pueden tardar mucho en iniciarse, usan mucha memoria y, a veces, no responden al escribir el código porque están haciendo demasiado en segundo plano. Los editores de código a veces pueden ser preferibles, especialmente para sesiones cortas, siempre que no le moleste tener que cambiar a una ventana de shell de línea de comandos separada para compilar.

Los complementos a veces pueden agregar características similares a IDE a los editores de código. Eso suele ser bueno, siempre que la sobrecarga periódica de mantener los complementos actualizados y la sobrecarga constante de los complementos que ejecutan procesos en segundo plano no ralenticen la edición.

Atom, Brackets y Visual Studio Code son los tres editores que me destacaron por trabajar en el lenguaje Go. Todos son gratuitos y de código abierto. Sin embargo, BBEdit, Emacs, Notepad ++, Sublime Text, TextMate y Vim se integran con los complementos de idioma Go, y todos tienen sus defensores. Emacs, Notepad ++ y Vim son gratuitos y de código abierto. BBEdit es comercial, pero su hermano pequeño TextWrangler es gratuito.

El editor Atom de GitHub se envía con el paquete language-go, que admite la gramática y los fragmentos de Go. Los paquetes adicionales para Go aportan más funcionalidad. Por ejemplo, go-plus se integra con muchas herramientas Go estándar (para autocompletado, formateo, linting, pruebas) para proporcionar un entorno similar al IDE y go-debug se integra con el depurador delve.

El editor de soportes de Adobe tiene varias extensiones de la comunidad para el soporte de Go. Estos incluyen Go-IDE, que se utiliza gocodepara autocompletar; Go-Syntax, que utiliza CodeMirror para resaltar la sintaxis; y Go Formatter mejorado, que se utiliza gofmtpara formatear código y goimportsadministrar importaciones.

Visual Studio Code admite el resaltado de sintaxis Go listo para usar. El complemento vscode-go proporciona funciones adicionales, que se integra con más de una docena de herramientas Go estándar. Si no tiene configurado su GOPATH, el complemento le pedirá que lo configure tan pronto como intente editar un archivo de idioma Go; puede configurarlo para el proyecto y / o el entorno del sistema. Si no tiene las herramientas Go instaladas, el complemento le pedirá que las instale en los lugares estándar según lo determine su GOPATH.

IDE de Go basados ​​en la nube

Los IDE basados ​​en la nube son una innovación relativamente reciente en el espacio de desarrollo de software. Tienen dos ventajas inherentes: no requieren una configuración local más que un navegador compatible, y pueden permitir la edición por parte de varios desarrolladores si están diseñados para ello. En el lado negativo, los IDE basados ​​en la nube a menudo sufren retrasos, lo que puede volver locos a los desarrolladores e interferir con el "flujo" que permite a los programadores ser más productivos. Actualmente, tres IDE basados ​​en la nube admiten el lenguaje Go: Cloud9, CodeEnv y Wide.

Cloud9 es un IDE multilenguaje basado en la nube que admite Salir de fábrica. Se conecta con los repositorios de GitHub, Bitbucket y Google Cloud Platform, y tiene espacios de trabajo que puede compartir y clonar. Además de un editor de código con un extenso conjunto de funciones y un sistema de archivos en línea, tiene MySQL y otras bases de datos, ventanas de terminal e inmediatas, y enlaces de teclado personalizables, con los modos Vim, Emacs y Sublime Text incluidos como estándar. El autocompletado y la depuración de Go aún son experimentales, pero el resaltado de sintaxis, el panel de ejecución, la vista de esquema y el deslinde son totalmente compatibles.

CodeEnv también es un IDE basado en la nube en varios idiomas. Hay una imagen de entorno base de Go para entornos privados, así como una imagen de entorno de Go público. Cada entorno consta de un sistema de archivos, un editor de código simple con resaltado de sintaxis y una ventana de terminal. Actualmente hay ocho opciones de imagen base y seis opciones de imagen de fondo.

Wide es un IDE basado en web para equipos que está escrito en y para el lenguaje de programación Go. Utiliza un editor de programación temático basado en CodeMirror con resaltado de sintaxis asistido por gocode, autocompletado, formateo de código y colaboración en tiempo real. Wide cita a LiteIDE como una dependencia.

Gogland

JetBrains Gogland, actualmente en un estado de vista previa inicial, parece ser el IDE de Go más completo disponible, aunque aún no se ha lanzado comercialmente. Su depurador integrado, análisis de cobertura y ejecución de pruebas contribuyen en gran medida a distinguirlo de los editores corrientes que tienen algunas integraciones de herramientas.

En la captura de pantalla a continuación, donde uso Gogland para examinar algunos de los códigos fuente del proyecto de idioma Go, puede ver varias funciones de edición de Gogland, incluido el árbol del proyecto, una sugerencia de inspección (la bombilla), resaltado del punto de salida y navegación rápida usando la barra de navegación a la derecha (el cuadro de código con los números de línea fuera de orden). Para obtener más capturas de pantalla que muestren lo que puede hacer Gogland, lo referiré a la guía de funciones de JetBrains.

Gogland usa el mismo ecosistema de complementos JetBrains que IntelliJ IDEA y WebStorm, y ya incluye muchas características relevantes heredadas de esos productos. Por ejemplo, puede utilizar Gogland para trabajar con HTML y lenguajes y frameworks de front-end, exactamente como WebStorm. Gogland también le permite trabajar con bases de datos SQL, como IntelliJ IDEA y DataGrip. Si necesita combinar el soporte de Node.js con su codificación Go o necesita soporte de Subversion además de la integración de Git, es una cuestión rápida de agregar los complementos.

Código de Visual Studio

Visual Studio Code con el complemento vscode-go es un buen editor de Go que funciona bien y tiene una buena integración con Git. Visual Studio Code necesita actualizaciones y un reinicio al menos una vez al mes, pero rara vez se siente lento durante la edición. En la captura de pantalla a continuación, vemos el explorador a la izquierda, la instalación de las herramientas Go en la parte inferior derecha y la edición de código en la parte superior derecha.

Las herramientas Go habilitan el complemento vscode-go, que proporciona muchas funciones de edición y verificación de código. Estos incluyen listas de finalización (usando gocode), ayuda de firma (usando gogetdoco godefmás godoc), fragmentos, información rápida (usando gogetdoco godefmás godoc), ir a la definición (usando gogetdoco godefmás godoc), buscar referencias (usando guru), esquema de archivo (usando go-outline), búsqueda de símbolos del espacio de trabajo (usando go-symbols), renombrar (usando gorename), construir al guardar (usar go buildy go test), lint-on-save (usar golinto gometalinter), formatear (usar goreturnso goimportso gofmt), generar esqueleto de pruebas unitarias (usar gotests), agregar importaciones (usar gopkgs), y depuración parcialmente implementada (usandodelve).

Esa es una gran cantidad de funciones útiles, aunque no tanto como las que se obtienen en el IDE de Gogland. El screencast en el archivo léame de vscode-go hace un buen trabajo al demostrar cómo funcionan la mayoría de las funciones.

Cloud9

De los tres IDE en la nube que admiten Go, el más interesante actualmente parece ser Cloud9. Tiene el editor de programación más funcional de los tres y admite alrededor de 17 idiomas además de Go. Aunque la finalización del código de idioma Go está marcada como experimental, descubrí que funcionaba bastante bien y no causaba muchos retrasos en la escritura.

El editor Ace de Cloud9 actualmente admite el resaltado de sintaxis para más de 100 lenguajes de programación. El número 17 anterior es para lenguajes que también tienen otro soporte, como ejecutar el código, linkear, delinear, completar el código y depurar.

Los espacios de trabajo de Cloud9 ejecutan actualmente Ubuntu 14.04 y Go 1.7.3. Puede actualizar su instalación de Go desde el shell de Bash (ver la parte inferior de la captura de pantalla), así como ejecutar su Go y otros programas desde Bash.

Como hemos visto, tiene muchas opciones posibles de entorno de programación para el desarrollo de Go. Si bien elegí Gogland como el mejor IDE de Go con todas las funciones, Visual Studio Code con vscode-go como el mejor editor de Go y Cloud9 como el mejor IDE en la nube de Go para mí , hay más de 30 posibilidades más. Dado lo personal que puede ser la elección de los entornos de desarrollo de software, debería probar algunos y ver cuál se adapta mejor a sus necesidades y preferencias.