sábado, 8 de octubre de 2011

Lenguajes multiparadigma : GO



¿Qué es GO?

Go es un lenguaje compilado, concurrente, imperativo, estructurado, no orientado a objetos y fue desarrollado por Google.Se dice que proviene de la combinación del lenguaje C aunque tambien tiene un poco de Python, este lenguaje fue presentado en el 2009 pero empezó a ser desarrollado en Septiembre del 2007 por Robert Griesemer, Rob Pike y Ken Thompson.Google decidió crear este lenguaje ya que en el mundo de la web y la computación han cambiado drasticamente pero en lenguajes de programación no han hecho lo mismo.





Características de GO

  • Es un lenguaje concurrente que soporta canales de comunicación basados en el lenguaje CSP(Communicating Sequential Processes),la concurrencia en Go es diferente a los criterios de programación basados en bloqueos como pthreads.
  • Go implementa un recolector de basura.
  • La declaración de variables es simple y conveniente, y difiere de la de C.
  • Go admite la tipificación dinámica de datos también conocida como duck Typing presente en multitud de lenguajes dinámicos como por ejemplo JavaScript, Ruby o Python. Un struct puede implementar una interfaz de forma automática, lo cual es una característica potente y novedosa.
  • GO no utiliza threads ni procesos ni co-rutinas(a mi forma de ver ellos rediseñaron los threads).La comunicación entre goroutines se realiza a través de una característica del lenguaje llamada canales —basada en CSP—, que es mucho más seguro y fácil de usar que los sistemas predominantes basados en bloqueos de pthreads o características modernas de Java.
  • GO no tiene excepciones. Los creadores del lenguaje dan varios motivos para que esto sea así. Uno de ellos es que añadir una capa de excepciones añade una complejidad innecesaria al lenguaje y al entorno de ejecución. Por definición deberían de ser excepcionales pero al final se acaban usando como controladores del flujo de la aplicación y dejan de tener nada de excepcional. Según los creadores, las excepciones tienen que ser realmente excepcionales y el uso que se le da mayoritariamente no justifica su existencia.
  • En GO es opcional usar " ; " al final de cada linea de código.

Instalación de GO


Lo primero que instalaremos es un PPA de GO en Ubuntu desde la terminal teclea:



Go requiere unas variables de entorno para poder saber donde buscar y encontrar colocar los archivos.A continuacion vamos a teclear los siguientes comandos desde la terminal pero dado que algunos de ellos pueden ser necesarios más adelante, vamos a poner a todos en nuestro archivo .bashrc .


Ahora abres tu archivo ~/.bashrc y escribiras los siguientes comandos.

Despues de guardar y cerrar teclearemos en la terminal lo siguiente.


Instalacion de las dependencias

Necesitamos un compilador de C (como gcc), junto con otras utilidades para crear los compiladores Go (6g y 8g).Asi que instalaremos los siguiente desde la terminal.




Compilando codigo con GO.

Una vez instalado GO podemos proseguir a este paso, lo que se necesita hacer ahora es buscar los repositorios de GO el cual al instalar GO genero una carpeta llamada GO y esa carpeta necesitamos cambiarle el nombre, una vez hecho eso asegurate que esa carpeta ya no exista una vez, tecleando los siguientes comandos.


En la terminal te podria aparecer algo como esto.


Ahora para hacer que GO compile hacemos lo siguiente.


Una vez hecho esto ya tendriamos instalado GO a su totalidad.


Un ejemplo de GO usando polimorfismo





Proyectos de los cuales se han trabajado hasta ahora con GO:





Si te interesa GO puedes entrar a su pagina principal para ver la documentacion de la cual se sigue actualizando



Links de referencia:
http://go-lang.cat-v.org/go-code
http://www.genbetadev.com/herramientas/introduccion-al-lenguaje-de-programacion-go
http://golangtutorials.blogspot.com/2011/06/polymorphism-in-go.html
http://maketecheasier.com/install-google-go-in-ubuntu/2010/04/15

2 comentarios:

  1. dicen que es muy similar a C/C++ por lo que se me hace que ha de ser facil para aquellos que estan familiarizados con estos lenguajes :0 alli otros tutos bien explicados :) para quien le sirva jaja yo primero me preocupo por saberle bien al C y despues me paso al C++ :P http://www.vertutoriales.com/index.php/iniciacion-como-empezar-con-go-el-nuevo-lenguaje-de-google/

    ResponderEliminar
  2. Bastante bien; vas hasta puntos extra por este reporte. Te pongo 15 por ello.

    ResponderEliminar