Programar con Go en Ubuntu

Go es el nuevo lenguaje de programación de Google, un lenguaje que intenta combinar la rapidez de desarrollo de Python con el rendimiento de C y que además es open source, distribuido bajo una licencia tipo BSD. ¿Suena bien? Pues vamos a compilar sus herramientas para poder jugar un poco con él.

Primero necesitamos crear algunas variables de entorno en nuestro .bashrc. Abrimos el archivo con gedit, por ejemplo

gedit ~/.bashrc


y añadimos las siguientes líneas, modificadas según nuestras necesidades y preferencias:

export GOROOT=$HOME/go
export GOOS=linux
export GOARCH=386
export GOBIN=$HOME/bin
export PATH=$PATH:$GOBIN

GOROOT, la primera variable de entorno, indica dónde se guardará el código fuente de Go. GOOS es el sistema operativo para el que vamos a crear nuestras aplicaciones, las opciones son linux, darwin (Mac OS X) y nacl (Native Client, para el navegador Google Chrome). Las opciones para GOARCH, la arquitectura para la que compilamos, son amd64 (64 bits), 386 (32 bits) y arm. Por último, la variable de entorno GOBIN especifica dónde instalaremos los binarios de Go. También modificamos la variable de entorno PATH, añadiendo el directorio en el que se instalarán las herramientas de Go, de forma que podamos ejecutarlas escribiendo su nombre, sin especificar la ruta completa.

Una vez modificado .bashrc, aplicamos los cambios, para no tener que reiniciar la consola

source ~/.bashrc

Pasamos a descargar el código fuente. Para ello primero necesitaremos instalar el cliente del sistema de control de versiones que utilizan, Mercurial

sudo aptitude install mercurial

Una vez hecho esto podemos descargar el código fuente utilizando el comando

hg clone -r release https://go.googlecode.com/hg/ $GOROOT

Una vez tenemos el código fuente, el siguiente paso es compilarlo. Para ello necesitaremos instalar varias herramientas

sudo aptitude install bison gcc libc6-dev ed

Una vez hecho esto, pasamos a compilar

mkdir $GOBIN
cd $GOROOT/src
./all.bash

Cuando el proceso termine, si no se ha producido ningún error, encontraremos las herramientas necesarias para compilar nuestras aplicaciones escritas en Go en el directorio que indicamos para la variable de entorno GOBIN.

A modo de prueba utilizaremos el típico «Hola Mundo». Creamos un nuevo archivo hola.go con gedit, y escribimos el siguiente código

package main

import "fmt"

func main() {
    fmt.Printf("Hola mundo\n");
}

Guardamos el archivo y lo compilamos

8g hola.go

Si queremos compilar para 64 bits, usaremos el compilador 6g

6g hola.go

El resultado será un archivo objeto hola.6 u hola.8, con el código máquina de nuestra aplicación. Para crear un ejecutable necesitaremos un último paso, que consiste en enlazar la aplicación, mediante el comando 8l (6l para 64 bits)

8l hola.8

Para ejecutar nuestra aplicación, por último:

./8.out



48 comentarios en «Programar con Go en Ubuntu»

  1. No tenia conocimiento sobre este nuevo lenguaje de programacion, hace cuanto aparecio?.

    Pero bueno mientras sea parecido a C, o mejor aun a C++, adaptarse para un programador en java no sera tan dificil.

    Saludos

  2. Curioso lenguaje, espero que salga documentación extendida y podamos probar como de bueno es. Lo malo es que no usa punto y coma al final de cada instrucción, con lo fan que soy de usarlo.

  3. Siendo Google y viendo la gente que trabaja en el lenguaje, parece como que tiene un gran futuro.

    Ahora, a mí no me convence. No es un lenguaje orientado a objetos realmente. Han quitado muchas cosas, dicen que para simplificar.

    Cuando salgan librerías para Go, deje de ser experimental,… se verá de verdad.

    Yo de momento sigo apostanto por Vala, que puede que no tenga por detrás a gente tan importante, pero me convence más.

    ¿Qué os parece?

    1. Pues que tienes razón: por ahora no pasa de experimento. Pero Google y Ken Thompson… son palabras mayores. Habrá que seguirle la pista, y jugar un poco con él mientras vemos cómo madura.

  4. Que bien me hubiera venido esta entrada si la hubiera leído 40 minutos antes para el tema de la definición de las variables, que no recordaba como hacerlo y al buscar en Google entradas sobre Go Programming Language solo encontraba noticias sobre que habían anunciado el lenguaje y demás.

    Muchas gracias de todas formas, ahora voy a intentar probar un Hola Mundo y quizás me atreva con algo más complicado si consigo descifrar la documentación de la página oficial.

  5. Uff acabo de probar con el Hola Mundo y he tenido un problema en la importación de fmt (o eso creo).

    En la documentación oficial pone el import entre comillas dobles y me estaba dando un problema.

    ¿Habías probado con import fmt y te ha funcionado?

    El compilador todavía tiene que ser depurado, porque lo errores ni se especifican correctamente qué pueden ser, ni dónde pueden ser
    Aunque yo se que es difícil bajo ciertas condiciones (me hice un traductor Java-C# para una asignatura de la universidad y uno de las cosas que más me costó fue el tratamiento y control de errores sintácticos-semánticos, de hecho hubo partes que las deje por imposible, reportando error genérico, jeje).

    Un saludo.

  6. En lo personal creo que el lenguaje de programacion de Google, al igual que su sistema operativo tienen mucho futuro.

    Si no observen lo que paso con Chrome navegador, muchos usuarios IE se han cambiando, incluso usuarios Firefox.

    Tal vez se deba a que Google cuenta con un gran presupuesto y su equipo de trabajo lo forman informaticos calificados. Para muchos Google es un monopolio, yo no lo veo asi pero cada quien con su punto de vista.

    Un saludo.

  7. go en pocas palabras c +concurrencia+GC+rendimiento=go
    pero si google puede desarrollar un gran numero de bibliotecas y un compilador muy potente podra reemplazar a c y c++ en entornos multihilo.
    c y c++ no son nada bueno en multihilo .
    go=c 2009

  8. Pues la verdad esta claro que Google repercusión si que consigue; ¿qué es de Google Wave? La verdad yo no lo veo tan útil cómo lo decían, tal vez sea que se están metiendo en el futuro y en conceptos que todavía no estoy acostumbrado.

    ¿Go? Pues según he podido leer en algunos blogs el lenguaje D debe de ser bastante mejor, pero todos sabemos que no siempre triunfa lo mejor, sino lo que mejor se vende. Por ahora Go no es que me llame demasiado, dónde este el C a bajo nivel que se quite lo demás.

  9. a la me parece muy buena la propuesta de Google de crear un nuevo lenguaje que permita las bondades de python junto con las de c.

    btw @goog muy bueno: go = c v2009

    1. Realicé 2 veces la instalación. la primera vez con una conexión lenta a Inet me dio un fallo de TestDialGoogle.
      Me conecte con otra conexión más rápida y pude instalar sin fallos.

      salu2

  10. Go no es C, de hecho apenas se parece excepto en cuatro cosas. Como comentaban en Menéame, parece que es un hijo de C++ y Python.

    Para mi su sintaxis es un poco rara. Por ejemplo, tiene dos tipos de asignación: «=» y «:=» dependiendo de si es asignación o inicialización.

    Además, no es orientado a objetos puro y le faltan unas cuantas características. Los chicos que lo han creado han expuesto sus razones, pero no se yo…

    Lo bueno (muy bueno, diría yo) es la solución para la comunicación entre «goroutines», algo así como procesos paralelos. Es una buena solución incluida dentro de lenguaje. Eso sí, nada que no se pueda implementar en otro lenguaje.

    Viniendo de Google supongo que tendrá éxito, pero a priori a mi no me gusta.

  11. Genial resumen, acabo de hacer mi primer hola mundo.
    Es un lenguaje al que tendremos que seguirle el hilo viniendo del monstruo del que viene… quien sabe si dentro de unos años todos trabajamos para Google 🙂

  12. Pingback: neverbyte.net» Blog Archive » Programando en Go en Mac OS X

  13. Se ve que google no descansa, pero no seria mejorar python y todo lo que tiene?.
    Python me parece muy bueno y ya tiene soporte para interfaces como wxWidgets, lo unico en lo cual falla es en la velocidad. Falta ver como evoluciona este nuevo lenguaje y que posibilidades de mejora puede mostrar con respecto a otros lenguajes como C, Java o Python.

  14. Pingback: Linux Hispano | Google Go sobre Ubuntu

  15. Pingback: Google crea un nuevo lenguaje programación - Go

  16. Buenas, queria comentarles que lo instale, no tube ningun tipo de problema, hice la prueba del «hola mundo» y anduvo perfecto! ahora bien, (es una pregunta tonta, lo se) como se cuales son las instrucciones contempladas dentro de cada paquete?? son las mismas que usabamos en c o c++?? muchas gracias!

  17. Que tal, me podrias ayudar con esto?
    me da este error en este paso «./all.bash»

    — FAIL: net.TestDialGoogle
    — 74.125.19.99:80 —
    http://www.google.com:80
    Dial(«tcp4», «», «www.google.com:80») = _, dial tcp4 http://www.google.com:80: lookup http://www.google.com. on 192.168.1.254:53: no answer from server
    Dial(«tcp4», «», «www.google.com:80») = _, dial tcp4 http://www.google.com:80: lookup http://www.google.com. on 192.168.1.254:53: no answer from server
    — 74.125.19.99:http —
    http://www.google.com:http
    Dial(«tcp», «», «www.google.com:http») = _, dial tcp http://www.google.com:http: lookup http://www.google.com. on 192.168.1.254:53: no answer from server
    Dial(«tcp4», «», «www.google.com:http») = _, dial tcp4 http://www.google.com:http: lookup http://www.google.com. on 192.168.1.254:53: no answer from server
    Dial(«tcp6», «», «www.google.com:http») = _, dial tcp6 http://www.google.com:http: lookup http://www.google.com. on 192.168.1.254:53: no answer from server
    — 074.125.019.099:0080 —
    — [::ffff:74.125.19.99]:80 —
    — [::ffff:4a7d:1363]:80 —
    — [0:0:0:0:0000:ffff:74.125.19.99]:80 —
    — [0:0:0:0:000000:ffff:74.125.19.99]:80 —
    — [0:0:0:0:0:ffff::74.125.19.99]:80 —
    FAIL
    make[1]: *** [test] Error 1
    make[1]: se sale del directorio `/home/chopan/go_src/src/pkg/net’
    make: *** [net.test] Error 2

  18. Pingback: despuesdegoogle » Blog Archive » Cómo instalar Go en Ubuntu

    1. Sólo tendrías que borrar la carpeta con el código fuente y los binarios de Go, editar el .bashrc para eliminar las variables indicadas, y desinstalar los paquetes que instalaste con sudo aptitude purge

  19. Pingback: Programar con Go en Ubuntu | Código Fantasma

  20. Pingback: Instalación en Ubuntu de Go: El nuevo lenguaje de programación de Google « Un Bioinformatiquillo

  21. Pingback: La semana en links #27 | Ubunlog

  22. Pingback: Go, Lenguaje de progamación de Google | Omeyas Web

  23. Pingback: Programar con Go en Ubuntu « INATUX

  24. Pingback: Programando con Go (El lenguaje de Programacion de Google) « Ubuntu Life

  25. Tiene buena pinta, y es lógico este movimiento por parte de Google. Con Chrome OS pronto a ver luz, ya se aseguran un lenguaje propio para desarrollar su plataforma(nacl).

  26. Pingback: Lets Go! « Seamos realistas…

  27. Pingback: Recordando el 2009

  28. Pingback: Como instalar Go en Ubuntu « Santiitos's Blog

Responder a Manuel Cancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.