Primeros pasos programando en Go

Como escribimos con anterioridad, este Blog está hecho con Jekyll (Ruby) y mucho amor. Nuestro flujo de trabajo toma otro curso y nos lleva ahora a un reciente lenguaje de programación en el que damos nuestros primeros pasos, Go (‘golang’)

En el enlace a Wikipedia anterior puedes ver las características básicas de Go . En su día aprendimos C , C++ … y con el tiempo el popular Python . Cuentan que Go se inspira tanto en C como en Python (entre otros), queriendo subsanar inconsistencias de C++. Cada cual, naturalmente, usa lo que más útil le resulte… en su caso de uso.

El caso es que un hacker como Eric Raymond, tras 20 años trabajando a fondo con Python comparte su reciente preferencia por lenguajes como Rust y Go . Éste último (en el que nos centramos acá), es su elección para… :

“[..]todo lo relacionado con servicios Internet tradicionales (service daemon)” .- ESR

Así pues retomamos la vieja canción, como inspiración

« No guru,

No method,

No teacher...»

  .- Van Morrison - _'In the Garden'_

Y al sonar la música tecleo :

echo 'Ha llegado la hora de alzar el vuelo de nuevo ?'

Este blogpost (el primero de esta serie) es una declaración de intenciones a la hora de migrar este pequeño espacio a Web a la herramienta Hugo (basada en Go ).

Al final, a modo ilustrativo, (más abajo) dejo nuestras primeras líneas de en _Go_ (un simple servidor Web / http ), extraídos del libro [|] _'Let's Go'_ .

Have Fun A disfrutar :-)

Recursos online :

Http

Pd: código fuente

// "Let's Go" - book - http server
// Snippetbox Project

package main

import (
	"log"
	"net/http"
	)

	// Define a home handler function which writes a byte slice containing
        // "Hello from Snippetbox" as the response body.

func home(w http.ResponseWriter, r *http.Request){
     w.Write([]byte("Hola Snippetbox"))
     }


func main() {
    // Use the http.NewServeMux() function to initialize a new servemux, then
    // register the home function as the handler for the "/" URL pattern.
    mux := http.NewServeMux()
    mux.HandleFunc("/", home)


    // Use the http.ListenAndServe() function to start a new web server. We pass in
    // two parameters: the TCP network address to listen on (in this case ":4000")
    // and the servemux we just created. If http.ListenAndServe() returns an error
    // we use the log.Fatal() function to log the error message and exit. Note
    // that any error returned by http.ListenAndServe() is always non-nil.





    log.Println("Starting server on :4000")
    err := http.ListenAndServe(":4000", mux)
    log.Fatal(err)

}