El pasado sábado 23 de Junio en Bogotá se llevo a cabo el evento Reto de Programación “GO 101“, cuyo enfoque principal fue conocer la sintaxis, la praxis y características del relativamente nuevo lenguaje de Google “GO”. La génesis de Go fue en el 2007, pero el año de lanzamiento al público fue en el 2009. El diseño inicial de Go comenzó el 21 de septiembre de 2007, utilizando un 20% a tiempo parcial del proyecto Google Inc. Tres  expertos ingenieros detrás de su desarrollo: Robert Griesemer (conocido por su trabajo en la máquina virtual Java HotSpot), Rob Pike (miembro del equipo Unix en Bell Labs, trabajó en Plan 9 y el sistemas operativos Inferno, además del lenguaje de programación Limbo) y Ken Thompson (miembro del equipo de Unix en los Bell Labs, uno de los padres de C, Unix y el sistema operativo Plan 9, desarrollado conjuntamente con Rob Pike en formato UTF-8). El hecho de citar a los autores del lenguaje es para saber cuál es el rumbo del mismo, y que se puede esperar con respecto a la evolución, soporte y continuidad de solución a los bugs y no que tenga el triste final del famoso DART.

Lenguajes que influyen e inspiran Go

Sus creadores lo proclaman como el “C del siglo 21″. Pertenece a la familia de lenguajes C, así como C++, Java y C#.
Hubo una importante contribución del Pascal/Modula/ que son lenguajes familia Oberon (las declaraciones, y los paquetes). Su mecanismo de concurrencia se basa en la experiencia adquirida en limbo y Newsqueak, que inspira la teoría de Tony Hoare CSP (Comunicación procesos secuenciales), lo que es esencialmente el mismo mecanismo utilizado por el lenguaje Erlang.
Se trata de un lenguaje completamente de código abierto, distribuido con una licencia BSD, por lo que puede ser utilizado por todo el mundo, incluso para fines comerciales sin cargo, y que incluso se puede cambiar por otros.
También tiene características de un lenguaje dinámico, como Python y Ruby.

Google y sus creadores responden ¿ Por qué y para qué un nuevo Lenguaje?

  • C/C++ no evolucionaron con el panorama de la computación, en más de una década no ha surgido un lenguaje nuevo: por lo que existe la clara necesidad de nuevos lenguaje de sistemas, apropiados para las necesidades de nuestra era de la computación (aclaración específica de Google).
  • Contrastes con la potencia de cálculo; pues el desarrollo de software no es considerablemente más rápido o para tener más éxito (considerando el número de proyectos fallidos) y las aplicaciones siguen creciendo en tamaños considerables para procesar datos de gran cantidad, por lo que un nuevo lenguaje de bajo nivel, pero equipado con más conceptos, que se necesitan para suplir dichas necesidades.
  • Go es un intento de combinar los tres deseos del desarrollo: la eficiencia, la compilación; por lo tanto rápido, rápida ejecución, y la facilidad de programación. Paradigma que hasta le fecha ningún lenguaje suple estas necesidades.

Go fue originalmente concebido como un lenguaje de programación de sistemas, de propósito general, que se utilizará para procesos pesados en el servidor (afirma Google) en el mundo de los servidores web, arquitecturas de almacenamiento y similares. Sin embargo Go no es adecuado para software en tiempo real debido a la recolección de basura y la asignación automática de la memoria.

Plataformas soportadas en Go

Go está disponible en código fuente y binarios para las plataformas:

 

  • FreeBSD 7 +: amd64, 386
  • Linux 2.6 +: amd64, 386, el brazo
  • OS X (Snow Leopard + León): amd64, 386
  • De Windows (2000 + ó superior): amd64, 386

La portabilidad del código de Go entre Sistemas Operativos es excelente (suponiendo que el uso puro código de Go, nada de CGO, inotify o paquetes de nivel muy bajo).

Herramientas e información sobre Go de Google

Construcción de una aplicación Web con Go Tutorial recomendado para que practiques HTML5, CSS3 y Javascript.

Conclusiones sobre la interacción y el trabajo con Go

Go es un lenguaje del lado del servidor lo que en el futuro puede servir para desplegar aplicaciones web, incluso el App-Engine de Google ofrece desplegar tus aplicaciones de prueba. Si quieres dar tus primero pasos te recomendamos hacer el Tour de Go es curioso el orden de los temas pero es fácil de entender. Después de jugar un rato con el prueba con la Construcción de una aplicación Web con Go.

Oscar Lopez quien fue la persona a cargo de la transferencia de conocimiento en Go para el evento “Evento: Reto de Programación GO 101”  concluye que este lenguaje es más enfocado para trabajar de lleno con el servidor e interactuar con procesos complejos y grandes cantidades de datos.

alejo8591

alejo8591

Instructor en tecnologías como: Node.JS, PhoneGap (Cordova), Django, MongoDB, HTML5, CSS3, JavaScript (Avanzado). Apasionado por el emprendimiento con enfoque tecnológico. Amante de la ingeniería del software y las buenas practicas ágiles de desarrollo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Cerrar