Go que no Goto

Hace aproximadamente un año, si recordáis os empecé a dar el follón con Node.

Todo vino por un twitter de @0GiS0 que no recuerdo muy bien que decía algo así como “hoy toca probar nodejs” y después este post.

Node.js & Windows Azure – ¿Qué es realmente Node.js? ¿Por dónde empiezo? Creando mi Web server

Eso hizo que se me abriera el gusanillo y demostraros que no fui el primero, ahora sí fui el más pesado e insistente hasta convencer a muchos que lo probasen y dio sus frutos y no pocos Sonrisa.

Como todos sabéis tuve el gusto de haceros alguna que otra demostración y charla a lo largo del año, la más apoteósica de todas la podéis leer y ver en este post del amigo Sergio León.

GUSENET, un EVENTO mayúsculo.

Luego fui invitado al gran evento de

http://www.geek-a-paloozaaa.com/speakers/

Organizado por mi gran e incondicional amigo Don Lluis Franco’s Corner, con lo cual si este año me vuelve a invitar más la invitación que tengo garantizada al #yonodetuxaml con el permiso de Pin y Pooooon , os quiero hablar de algo no tan nuevo pero si novedoso The Go Programming Language, aquí tenéis una pequeña introducción en la wiki, que no me gusta copiar y pegarSonrisa.

El 23 de noviembre tuve el gusto de asistir a una charla de este lenguaje en el GCG Murcia y me entro el gusanillo.

Y yo pensando de que iba a hablar a lo largo del 2014 Lengua fuera.

Bueno vamos con una pequeña demo y verás como os gusta que es bastante fácil.

1. Descarga del nuevo juguete Download the Go distribution.

2. Una vez descargado e instalado yo concretamente en la carpeta c:go voy a crear una carpeta nueva con el nombre jugando con go.

3. Te sitúas en esta carpeta y abres el magnifico ide de desarrollo tecleando notepad, a mi cuando empiezo me gusta este que es el más rápido, pero podéis mirar alguno más en este link.

Comparison of IDEs for Google Go

4. Copias el siguiente fragmente de código en el editor.

package main

import (
    "io"
    "net/http"
    "log"
)

// hello world, the web server
func HelloServer(w http.ResponseWriter, req *http.Request) {
    io.WriteString(w, "hello, world mi niño!n")
}

func main() {
    http.HandleFunc("/hello", HelloServer)
    err := http.ListenAndServe("localhost:4000", nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

Y lo guardas con el nombre HelloWord.go acuérdate de la extensión go que después no puedes compilar ni ejecutar.

5. Para ejecutar simplemente tienes que teclear “go run HelloWorld.go” y vas a obtener este resultado.

utf8

¿Que pasa? que no funciona en Windows. No señores que me ha pasado lo mismo que a mi amigo del alma Carrillo en su primer estreno a lo grande Primeros pasos dentro de Visual Studio Online “Monaco”, solo que el pudo compilar y yo ni he podido una buena cosa a favor de “Go”.

Será un lenguaje tipado Sonrisa ?.

Amigo Carrillo que  como fecha máxima 28 de Noviembre de 2014 te veo publicando un post de “Go” en el flamante Visual Studio "Monaco". Ya sabes lo que dice @2Flores de mi :

“Pedro es un visionario y se mete en tus sueños”.

Solución.

Tienes que guardar como UTF-8 que por defecto “Notepad” lo hace como “ANSI” y en honor a Carrillo he escrito en el response.

“hello, world mi niño”, para recordarle que arregle el postSonrisa.

6. Si haces todas estás cosas y te vas al explorar puedes ver el resultado.

hellogo

7. No pienses que solamente puedes ejecutar un programa “Go” con la instrucción “go run HelloWorld.go” sino que puedes crear un ejecutable e imagino que se puede alojar en Azure. Pero eso lo dejaremos para el próximo capítulo. Para ello tienes que teclear la siguiente instrucción.

“go build HelloWorld.go” y en este momento puedes ver como 378 bytes se convierten en un .exe que puedo desplegar y ejecutar en diferentes plataformas ,simplemente como todos sabéis tecleando.

“HelloWorld”

Eso si con un crecimiento considerable tal y como os muestro.

Y yo “luchando por un byte

gordito

Para los amantes de c# donde me incluyo voy a hacer una pequeña comparativa.

Go c#
package main namespace main{}
import (etc.etc.) using etc;

El resto como podéis observar se parece al “Hello World” de Node con lo cual ya todos sabéis interpretar lo que hace.

Una cosa que me tiene trastocado del lenguaje es que no hay clases pero si interfaces y sobre todo como podéis observar punteros, pero sin aritmética.

El mismo ejemplo pero con interfaces lo podéis ver en este link.

http://tour.golang.org/#57

Conclusiones.

Que prometo no ser muy pesado el próximo año. Pero al ver que era un binario sin dependencias y que puedo hacer correr en diferentes plataformas.He aparcado de momento la idea de aprender phyton en detrimento de Go. Ves Eduard como paso de la recluta del Linkedin Sonrisa.

En este último link podéis hacer un tour introductorio que yo por las noches ejecuto y estudio desde mi flamante Nokia Lumia 8210, vamos que no necesito para estudiar y estar en el sofá ningún IPad Sonrisa.

Se me olvidaba lo más importante, este año en el #yonodetuxaml voy a hacer la demo del año pasado pero este año funciona, que ya no tengo instalado el IE9 por suerte y ningún listillo me va a poder decir “ejecútalo en IE9”.

Deja un comentario

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