Iniciando en Go[lang] (experiencia)

Publicado por Jack el 12 de Octubre de 2019 a las 00:11

Introducción

A lo largo de los años he aprendido distintos lenguajes de programación, empecé aprendiendo lenguaje C para seguir con java, python, php, entre otros. Cuando uno va iniciando en el mundo de programación en general empiezan surgir distintas preguntas como: - ¿Que lenguaje de programación debería aprender? - ¿Cuanto se gana sabiendo X o Y lenguaje? - ¿Cual es el mejor lenguaje de programación? - ¿Que lenguaje de programación mas usado?

Estas y otras preguntas son las que se hace uno normalmente, en este caso no abordaremos sobre que lenguaje es mejor que otro, contare mi experiencia en el lenguaje de programación GO y por que se ha vuelto en uno de mis lenguajes de programación favoritos, espero dejes un comentario contándonos sobre el lenguaje de programación que más te gusta.

¿Que es Go?

Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google, y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson, esta disponible en distintas plataformas (Windows, GNU/Linux, FreeBSD y Mac OS X), con la posibilidad de ser exportado a otras plataformas ya que su codigo es libre.

El inicio

Todo empezó en el año de 2017, tenia un nuevo trabajo como "desarrollador backend" de medio tiempo, en este trabajo básicamente automatice distintos procesos en Python, pero una vez que termine esta tarea, tuve unos días libres, en estos días me recomendaron aprender GO, se me hizo curioso, me dijeron que leyera "a tour of Go" total que lo termine en un par de días, sin llegar a concurrencia y empece a hacer unos primeros programitas de algoritmos en este lenguaje, de pura casualidad lo puse a competir contra python, mismo algoritmo, distinto lenguaje de programación y o sorpresa! este lenguaje era mucho más rápido! No había buscado nada de información al respecto sobre cosas detallas en GO así que mucho conocimiento técnico de el mismo no tenía. Lamentablemente se quedo solo como una cosa que había aprendido y la empezaría a olvidar progresivamente.

Retomando Go

Después de realizar el Tour de Go y que pasaran meses, creí que jamas retomaría este lenguaje de programación hasta que llego mi materia de Redes II, en donde básicamente implementamos distintas aplicaciones y herramientas para comunicar programas a través de una red, para esto el curso estaba 80% a realizarse con java y como mucho un 20% en lenguaje C (ya que los proyectos tienen que ser en dos lenguajes de programación). Fue entonces cuando recordé, que Go esta orientado a ser uno de los lideres en la siguiente innovación del Internet, en un mundo donde ocurren cientos de miles de peticiones a un servicio, donde se necesitan conexiones rápidas y una alta escalabilidad, sin pensarlo mucho decidí realizar mis practicas en Go a pesar de que el código que proporcionaba el maestro estaba en Java.

Plus de usar Go

Siempre que se habla de Go se habla de lo siguiente:

  • Fácil manejo de concurrencia
  • Syntaxis parecida a la de lenguaje C (lo considero una mezcla de C con python con php) pero pensado de una mejor forma.
  • Instalar bibliotecas de 3ros desde github es muy fácil
  • Retrocompatibilidad con versiones anteriores (no como algunas cosas en python2 y python3)
  • Aun es underground
  • "Facil" de aprender
  • Compilación rápida y por lo tanto es más rápido que la mayoría de lenguajes interpretados.
  • Respaldado por google No se como explicar algunas cosas que he sentido al programar en Go, realmente no sentía algo así desde que aprendí a programar en Python.

Desventajas del lenguaje

  • Comunidad pequeña
  • Mayoría de comunidad y documentación solo en ingles(Próximamente tutoriales en español!)
  • Muchas bibliotecas de 3ros estancadas
  • No hay tantas bibliotecas como en otros lenguajes
  • Aun hay incertidumbre por si apostarle a este lenguaje

Es claro que este lenguaje es relativamente nuevo y por ello sus comunidad es muy pequeña, pero este punto es algo que no me desmotiva mucho, lo veo como una oportunidad para crear mi propia comunidad de Go, lo que me preocupa mucho son las bibliotecas que se dejaron de actualizar y no progresaron a algo mayor, esto normalmente pasa con los lenguajes nuevos, así que se necesita de mucho apoyo para poder seguir proliferando.

Conclusiones

Go es un lenguaje de programación que esta dispuesto a resolver distintos problemas que han surgido con otros lenguajes de programación, en un mundo en donde la ley de moore parece ya no estarse cumpliendo, el hardware empieza a limitarse y lo que necesitaremos será optimizar nuestro software, es por ello que Go surge como un lenguaje que permite desarrollar rápido, fácil de leer y además es más rápido que la mayoría de lenguajes (Obvio no al nivel de C o C++).

Considero que si aún no quieres aprender este lenguaje veas en mis siguientes Post algunas de sus aplicaciones y lo fácil que es aprender y entenderlo, aun no he visto las suficientes vacantes de trabajo para esta tecnología, pero estoy seguro que podría darnos una buena sorpresa en los siguientes años.