SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
2012-05-17T06:21:13.598Z




Go: El lenguaje de Google
La flexibilidad de Python con la rapidez del
               código máquina



                                          @jmrobles
README.txt
- ¿Por qué?
- Primeros pasos, Go go go!
- Vistazo rápido
- Paquetes para todo
- Marchando un webserver!
- ¿Quién usa esto?
- No todo es tan bonito
- ¡Me lo quedo!
- The 6W
¿Por qué?
                                                       BSD License



-


-               =                                  +
                simplicidad / flexibilidad / RAD            eficiencia


     Go 0                                                    Go 1


      11/2009   2010              2011             2012       03/2012
                                                                   
Primeros pasos, Go go go!
- Benchmark* servidor web

                               VS
- Apache Benchmark                            Go fue un 119% más rápido que Python
  % ab -n 40000 -c 8 http://localhost:port/
Vistazo rápido
- "Sintaxis conocida"
   if , for, switch, package                         pthread
                                            C/C++
- ... pero peculiar:
          var i int
          for i = 0; i < n ; i++ {
                    fmt.Println(i)
          }
                                                     threading
- Go es concurrente: CSP                    Python

           miCanal := make(chan string)
           go func() {
               miCanal <- "desde el hilo"
           }()
           fmt.Println(<- miCanal)
Cgo
Paquetes para todo
- Nativo
                                  net/http                html/template             crypto/aes
            compress/
              gzip                      encoding/
                                          json                 os/exec             net/mail

  reflect
                        runtime
                                             math/big                                   image/jpeg
                                                                unicode
- Comunidad
                        gomysql
 gosqlite3                                     pulsego               gomongo
                                                                                          pdfreader
               go-python
                                                              yaml
                                         go-curl
                                                                                   gl
 web.go
                         gooauth                mustache.go
                                                                          Rocket
Marchando un webserver!
                      Pasos:
                      1. Instalar Go
                      (descomprimir un zip)
                      2. Establecer variables
                      de entorno GOROOT y
                      PATH
                      3. Abrir shell y copiar el
                      ejemplo
                      4. Obtener
                      dependencias
                           % go get
                      5. Compilar
                           % go build
                      6. Voilá!

                          ¡46 líneas!
¿Quién usa esto?
-                  MapReduce

-

- Stat Hat
- Airbrake
- Canonical
- Novartis
- ...
No todo es tan bonito
- Binarios gordos


                                    3,4 MB

- "Alergia"

- Garbage collector

- Generics
                      interface{}
¡Me lo quedo!
  - Quiero empezar con Go

                                                        play.golang.org




                                                co
                                           po
                                       un
                                     ar
                                 jug
                                                        e Download , install & go
                                                  m
                                lo
                                                ar         tour
                                             ici
                                Só
                                           In

                                      ra          l día       groups.google.com/groups/golang-nuts
                                 Esta
  golang.org
                                 En
                                      la
                                           nu
                                                be
                                                     developers.google.com/appengine/doc/go/overview
                                     Po
                                       rta
                                          rm
                                                i lib
                                                     rer
                                                      ía
                                                        fav




gnu/linux   windows   mac osx
                                                           ori
                                                            ta*




                                                                 godashboard.appspot.com/project & Cgo
  x86       x86_64     arm
The 6W
- ¿Qué?
   Lenguaje flexible como Python con la eficiencia de C
- ¿Quién?
   Google y la comunidad de SL
- ¿Donde?
    golang.org
- ¿Cómo?
   Compilando y optimizando el código
- ¿Cuándo?
   Go 1, Marzo 2012
- ¿Por qué?
 Desarrollar más rápido, ejecutar con menos recursos
¡Muchas gracias a todxs!




+ Info:
                                  Presentación QR-disponible

    @jmrobles
 
    robleshermoso.wordpress.com

Más contenido relacionado

Destacado

Los mejores Campos de Golf de Nueva zelanda
Los mejores Campos de Golf de Nueva zelandaLos mejores Campos de Golf de Nueva zelanda
Los mejores Campos de Golf de Nueva zelandaLola Paso
 
Activitat final de 5 punts
Activitat final de 5 puntsActivitat final de 5 punts
Activitat final de 5 puntsDaisoujou
 
Primer consenso argentino de trastornos neurocognitivos asociados al vih 01...
Primer consenso argentino de trastornos neurocognitivos asociados al vih   01...Primer consenso argentino de trastornos neurocognitivos asociados al vih   01...
Primer consenso argentino de trastornos neurocognitivos asociados al vih 01...Gustavo Kasparas
 
Internet
InternetInternet
Internetgrevi
 
Repositorios digitales
Repositorios digitalesRepositorios digitales
Repositorios digitalesCarola Morayta
 
Bachillerato en linea
Bachillerato en lineaBachillerato en linea
Bachillerato en lineaUmed Morelos
 
Historia del béisbol en venezuela
Historia del béisbol en venezuelaHistoria del béisbol en venezuela
Historia del béisbol en venezuelaMarxis Lozada
 
Diapositivas baldomero 2
Diapositivas baldomero 2Diapositivas baldomero 2
Diapositivas baldomero 2edisoncontento
 
Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010
Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010
Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010Fundacion Caribe Sur
 
Tecnología de la información
Tecnología de la informaciónTecnología de la información
Tecnología de la informaciónFabian Novoa
 
Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...
Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...
Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...MarketingThinkers
 

Destacado (20)

Los mejores Campos de Golf de Nueva zelanda
Los mejores Campos de Golf de Nueva zelandaLos mejores Campos de Golf de Nueva zelanda
Los mejores Campos de Golf de Nueva zelanda
 
Activitat final de 5 punts
Activitat final de 5 puntsActivitat final de 5 punts
Activitat final de 5 punts
 
Primer consenso argentino de trastornos neurocognitivos asociados al vih 01...
Primer consenso argentino de trastornos neurocognitivos asociados al vih   01...Primer consenso argentino de trastornos neurocognitivos asociados al vih   01...
Primer consenso argentino de trastornos neurocognitivos asociados al vih 01...
 
Internet
InternetInternet
Internet
 
Ciclo.krebs otro
Ciclo.krebs otroCiclo.krebs otro
Ciclo.krebs otro
 
Repositorios digitales
Repositorios digitalesRepositorios digitales
Repositorios digitales
 
Tarea patricia
Tarea patriciaTarea patricia
Tarea patricia
 
Bachillerato en linea
Bachillerato en lineaBachillerato en linea
Bachillerato en linea
 
Historia del béisbol en venezuela
Historia del béisbol en venezuelaHistoria del béisbol en venezuela
Historia del béisbol en venezuela
 
Diapositivas baldomero 2
Diapositivas baldomero 2Diapositivas baldomero 2
Diapositivas baldomero 2
 
Planificación 2
Planificación 2Planificación 2
Planificación 2
 
Comisiones en su iglesia
Comisiones en su iglesiaComisiones en su iglesia
Comisiones en su iglesia
 
Vive Digital Andicom 2013
Vive Digital Andicom 2013Vive Digital Andicom 2013
Vive Digital Andicom 2013
 
Cuerpos geométricos
Cuerpos geométricosCuerpos geométricos
Cuerpos geométricos
 
Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010
Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010
Caribe Sur Paradojas y Retos Desarrollo S. seminario AEPA Paraguana 2010
 
La tecnología
La tecnologíaLa tecnología
La tecnología
 
Portafolio3 abbv
Portafolio3 abbvPortafolio3 abbv
Portafolio3 abbv
 
Tecnología de la información
Tecnología de la informaciónTecnología de la información
Tecnología de la información
 
Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...
Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...
Club MarketingThinkers: Reinventando la moda, desde la esencia al contexto, t...
 
proceso de licenciamiento UIT
proceso de licenciamiento UITproceso de licenciamiento UIT
proceso de licenciamiento UIT
 

Similar a Introducción a Go: el lenguaje de Google

Python con baterias incluídas
Python con baterias incluídasPython con baterias incluídas
Python con baterias incluídasj3nnn1
 
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaCommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
 
Django on Jython Summer of Code Results
Django on Jython Summer of Code ResultsDjango on Jython Summer of Code Results
Django on Jython Summer of Code ResultsLeonardo Soto
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaDani Latorre
 
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008javier ramirez
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
04 taller-django
04 taller-django04 taller-django
04 taller-djangosamerscd
 
Distribucion_aplicaciones
Distribucion_aplicacionesDistribucion_aplicaciones
Distribucion_aplicacionesJuanjo Marin
 
Comprendiendo gnome
Comprendiendo gnomeComprendiendo gnome
Comprendiendo gnomeJuanjo Marin
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...Iván López Martín
 
GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008Dani Latorre
 
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Iván López Martín
 
Jupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datosJupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datosSoftware Guru
 

Similar a Introducción a Go: el lenguaje de Google (20)

Python con baterias incluídas
Python con baterias incluídasPython con baterias incluídas
Python con baterias incluídas
 
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaCommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
 
Django on Jython Summer of Code Results
Django on Jython Summer of Code ResultsDjango on Jython Summer of Code Results
Django on Jython Summer of Code Results
 
Introducción a groovy
Introducción a groovyIntroducción a groovy
Introducción a groovy
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
 
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
Javier.Ramirez.Rails.Hot.Or.Not.Conferenciarails2008
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
04 taller-django
04 taller-django04 taller-django
04 taller-django
 
JRuby Al Rescate J2EE
JRuby Al Rescate J2EEJRuby Al Rescate J2EE
JRuby Al Rescate J2EE
 
Distribucion_aplicaciones
Distribucion_aplicacionesDistribucion_aplicaciones
Distribucion_aplicaciones
 
Comprendiendo gnome
Comprendiendo gnomeComprendiendo gnome
Comprendiendo gnome
 
Introducción a ROS
Introducción a ROSIntroducción a ROS
Introducción a ROS
 
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
101 Panel Tech Days - Spock: O por qué deberías utilizarlo para testear tu có...
 
Yo solo te pedí un plátano
Yo solo te pedí un plátanoYo solo te pedí un plátano
Yo solo te pedí un plátano
 
GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008GHOP - GSoC Campus Party 2008
GHOP - GSoC Campus Party 2008
 
Introduccion a Groovy
Introduccion a GroovyIntroduccion a Groovy
Introduccion a Groovy
 
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
 
Jupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datosJupyter e IPython para manipulación de datos
Jupyter e IPython para manipulación de datos
 

Más de betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

Más de betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

Introducción a Go: el lenguaje de Google

  • 1. 2012-05-17T06:21:13.598Z Go: El lenguaje de Google La flexibilidad de Python con la rapidez del código máquina @jmrobles
  • 2. README.txt - ¿Por qué? - Primeros pasos, Go go go! - Vistazo rápido - Paquetes para todo - Marchando un webserver! - ¿Quién usa esto? - No todo es tan bonito - ¡Me lo quedo! - The 6W
  • 3. ¿Por qué? BSD License - - = + simplicidad / flexibilidad / RAD eficiencia Go 0 Go 1 11/2009 2010 2011 2012 03/2012        
  • 4. Primeros pasos, Go go go! - Benchmark* servidor web VS - Apache Benchmark Go fue un 119% más rápido que Python % ab -n 40000 -c 8 http://localhost:port/
  • 5. Vistazo rápido - "Sintaxis conocida" if , for, switch, package pthread C/C++ - ... pero peculiar: var i int for i = 0; i < n ; i++ { fmt.Println(i) } threading - Go es concurrente: CSP Python miCanal := make(chan string) go func() { miCanal <- "desde el hilo" }() fmt.Println(<- miCanal)
  • 6. Cgo Paquetes para todo - Nativo net/http html/template crypto/aes compress/ gzip encoding/ json os/exec net/mail reflect runtime math/big image/jpeg unicode - Comunidad gomysql gosqlite3 pulsego gomongo pdfreader go-python yaml go-curl gl web.go gooauth mustache.go Rocket
  • 7. Marchando un webserver! Pasos: 1. Instalar Go (descomprimir un zip) 2. Establecer variables de entorno GOROOT y PATH 3. Abrir shell y copiar el ejemplo 4. Obtener dependencias % go get 5. Compilar % go build 6. Voilá! ¡46 líneas!
  • 8. ¿Quién usa esto? - MapReduce - - Stat Hat - Airbrake - Canonical - Novartis - ...
  • 9. No todo es tan bonito - Binarios gordos 3,4 MB - "Alergia" - Garbage collector - Generics interface{}
  • 10. ¡Me lo quedo! - Quiero empezar con Go play.golang.org co po un ar jug e Download , install & go m lo ar tour ici Só In ra l día groups.google.com/groups/golang-nuts Esta golang.org En la nu be developers.google.com/appengine/doc/go/overview Po rta rm i lib rer ía fav gnu/linux windows mac osx ori ta* godashboard.appspot.com/project & Cgo x86 x86_64 arm
  • 11. The 6W - ¿Qué? Lenguaje flexible como Python con la eficiencia de C - ¿Quién? Google y la comunidad de SL - ¿Donde? golang.org - ¿Cómo? Compilando y optimizando el código - ¿Cuándo? Go 1, Marzo 2012 - ¿Por qué? Desarrollar más rápido, ejecutar con menos recursos
  • 12. ¡Muchas gracias a todxs! + Info: Presentación QR-disponible @jmrobles   robleshermoso.wordpress.com