★★★★★ Empecé a trabajar con Go hace casi un año en Moovweb y no he parado. Se ha convertido rápidamente en mi lenguaje compilado favorito, utilizándolo constantemente no solo para el trabajo, sino también para proyectos personales. También se convirtió en el idioma elegido por Moovweb para toda nuestra infraestructura de back-end.
Antes de Go, el lenguaje con el que me había sentido más cómodo (y había estado trabajando durante casi una década) era Java. Tengo mucha experiencia con C, SML, Ruby y Python, pero si me dieran una opción, elegiría Java. Pero realmente nunca lo elegí por amor, sino más bien por familiaridad. Nos enseñaron Java en la escuela secundaria y la universidad, mi primer trabajo fue todo Java. Sin embargo, a lo largo de mi carrera, en todo caso, siempre tuve cosas negativas que decir sobre el idioma, principalmente debido a todas mis frustraciones con él.
Ingresa Ir.
- ¿Son útiles las páginas vagas de 'valores' en sitios web?
- ¿Por qué la devolución en el siguiente código AJAX da un resultado indefinido?
- ¿Es Wix el nuevo WordPress? ¿Cuáles son los otros competidores en comparación con Wix?
- ¿Cuál es la mejor manera de definir una hoja de estilo específica de Chrome?
- ¿Qué necesito para aprender a ser desarrollador web?
Cuando me uní a Moovweb por primera vez, me dejaron en un mar de código Go. Intimidante al principio, pero me sorprendió lo fácil que eran las cosas. Rápidamente me di cuenta de que podía escribir cosas de la forma en que normalmente las escribiría en C y, en su mayor parte, sería bastante correcto que el compilador me ayudara en el camino con las bajas sintácticas.
Según mi experiencia hasta el momento, Go es una poderosa combinación de programación de bajo nivel (piense en C) con algunos aspectos de lenguajes de programación funcionales (por ejemplo, Lisp / Haskell), como la recolección de basura, funciones como ciudadanos de primera clase y canales de concurrencia. Los usuarios de Python también encontrarán ciertas acciones familiares dado el azúcar sintáctico similar de Go (sin embargo, sigue siendo fuertemente tipado).
Una cosa que Go no tiene y que ocasionalmente escucho que la gente se pregunte es la programación orientada a objetos. Según tengo entendido (y así comienza mi especulación), el objetivo de Go era tener un lenguaje algo más limpio para escribir software de red. Por lo tanto, los desafíos se plantearon en consecuencia: 1) debe compilar el ensamblaje de la manera más limpia posible para que sea lo más eficiente posible, y 2) debe tener una forma muy limpia de manejar la concurrencia. Entonces, si nos concentramos en esos problemas, puede ver (al menos para mí) por qué el diseño orientado a objetos quedó en segundo plano.
Pero obviamente, el lenguaje evolucionó rápidamente más allá de eso. Se desarrolló una comunidad fuerte (pago rápido en IRC y Grupos de Google), y el lenguaje comenzó a ganar impulso. Algunas empresas emergentes (generalmente las primeras en probar cosas nuevas) adoptaron el lenguaje para algunos de sus proyectos. Me alegró descubrir que Moovweb fue el primero en declarar que ejecutamos Go en producción.
En Moovweb, decidimos ir con Go porque vimos muchas promesas en él. Nuestro producto depende en gran medida de hacer las solicitudes de red lo más rápido posible. También proporcionamos a nuestros usuarios un SDK que pueden usar localmente para simular su proyecto antes de enviarlo a nuestros servidores. Queríamos asegurarnos de que la experiencia de ejecutar localmente con el SDK y de nuestros servidores de producción fuera lo más idéntica posible. Sin embargo, también queríamos proporcionar nuestro SDK en todas las plataformas (Windows, Linux y Mac). Windows, por ser el creador de problemas, no nos dejó con demasiadas opciones si queríamos una base de código unificada, y ahí fue donde Go nos dio una esperanza. Gracias a la compilación cruzada de Go, actualmente tenemos un lanzamiento de nuestro SDK en la trifecta de los sistemas operativos. Después de eso, era solo cuestión de tiempo hasta que todos nos enamoramos por ello.
Go todavía es muy joven, y definitivamente se nota. Hay errores que yo mismo he encontrado en los paquetes estándar de la biblioteca, así como algunos problemas de documentación, pero el equipo ha sido más que rápido en solucionar todo. Ocasionalmente nos topamos con problemas en los que hemos tenido que conformarnos con soluciones menos que ideales. Go no puede demonizar correctamente, por lo que si está intentando demonizar con Go, es probable que desee un script de envoltura para hacerlo (al menos por ahora). Muchos de los paquetes estándar de la biblioteca, aunque no tienen errores, son muy inmaduros e inflexibles. Por lo tanto, nos hemos encargado de escribir nuestros propios paquetes de registro y análisis html, así como algunos otros.
Sin embargo, la comunidad alrededor de Go ha sido increíble; la documentación sigue mejorando, y las nuevas bibliotecas de código abierto están surgiendo constantemente. Con cada nueva versión de Go, las cosas se arreglan, se mejora la funcionalidad anterior y se agregan nuevas bibliotecas al paquete estándar. Siempre habrá cosas que no son las mejores, los problemas seguirán apareciendo y siempre se encontrarán errores, pero estoy de acuerdo con eso. Me he enamorado de Go, y lo tomaré, problemas y todo.
Si desea obtener más información sobre Moovweb, no dude en registrarse en nuestro portal para desarrolladores. ¡Puede descargar e instalar nuestro SDK en todas las plataformas principales!