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

Similar a Go, el lenguaje de Google

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
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicionalJuan J. Merelo
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go LangArkhotech
 

Similar a Go, el lenguaje de Google (20)

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
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicional
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Groovy
GroovyGroovy
Groovy
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 

Más de JM Robles

FlutterConf: Accessibility on Flutter
FlutterConf: Accessibility on FlutterFlutterConf: Accessibility on Flutter
FlutterConf: Accessibility on FlutterJM Robles
 
XXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasXXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasJM Robles
 
18º Betabeers Granada: Cómo hacer un BOT para Facebook y Battever
18º Betabeers Granada:  Cómo hacer un BOT para Facebook y Battever18º Betabeers Granada:  Cómo hacer un BOT para Facebook y Battever
18º Betabeers Granada: Cómo hacer un BOT para Facebook y BatteverJM Robles
 
8º Betabeers Granada: Agresso ERP PoC por Unit4
8º Betabeers Granada: Agresso ERP PoC por Unit48º Betabeers Granada: Agresso ERP PoC por Unit4
8º Betabeers Granada: Agresso ERP PoC por Unit4JM Robles
 
8º Betabeers Granada: Android Wear por GDG Granada
8º Betabeers Granada: Android Wear por GDG Granada8º Betabeers Granada: Android Wear por GDG Granada
8º Betabeers Granada: Android Wear por GDG GranadaJM Robles
 
8º Betabeers Granada: Android Wear y sus smartwatches
8º Betabeers Granada: Android Wear y sus smartwatches8º Betabeers Granada: Android Wear y sus smartwatches
8º Betabeers Granada: Android Wear y sus smartwatchesJM Robles
 
APis REST: Parse
APis REST: ParseAPis REST: Parse
APis REST: ParseJM Robles
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y GoJM Robles
 
4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirus
4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirus4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirus
4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirusJM Robles
 
Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...
Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...
Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...JM Robles
 
Inside Hitsbook por Javier Nievas - 3º Betabeers Granada
Inside Hitsbook por Javier Nievas - 3º Betabeers GranadaInside Hitsbook por Javier Nievas - 3º Betabeers Granada
Inside Hitsbook por Javier Nievas - 3º Betabeers GranadaJM Robles
 
Desarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers Granada
Desarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers GranadaDesarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers Granada
Desarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers GranadaJM Robles
 
Obsso: Cambiar is the new Comprar
Obsso: Cambiar is the new ComprarObsso: Cambiar is the new Comprar
Obsso: Cambiar is the new ComprarJM Robles
 
Giftday: la App para saber qué regalar
Giftday: la App para saber qué regalarGiftday: la App para saber qué regalar
Giftday: la App para saber qué regalarJM Robles
 
La Oficina de Software Libre de la Universidad de Granada
La Oficina de Software Libre de la Universidad de GranadaLa Oficina de Software Libre de la Universidad de Granada
La Oficina de Software Libre de la Universidad de GranadaJM Robles
 
Google App Engine como backend de apps mobile
Google App Engine como backend de apps mobileGoogle App Engine como backend de apps mobile
Google App Engine como backend de apps mobileJM Robles
 
1º Betabeers granada
1º Betabeers granada1º Betabeers granada
1º Betabeers granadaJM Robles
 
Tecnología NFC - Betabeers
Tecnología NFC - BetabeersTecnología NFC - Betabeers
Tecnología NFC - BetabeersJM Robles
 

Más de JM Robles (18)

FlutterConf: Accessibility on Flutter
FlutterConf: Accessibility on FlutterFlutterConf: Accessibility on Flutter
FlutterConf: Accessibility on Flutter
 
XXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedasXXV Betabeers Granada: Blockchain, más allá de las criptomonedas
XXV Betabeers Granada: Blockchain, más allá de las criptomonedas
 
18º Betabeers Granada: Cómo hacer un BOT para Facebook y Battever
18º Betabeers Granada:  Cómo hacer un BOT para Facebook y Battever18º Betabeers Granada:  Cómo hacer un BOT para Facebook y Battever
18º Betabeers Granada: Cómo hacer un BOT para Facebook y Battever
 
8º Betabeers Granada: Agresso ERP PoC por Unit4
8º Betabeers Granada: Agresso ERP PoC por Unit48º Betabeers Granada: Agresso ERP PoC por Unit4
8º Betabeers Granada: Agresso ERP PoC por Unit4
 
8º Betabeers Granada: Android Wear por GDG Granada
8º Betabeers Granada: Android Wear por GDG Granada8º Betabeers Granada: Android Wear por GDG Granada
8º Betabeers Granada: Android Wear por GDG Granada
 
8º Betabeers Granada: Android Wear y sus smartwatches
8º Betabeers Granada: Android Wear y sus smartwatches8º Betabeers Granada: Android Wear y sus smartwatches
8º Betabeers Granada: Android Wear y sus smartwatches
 
APis REST: Parse
APis REST: ParseAPis REST: Parse
APis REST: Parse
 
APIs REST: Django y Go
APIs REST: Django y GoAPIs REST: Django y Go
APIs REST: Django y Go
 
4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirus
4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirus4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirus
4º Betabeers Granada: De pelis 3D, máquinas recretivas y antivirus
 
Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...
Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...
Greyman: desarrollando videojuegos y animaciones 3D espectaculares - 3º Betab...
 
Inside Hitsbook por Javier Nievas - 3º Betabeers Granada
Inside Hitsbook por Javier Nievas - 3º Betabeers GranadaInside Hitsbook por Javier Nievas - 3º Betabeers Granada
Inside Hitsbook por Javier Nievas - 3º Betabeers Granada
 
Desarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers Granada
Desarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers GranadaDesarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers Granada
Desarrollo colaborativo con GIT por @jjmerelo - 3º Betabeers Granada
 
Obsso: Cambiar is the new Comprar
Obsso: Cambiar is the new ComprarObsso: Cambiar is the new Comprar
Obsso: Cambiar is the new Comprar
 
Giftday: la App para saber qué regalar
Giftday: la App para saber qué regalarGiftday: la App para saber qué regalar
Giftday: la App para saber qué regalar
 
La Oficina de Software Libre de la Universidad de Granada
La Oficina de Software Libre de la Universidad de GranadaLa Oficina de Software Libre de la Universidad de Granada
La Oficina de Software Libre de la Universidad de Granada
 
Google App Engine como backend de apps mobile
Google App Engine como backend de apps mobileGoogle App Engine como backend de apps mobile
Google App Engine como backend de apps mobile
 
1º Betabeers granada
1º Betabeers granada1º Betabeers granada
1º Betabeers granada
 
Tecnología NFC - Betabeers
Tecnología NFC - BetabeersTecnología NFC - Betabeers
Tecnología NFC - Betabeers
 

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