SlideShare a Scribd company logo
1 of 18
Go
Rodolfo Finochietti
Chief Delivery Officer
@rodolfof
rodolfof@lagash.com
Most popular languages
https://insights.stackoverflow.com/survey/2018
Most popular (programming) languages
https://insights.stackoverflow.com/survey/2018
Most loved languages
https://insights.stackoverflow.com/survey/2018
¿Por que otro lenguaje de programación?
• El mundo corre en *nix
• Programar “software de sistema” es difícil
• Las computadoras tiene muchos núcleos
• Hoy en día un lenguaje de programación es mas que solo un compilador
• Manejo de librerías y dependencias
• Velocidad para compilar
• Facilidad para programar
• Testing
• Sin Friccion
Quienes
Rob Pike
• Bell Labs
• 1. Unix-Version
• Plan 9
• UTF-8
Ken Thompson
• Bell Labs
• 1. Unix-Version
• 1. Shell
• UTF-8
Robert Griesemer
• Google’s V8
• Java HotSpot
The Go Gopher
https://blog.golang.org/gopher
Premisas
• Multi-plataforma
• No corre en una maquina virtual
• Estático
• Type-safe / Memory-safe
• Garbage Collector
• Compilación rápida
Características
• “Battery included”
• Net / Http
• IO
• Concurrency
• Testing framework
• Integración con Git
• Structs instead of classes
• No Inheritance
• No overloading
• Concurrency
• Multiple return values
Instalación
• Descargar desde http://golang.org/doc/install
• Untar/Unzip en un directorio
• Variables de entorno
• GOROOT => Directorio de instalación de Go
• GOPATH => Código y binarios fuera de $GOROOT
• El workplace del usuario
Structs
• Colección de campos tipados
• Pueden contener métodos
• Pero no son clases estrictamente hablando
• Go favorece la composición por sobre la herencia
• Structural Typing
• Como Duck Typing pero en tiempo de compilación
• Embedding
• The fragile base class problema
Concurrencia
• Go provee un mecanismo sencillo para crear un nuevo thread
• Usando el constructor go antes de una llamada a una función (Go-
Routines)
Channels
• Los Channels son los pipes para conectar goroutines concurrentes
• Sirven para enviar y recibir valores entre dos goroutines
Deploy
• El código escrito en Go se puede compilar a código binario que se
ejecuta sin un entorno de Go
• Go Tools
• go build
• Compila el código
• go install
• Compila el código y librerías, y lo instala el workplace del
usuario
Deploy enAzure Web Site (4 pasos)
1. Crear un nuevo Web Site en el portal deAzure
2. Instalar Go via la consola
 curl -O https://storage.googleapis.com/golang/go1.11.1.windows-386.zip
• Comprobar la ultima versión en https://golang.org/dl
 unzip go1.11.1.windows-386.zip
• No preocuparse si aparece el error Bad Request
3. Desplegar nuestro código
4. Crear un Web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
<httpPlatform processPath="d:homesitewwwrootgobingo.exe"
arguments="run d:homesitewwwrootserver.go"
startupTimeLimit="60">
<environmentVariables>
<environmentVariable name="GOROOT" value="d:homesitewwwrootgo" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
Azure SDK for Go
• https://github.com/Azure/azure-sdk-for-go
• Instalación
• go get -u github.com/Azure/azure-sdk-for-go/...
lagash.com
¿Preguntas?
Argentina | Buenos Aires
+54 (11) 4982 4185
info@lagash.com
Chile | Santiago de Chile
+56 (2) 2231 9428
info_chile@lagash.com
Colombia | Bogotá
+57 (1) 750 5276
info_colombia@lagash.com
México | México DF
+52 (55) 6394 0617
info_mexico@lagash.com
USA | Seattle - US
+1 844 4 Lagash
infousa@lagash.com
Uruguay | Montevideo
+598 2623 2546
info_uy@lagash.com
Let’s keep in touch

More Related Content

What's hot

Introducción a ASPNET vNext
Introducción a ASPNET vNextIntroducción a ASPNET vNext
Introducción a ASPNET vNext
Julito Avellaneda
 

What's hot (20)

Aplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalRAplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalR
 
APIs REST
APIs RESTAPIs REST
APIs REST
 
Azure IoT Hub
Azure IoT HubAzure IoT Hub
Azure IoT Hub
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
De escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincherasDe escritorio a Javascript, nuestra experiencia desde las trincheras
De escritorio a Javascript, nuestra experiencia desde las trincheras
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net
 
Net love open source v1.7
Net love open source v1.7Net love open source v1.7
Net love open source v1.7
 
Una visión multiplataforma con aspnet v next
Una visión multiplataforma con aspnet v nextUna visión multiplataforma con aspnet v next
Una visión multiplataforma con aspnet v next
 
IoT y Dispositivos
IoT y DispositivosIoT y Dispositivos
IoT y Dispositivos
 
Gestión de documentos Office desde nuestras apps .NET con Open XML SDK
Gestión de documentos Office desde nuestras apps .NET con Open XML SDKGestión de documentos Office desde nuestras apps .NET con Open XML SDK
Gestión de documentos Office desde nuestras apps .NET con Open XML SDK
 
Introducción a ASPNET vNext
Introducción a ASPNET vNextIntroducción a ASPNET vNext
Introducción a ASPNET vNext
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
 
Hablemos de .NET 6 y .NET MAUI
Hablemos de .NET 6 y .NET MAUIHablemos de .NET 6 y .NET MAUI
Hablemos de .NET 6 y .NET MAUI
 
Desarrollo Full Stack UAM.net
Desarrollo Full Stack UAM.netDesarrollo Full Stack UAM.net
Desarrollo Full Stack UAM.net
 
Introduccion a Python para la web
Introduccion a Python para la webIntroduccion a Python para la web
Introduccion a Python para la web
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Docker
DockerDocker
Docker
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
Visual studio codespaces + azure devops
Visual studio codespaces + azure devopsVisual studio codespaces + azure devops
Visual studio codespaces + azure devops
 

Similar to Go

BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012
Asier Marqués
 
Lenguaje de programción en internet
Lenguaje de programción en internetLenguaje de programción en internet
Lenguaje de programción en internet
lorenzosc1995
 

Similar to Go (20)

An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
 
Ventajas y desventajas de visual studio
Ventajas  y desventajas de visual studioVentajas  y desventajas de visual studio
Ventajas y desventajas de visual studio
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Flujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontendFlujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontend
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginx
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
ASP.NET 5 - DotNetters
ASP.NET 5 - DotNettersASP.NET 5 - DotNetters
ASP.NET 5 - DotNetters
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Docker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbdayDocker Birthday Peru #dockerbday
Docker Birthday Peru #dockerbday
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Codeigniter Frame Work Instalacion
Codeigniter Frame Work Instalacion Codeigniter Frame Work Instalacion
Codeigniter Frame Work Instalacion
 
Lenguaje de programción en internet
Lenguaje de programción en internetLenguaje de programción en internet
Lenguaje de programción en internet
 
Lenguaje de programción en internet
Lenguaje de programción en internetLenguaje de programción en internet
Lenguaje de programción en internet
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 

More from Rodolfo Finochietti

Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Rodolfo Finochietti
 

More from Rodolfo Finochietti (18)

Introduction to Rust language programming
Introduction to Rust language programmingIntroduction to Rust language programming
Introduction to Rust language programming
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Roslyn: el futuro de C#
Roslyn: el futuro de C#Roslyn: el futuro de C#
Roslyn: el futuro de C#
 
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNextMicrosoft 2014 Dev Plataform -  Roslyn -& ASP.NET vNext
Microsoft 2014 Dev Plataform - Roslyn -& ASP.NET vNext
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013
 
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
 
ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2
 
ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1
 
HTML5 Media Queries
HTML5 Media QueriesHTML5 Media Queries
HTML5 Media Queries
 
HTML5 Offline
HTML5 OfflineHTML5 Offline
HTML5 Offline
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
Desarrollo de aplicaciones Windows 8 Modern UI con Visual Studio 2012
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
 
Introducción a WPF
Introducción a WPFIntroducción a WPF
Introducción a WPF
 
HTML5 Geolocalizacion
HTML5 GeolocalizacionHTML5 Geolocalizacion
HTML5 Geolocalizacion
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Recently uploaded (15)

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Go

  • 1. Go Rodolfo Finochietti Chief Delivery Officer @rodolfof rodolfof@lagash.com
  • 3. Most popular (programming) languages https://insights.stackoverflow.com/survey/2018
  • 5. ¿Por que otro lenguaje de programación? • El mundo corre en *nix • Programar “software de sistema” es difícil • Las computadoras tiene muchos núcleos • Hoy en día un lenguaje de programación es mas que solo un compilador • Manejo de librerías y dependencias • Velocidad para compilar • Facilidad para programar • Testing • Sin Friccion
  • 6. Quienes Rob Pike • Bell Labs • 1. Unix-Version • Plan 9 • UTF-8 Ken Thompson • Bell Labs • 1. Unix-Version • 1. Shell • UTF-8 Robert Griesemer • Google’s V8 • Java HotSpot
  • 8. Premisas • Multi-plataforma • No corre en una maquina virtual • Estático • Type-safe / Memory-safe • Garbage Collector • Compilación rápida
  • 9. Características • “Battery included” • Net / Http • IO • Concurrency • Testing framework • Integración con Git • Structs instead of classes • No Inheritance • No overloading • Concurrency • Multiple return values
  • 10. Instalación • Descargar desde http://golang.org/doc/install • Untar/Unzip en un directorio • Variables de entorno • GOROOT => Directorio de instalación de Go • GOPATH => Código y binarios fuera de $GOROOT • El workplace del usuario
  • 11. Structs • Colección de campos tipados • Pueden contener métodos • Pero no son clases estrictamente hablando • Go favorece la composición por sobre la herencia • Structural Typing • Como Duck Typing pero en tiempo de compilación • Embedding • The fragile base class problema
  • 12. Concurrencia • Go provee un mecanismo sencillo para crear un nuevo thread • Usando el constructor go antes de una llamada a una función (Go- Routines)
  • 13. Channels • Los Channels son los pipes para conectar goroutines concurrentes • Sirven para enviar y recibir valores entre dos goroutines
  • 14. Deploy • El código escrito en Go se puede compilar a código binario que se ejecuta sin un entorno de Go • Go Tools • go build • Compila el código • go install • Compila el código y librerías, y lo instala el workplace del usuario
  • 15. Deploy enAzure Web Site (4 pasos) 1. Crear un nuevo Web Site en el portal deAzure 2. Instalar Go via la consola  curl -O https://storage.googleapis.com/golang/go1.11.1.windows-386.zip • Comprobar la ultima versión en https://golang.org/dl  unzip go1.11.1.windows-386.zip • No preocuparse si aparece el error Bad Request 3. Desplegar nuestro código 4. Crear un Web.config <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> </handlers> <httpPlatform processPath="d:homesitewwwrootgobingo.exe" arguments="run d:homesitewwwrootserver.go" startupTimeLimit="60"> <environmentVariables> <environmentVariable name="GOROOT" value="d:homesitewwwrootgo" /> </environmentVariables> </httpPlatform> </system.webServer> </configuration>
  • 16. Azure SDK for Go • https://github.com/Azure/azure-sdk-for-go • Instalación • go get -u github.com/Azure/azure-sdk-for-go/...
  • 18. Argentina | Buenos Aires +54 (11) 4982 4185 info@lagash.com Chile | Santiago de Chile +56 (2) 2231 9428 info_chile@lagash.com Colombia | Bogotá +57 (1) 750 5276 info_colombia@lagash.com México | México DF +52 (55) 6394 0617 info_mexico@lagash.com USA | Seattle - US +1 844 4 Lagash infousa@lagash.com Uruguay | Montevideo +598 2623 2546 info_uy@lagash.com Let’s keep in touch