SlideShare a Scribd company logo
1 of 71
Download to read offline
golang 
the one language you have to try in 2014
golang 
the one language you have to try in 2014
Andrzej Grzesik 
! 
! 
! 
@ags313 
andrzej@grzesik.it 
andrzejgrzesik.info
about:me
dev going deeper
disclaimers
my opinions are my own
I hate computers
questions? 
shoot!
golang
gopher
free and open source
BSD licensed
comes from G
FAST 
and I mean FAST
tl;dr; 
C++ and ruby had a wild time
play with it tonight
so, why do I like go?
no runtime dependencies!
more pleasant than C
go toolchain
go command
most important thing
there is only one formatting
package main! 
! 
import "fmt"! 
! 
func main() {! 
!fmt.Println("Hello world")! 
}!
types
types 
• uint8, uint16, uint32, uint64 
• int8, int16, int32, int64 
• float32, float64 
• complex64, complex128 
• byte alias for uint8 
• rune alias for int32 
• string
func program() {! 
var text! 
text = “zomg"! 
more := "zomg"! 
! 
fmt.Println(len(text));! 
}!
maps
func main() {! 
attendees := map[string]bool{! 
"Phil": true,! 
"Marcin": true,! 
}! 
! 
fmt.Println(attendees["Phil"]) // true! 
fmt.Println(attendees["ags"]) // false! 
partygoers["ags"] = true! 
fmt.Println(attendees["ags"]) // true! 
}!
structs
type Rectangle struct {! 
a, b int32! 
}! 
! 
func main() {! 
var rect Rectangle! 
rect = Rectangle{5, 10}! 
rect = Rectangle{a: 10, b: 5}! 
! 
HasArea(s).Area()! 
}
type Square struct {! 
side int32! 
}! 
! 
func (sq Square) Area() int32 {! 
return sq.side * sq.side! 
}! 
! 
func main() {! 
s := Square{16}! 
area := s.Area()! 
}
interfaces
type Square struct {! 
side int32! 
}! 
! 
func (sq Square) Area() int32 {! 
return sq.side * sq.side! 
}! 
! 
type HasArea interface {! 
Area() int32! 
}! 
! 
func main() {! 
s := Square{16}! 
HasArea(s).Area()! 
}
goroutines 
lightweight threads
func f(i int) {! 
amt := rand.Intn(1000)! 
time.Sleep(time.Duration(amt) * time.Millisecond)! 
fmt.Println(i)! 
}! 
! 
func main() {! 
for i := 0; i < 3; i++ {! 
go f(i)! 
}! 
var input string! 
fmt.Scanln(&input)! 
}
how many will run? 
runtime.GOMAXPROCS(4)
channels
channels 
• communicate between funcs 
• typed 
• thread-safe
channels 
channel := make(chan int)!
unbuffered channels 
• sync 
• will wait when empty
buffered channels 
channel := make(chan int, size)!
buffered channels 
• async 
• return 0 element when empty 
• will only wait when full
basics 
channel := make(chan int)! 
c <- a! 
! 
<- c! 
! 
a = <- c! 
! 
a, ok = <- c!
func program() {! 
channel := make(chan int) ! 
}! 
! 
func from(connection chan int) {! 
connection <- rand.Intn(255)! 
}! 
! 
func to(connection chan int) {! 
i := <- connection! 
fmt.Println(“much received", i)! 
}!
but that’s not cool yet
coordinate routines
func program() {! 
channel := make(chan int) ! 
! 
go func() {! 
close(channel)! 
// or! 
channel <- anything! 
}()! 
! 
<- channel! 
}!
func program() {! 
latch := make(chan int) ! 
! 
go worker()! 
close(latch)! 
}! 
! 
func worker() {! 
<- latch ! 
}!
generators
id := make(chan int64)! 
go func() {! 
var counter int64 = 0! 
for {! 
id <- counter! 
counter += 1! 
} ! 
}()
multiple channels at once!
func program() {! 
select {! 
case a := <- channel! 
! 
case b, mkay := other! 
! 
case output <- z! 
! 
default:! 
}! 
}!
ranges
func fillIn(channel chan int) {! 
channel <- 1! 
channel <- 2! 
channel <- 4! 
close(channel)! 
}! 
! 
func main() {! 
channel := make(chan int)! 
go fillIn(channel)! 
! 
for s := range channel {! 
fmt.Printf("%d n", s)! 
}! 
}
packages
[18:48][agrzesik@melmac:~/vcs/talks/go/hello]! 
$ find .! 
.! 
./bin! 
./bin/main! 
./pkg! 
./pkg/darwin_amd64! 
./pkg/darwin_amd64/hello.a! 
./src! 
./src/hello! 
./src/hello/hello.go! 
./src/main! 
./src/main/.main.go.swp! 
./src/main/main.go!
import (! 
"code.google.com/p/go.net/websocket"! 
"fmt"! 
"net/http"! 
)!
go get
net
echo server
const listenAddr = "localhost:4000"! 
! 
func main() {! 
l, err := net.Listen("tcp", listenAddr)! 
if err != nil {! 
log.Fatal(err)! 
}! 
for {! 
c, err := l.Accept()! 
if err != nil {! 
log.Fatal(err)! 
}! 
io.Copy(c, c)! 
}! 
}
concurrent echo server
const listenAddr = "localhost:4000"! 
! 
func main() {! 
l, err := net.Listen("tcp", listenAddr)! 
if err != nil {! 
log.Fatal(err)! 
}! 
for {! 
c, err := l.Accept()! 
if err != nil {! 
log.Fatal(err)! 
}! 
go io.Copy(c, c)! 
}! 
}
const listenAddr = "localhost:4000"! 
! 
func main() {! 
l, err := net.Listen("tcp", listenAddr)! 
if err != nil {! 
log.Fatal(err)! 
}! 
for {! 
c, err := l.Accept()! 
if err != nil {! 
log.Fatal(err)! 
}! 
io.Copy(c, c)! 
}! 
}
websockets?
func main() {! 
http.Handle("/", websocket.Handler(handler))! 
http.ListenAndServe("localhost:1984", nil)! 
}! 
! 
func handler(c *websocket.Conn) {! 
var s string! 
fmt.Fscan(c, &s)! 
fmt.Println("Received:", s)! 
fmt.Fprint(c, “hey!”)! 
}!
so, what looks bad?
type AssetMetas struct {! 
! Metas []AssetMeta `json:"assetMetas"`! 
}! 
! 
type AssetMeta struct {! 
! ResourceName string `json:"resource_name"`! 
! Md5 string `json:"md5"`! 
! Urls []string `json:"urls"`! 
}!
so, go code!

More Related Content

What's hot

Why Zsh is Cooler than Your Shell
Why Zsh is Cooler than Your ShellWhy Zsh is Cooler than Your Shell
Why Zsh is Cooler than Your Shelljaguardesignstudio
 
جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲
جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲
جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲Mohammad Reza Kamalifard
 
Cool Git Tricks (That I Learn When Things Go Badly) [1/2]
Cool Git Tricks (That I Learn When Things Go Badly) [1/2]Cool Git Tricks (That I Learn When Things Go Badly) [1/2]
Cool Git Tricks (That I Learn When Things Go Badly) [1/2]Carina C. Zona
 
Zsh shell-for-humans
Zsh shell-for-humansZsh shell-for-humans
Zsh shell-for-humansJuan De Bravo
 
Introducing gitfs
Introducing gitfsIntroducing gitfs
Introducing gitfsTemian Vlad
 
Goの標準的な開発の流れ
Goの標準的な開発の流れGoの標準的な開発の流れ
Goの標準的な開発の流れRyuji Iwata
 
Class 1: Welcome to programming
Class 1: Welcome to programmingClass 1: Welcome to programming
Class 1: Welcome to programmingMarc Gouw
 
Pari sekalaista diaa ja F#-Referenssejä
Pari sekalaista diaa ja F#-ReferenssejäPari sekalaista diaa ja F#-Referenssejä
Pari sekalaista diaa ja F#-ReferenssejäTuomas Hietanen
 
Python 3 Compatibility (PyCon 2009)
Python 3 Compatibility (PyCon 2009)Python 3 Compatibility (PyCon 2009)
Python 3 Compatibility (PyCon 2009)Lennart Regebro
 
Bash in theory and in practice - part two
Bash in theory and in practice - part twoBash in theory and in practice - part two
Bash in theory and in practice - part twoValerio Balbi
 
5 Time Saving Bash Tricks
5 Time Saving Bash Tricks5 Time Saving Bash Tricks
5 Time Saving Bash TricksNikhil Mungel
 
Zsh & fish: better *bash* for hackers
Zsh & fish: better *bash* for hackersZsh & fish: better *bash* for hackers
Zsh & fish: better *bash* for hackersRuslan Sharipov
 
Bash in theory and in practice - part one
Bash in theory and in practice - part oneBash in theory and in practice - part one
Bash in theory and in practice - part oneValerio Balbi
 

What's hot (20)

Git Quick Intro
Git Quick IntroGit Quick Intro
Git Quick Intro
 
Bash 4
Bash 4Bash 4
Bash 4
 
Why Zsh is Cooler than Your Shell
Why Zsh is Cooler than Your ShellWhy Zsh is Cooler than Your Shell
Why Zsh is Cooler than Your Shell
 
جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲
جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲
جلسه ششم پایتون برای هکر های قانونی دوره مقدماتی پاییز ۹۲- ارائه ۲
 
Cool Git Tricks (That I Learn When Things Go Badly) [1/2]
Cool Git Tricks (That I Learn When Things Go Badly) [1/2]Cool Git Tricks (That I Learn When Things Go Badly) [1/2]
Cool Git Tricks (That I Learn When Things Go Badly) [1/2]
 
Noc os v.4.0
Noc os v.4.0Noc os v.4.0
Noc os v.4.0
 
Zsh shell-for-humans
Zsh shell-for-humansZsh shell-for-humans
Zsh shell-for-humans
 
Introducing gitfs
Introducing gitfsIntroducing gitfs
Introducing gitfs
 
Goの標準的な開発の流れ
Goの標準的な開発の流れGoの標準的な開発の流れ
Goの標準的な開発の流れ
 
Class 1: Welcome to programming
Class 1: Welcome to programmingClass 1: Welcome to programming
Class 1: Welcome to programming
 
Pari sekalaista diaa ja F#-Referenssejä
Pari sekalaista diaa ja F#-ReferenssejäPari sekalaista diaa ja F#-Referenssejä
Pari sekalaista diaa ja F#-Referenssejä
 
conditional
conditionalconditional
conditional
 
Python 3 Compatibility (PyCon 2009)
Python 3 Compatibility (PyCon 2009)Python 3 Compatibility (PyCon 2009)
Python 3 Compatibility (PyCon 2009)
 
bash
bashbash
bash
 
Bash in theory and in practice - part two
Bash in theory and in practice - part twoBash in theory and in practice - part two
Bash in theory and in practice - part two
 
5 Time Saving Bash Tricks
5 Time Saving Bash Tricks5 Time Saving Bash Tricks
5 Time Saving Bash Tricks
 
Zsh & fish: better *bash* for hackers
Zsh & fish: better *bash* for hackersZsh & fish: better *bash* for hackers
Zsh & fish: better *bash* for hackers
 
Bash in theory and in practice - part one
Bash in theory and in practice - part oneBash in theory and in practice - part one
Bash in theory and in practice - part one
 
Unix study class_01
Unix study class_01Unix study class_01
Unix study class_01
 
01 linux basics
01 linux basics01 linux basics
01 linux basics
 

Viewers also liked

PLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data CenterPLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data CenterPROIDEA
 
PLNOG 13: Nicolai van der Smagt: SDN
PLNOG 13: Nicolai van der Smagt: SDNPLNOG 13: Nicolai van der Smagt: SDN
PLNOG 13: Nicolai van der Smagt: SDNPROIDEA
 
PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...
PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...
PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...PROIDEA
 
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł GrajewskiPROIDEA
 
PLNOG14: Internet w pojazdach - Paweł Wachelka
PLNOG14: Internet w pojazdach - Paweł WachelkaPLNOG14: Internet w pojazdach - Paweł Wachelka
PLNOG14: Internet w pojazdach - Paweł WachelkaPROIDEA
 
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian MalacaJDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian MalacaPROIDEA
 
4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...
4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...
4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...PROIDEA
 
PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...
PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...
PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...PROIDEA
 
PLNOG 13: Piotr Głaska: Quality of service monitoring in IP networks
PLNOG 13: Piotr Głaska: Quality of service monitoring in IP networksPLNOG 13: Piotr Głaska: Quality of service monitoring in IP networks
PLNOG 13: Piotr Głaska: Quality of service monitoring in IP networksPROIDEA
 
Radosław Ziemba: GPON or xWDM as technology for connecting business subscribes
Radosław Ziemba: GPON or xWDM as technology for connecting business subscribesRadosław Ziemba: GPON or xWDM as technology for connecting business subscribes
Radosław Ziemba: GPON or xWDM as technology for connecting business subscribesPROIDEA
 
JDD2014: The mythical 10x developer - Michał Gruca
JDD2014: The mythical 10x developer - Michał GrucaJDD2014: The mythical 10x developer - Michał Gruca
JDD2014: The mythical 10x developer - Michał GrucaPROIDEA
 
PLNOG 13: Jacek Wosz: User Defined Network
PLNOG 13: Jacek Wosz: User Defined NetworkPLNOG 13: Jacek Wosz: User Defined Network
PLNOG 13: Jacek Wosz: User Defined NetworkPROIDEA
 
JDD2014: Conversation patterns for software professionals - Michał Bartyzel
JDD2014: Conversation patterns for software professionals - Michał BartyzelJDD2014: Conversation patterns for software professionals - Michał Bartyzel
JDD2014: Conversation patterns for software professionals - Michał BartyzelPROIDEA
 
JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad
JDD2014: Spring 4, JAVA EE 7 or both? - Ivar GrimstadJDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad
JDD2014: Spring 4, JAVA EE 7 or both? - Ivar GrimstadPROIDEA
 
PLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacks
PLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacksPLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacks
PLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacksPROIDEA
 
PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...
PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...
PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...PROIDEA
 
JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...
JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...
JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...PROIDEA
 
PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...
PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...
PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...PROIDEA
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachPROIDEA
 
PLNOG15: Automation of deployment and management of network devices - Oskar J...
PLNOG15: Automation of deployment and management of network devices - Oskar J...PLNOG15: Automation of deployment and management of network devices - Oskar J...
PLNOG15: Automation of deployment and management of network devices - Oskar J...PROIDEA
 

Viewers also liked (20)

PLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data CenterPLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data Center
 
PLNOG 13: Nicolai van der Smagt: SDN
PLNOG 13: Nicolai van der Smagt: SDNPLNOG 13: Nicolai van der Smagt: SDN
PLNOG 13: Nicolai van der Smagt: SDN
 
PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...
PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...
PLNOG 13: Alexis Dacquay: Architectures for Universal Data Centre Networks, t...
 
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
 
PLNOG14: Internet w pojazdach - Paweł Wachelka
PLNOG14: Internet w pojazdach - Paweł WachelkaPLNOG14: Internet w pojazdach - Paweł Wachelka
PLNOG14: Internet w pojazdach - Paweł Wachelka
 
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian MalacaJDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
JDD2014: Code review - jak zyskać więcej niż tracić? - Sebastian Malaca
 
4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...
4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...
4Developers 2015: Enterprise makeover. Be a good web citizen, deliver continu...
 
PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...
PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...
PLNOG14: Evolved Programmable Network, architektura dla sieci operatorskich -...
 
PLNOG 13: Piotr Głaska: Quality of service monitoring in IP networks
PLNOG 13: Piotr Głaska: Quality of service monitoring in IP networksPLNOG 13: Piotr Głaska: Quality of service monitoring in IP networks
PLNOG 13: Piotr Głaska: Quality of service monitoring in IP networks
 
Radosław Ziemba: GPON or xWDM as technology for connecting business subscribes
Radosław Ziemba: GPON or xWDM as technology for connecting business subscribesRadosław Ziemba: GPON or xWDM as technology for connecting business subscribes
Radosław Ziemba: GPON or xWDM as technology for connecting business subscribes
 
JDD2014: The mythical 10x developer - Michał Gruca
JDD2014: The mythical 10x developer - Michał GrucaJDD2014: The mythical 10x developer - Michał Gruca
JDD2014: The mythical 10x developer - Michał Gruca
 
PLNOG 13: Jacek Wosz: User Defined Network
PLNOG 13: Jacek Wosz: User Defined NetworkPLNOG 13: Jacek Wosz: User Defined Network
PLNOG 13: Jacek Wosz: User Defined Network
 
JDD2014: Conversation patterns for software professionals - Michał Bartyzel
JDD2014: Conversation patterns for software professionals - Michał BartyzelJDD2014: Conversation patterns for software professionals - Michał Bartyzel
JDD2014: Conversation patterns for software professionals - Michał Bartyzel
 
JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad
JDD2014: Spring 4, JAVA EE 7 or both? - Ivar GrimstadJDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad
JDD2014: Spring 4, JAVA EE 7 or both? - Ivar Grimstad
 
PLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacks
PLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacksPLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacks
PLNOG 13: Paweł Kuśmierski: How Akamai and Prolexic mitigate (D)DoS attacks
 
PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...
PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...
PLNOG14: Ocena wydajności i bezpieczeństwa infrastruktury operatora telekomu...
 
JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...
JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...
JDD2015: In English Efficient HTTP applications on the JVM with Ratpack - Álv...
 
PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...
PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...
PLNOG15: How to effectively build the networks with 1.1 POPC programme? - Mar...
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
 
PLNOG15: Automation of deployment and management of network devices - Oskar J...
PLNOG15: Automation of deployment and management of network devices - Oskar J...PLNOG15: Automation of deployment and management of network devices - Oskar J...
PLNOG15: Automation of deployment and management of network devices - Oskar J...
 

Similar to JDD2014: GO! The one language you have to try in 2014 - Andrzej Grzesik

An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to GoCloudflare
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrencyjgrahamc
 
Go Containers
Go ContainersGo Containers
Go Containersjgrahamc
 
Crunching data with go: Tips, tricks, use-cases
Crunching data with go: Tips, tricks, use-casesCrunching data with go: Tips, tricks, use-cases
Crunching data with go: Tips, tricks, use-casesSergii Khomenko
 
Highlights of Go 1.1
Highlights of Go 1.1Highlights of Go 1.1
Highlights of Go 1.1Cloudflare
 
Highlights of Go 1.1
Highlights of Go 1.1Highlights of Go 1.1
Highlights of Go 1.1jgrahamc
 
Go for Rubyists
Go for RubyistsGo for Rubyists
Go for Rubyiststchandy
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script ProgrammingLin Yo-An
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboyKenneth Geisshirt
 
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016Codemotion
 
Painless Data Storage with MongoDB & Go
Painless Data Storage with MongoDB & Go Painless Data Storage with MongoDB & Go
Painless Data Storage with MongoDB & Go Steven Francia
 
WWX2014 speech : Elliott Stoneham "Tardis go"
WWX2014 speech : Elliott Stoneham "Tardis go"WWX2014 speech : Elliott Stoneham "Tardis go"
WWX2014 speech : Elliott Stoneham "Tardis go"antopensource
 
OSCON2014 : Quick Introduction to System Tools Programming with Go
OSCON2014 : Quick Introduction to System Tools Programming with GoOSCON2014 : Quick Introduction to System Tools Programming with Go
OSCON2014 : Quick Introduction to System Tools Programming with GoChris McEniry
 
Go from a PHP Perspective
Go from a PHP PerspectiveGo from a PHP Perspective
Go from a PHP PerspectiveBarry Jones
 
RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!Gautam Rege
 
Introduction to Programming in Go
Introduction to Programming in GoIntroduction to Programming in Go
Introduction to Programming in GoAmr Hassan
 

Similar to JDD2014: GO! The one language you have to try in 2014 - Andrzej Grzesik (20)

An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to Go
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrency
 
Go Containers
Go ContainersGo Containers
Go Containers
 
Go Containers
Go ContainersGo Containers
Go Containers
 
Crunching data with go: Tips, tricks, use-cases
Crunching data with go: Tips, tricks, use-casesCrunching data with go: Tips, tricks, use-cases
Crunching data with go: Tips, tricks, use-cases
 
Highlights of Go 1.1
Highlights of Go 1.1Highlights of Go 1.1
Highlights of Go 1.1
 
Highlights of Go 1.1
Highlights of Go 1.1Highlights of Go 1.1
Highlights of Go 1.1
 
Go for Rubyists
Go for RubyistsGo for Rubyists
Go for Rubyists
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script Programming
 
Unleash your inner console cowboy
Unleash your inner console cowboyUnleash your inner console cowboy
Unleash your inner console cowboy
 
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016
How to avoid Go gotchas - Ivan Daniluk - Codemotion Milan 2016
 
Golang勉強会
Golang勉強会Golang勉強会
Golang勉強会
 
Painless Data Storage with MongoDB & Go
Painless Data Storage with MongoDB & Go Painless Data Storage with MongoDB & Go
Painless Data Storage with MongoDB & Go
 
WWX2014 speech : Elliott Stoneham "Tardis go"
WWX2014 speech : Elliott Stoneham "Tardis go"WWX2014 speech : Elliott Stoneham "Tardis go"
WWX2014 speech : Elliott Stoneham "Tardis go"
 
Go memory
Go memoryGo memory
Go memory
 
OSCON2014 : Quick Introduction to System Tools Programming with Go
OSCON2014 : Quick Introduction to System Tools Programming with GoOSCON2014 : Quick Introduction to System Tools Programming with Go
OSCON2014 : Quick Introduction to System Tools Programming with Go
 
Go Memory
Go MemoryGo Memory
Go Memory
 
Go from a PHP Perspective
Go from a PHP PerspectiveGo from a PHP Perspective
Go from a PHP Perspective
 
RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!RubyConf Portugal 2014 - Why ruby must go!
RubyConf Portugal 2014 - Why ruby must go!
 
Introduction to Programming in Go
Introduction to Programming in GoIntroduction to Programming in Go
Introduction to Programming in Go
 

Recently uploaded

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Recently uploaded (20)

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

JDD2014: GO! The one language you have to try in 2014 - Andrzej Grzesik