SlideShare a Scribd company logo
Intro to Go (aka golang) 
By Clarence Bakirtzidis 
! 
Twitter: @clarenceb_oz | Email: clarenceb@gmail.com, cbakirtz@thoughtworks.com 
Image credit: https://github.com/golang-samples/gopher-vector/blob/master/gopher.png
What is Go? 
• Programming language developed at Google in 2007 by 
Robert Griesemer, Rob Pike, and Ken Thompson 
• Compiled, Statically-Typed language with “C”-like syntax 
• Designed to be a simple language to learn 
• Addresses real scalability and productivity problems at 
Google 
• Developed because the inventors disliked C++ ;) 
Image credits: http://talks.golang.org/2012/splash/datacenter.jpg
Why Go? (in quotes) 
“The goals of the Go project were to eliminate the 
slowness and clumsiness of software development at 
Google…” 
“The language was designed by and for people who write and read 
and debug and maintain large software systems.” 
“Go's purpose is therefore not to do research into 
programming language design…” 
“Less is exponentially more” 
Excerpts from: http://talks.golang.org/2012/splash.article, http://commandcenter.blogspot.com.au/2012/06/less-is-exponentially-more.html 
Image credit: http://rouninurashima.files.wordpress.com/2012/05/gordon_unicorn1.png
What is it good for? 
• Systems Programming - like C but easier, low-level access, C-interop 
• Web Services - It has just about everything you need built into the Standard Library 
• Concurrent Programming - Its built into the language: goroutines and channels 
• Target multiple platforms - Linux, Windows, Mac OS X, Free BSD 
• Simple deployments - Your app is a single binary with no other dependencies 
• Large scale development! 
• Easy to read, write, maintain 
• Garbage collected, statically-typed, fast compilation, fast execution 
Image credit: http://blog.golang.org/go-11-is-released_gopherbiplane5.jpg
• Google! 
• SoundCloud! 
• Docker! 
• Dropbox! 
• DigitalOcean 
Who uses it? 
• Hashcorp (Serf, Terraform, 
Consul, Packer) 
• Rackspace (Airbrake, 
Gophercloud) 
• SendGrid! 
• Many more... 
Image credit: https://developer.rackspace.com/blog/gophercloud/
Into the codes… 
1. Selected examples from Tour of Go (http://tour.golang.org/) 
2. Sample RESTful API and Commandline tool: 
• https://github.com/clarenceb/jokes_api_golang 
Image credit: https://talks.golang.org/2012/splash/appenginegophercolor.jpg
Learning Resources 
• Essential background reading:! 
• http://commandcenter.blogspot.com.au/2012/06/less-is-exponentially-more.html 
• http://talks.golang.org/2012/splash.article 
• Start Learning Go now:! 
• Tour of Go (http://tour.golang.org/) - Interactive hands-on tour of Go 
• How I Start - Go (http://howistart.org/posts/go/1) - Go setup and sample wed service 
• Go by Example (https://gobyexample.com/) - Annotated examples 
• Go Programming Language Official Site (http://golang.org/) - Blog, Docs, etc. 
Image credit: https://golang.org/doc/gopher/doc.png
The End 
Image credit: http://blog.golang.org/gif-decoder-exercise-in-go-interfaces_image00.jpg

More Related Content

What's hot (12)

PDF
Golang taipei #45 10th birthday
Evan Lin
 
PDF
What's New in Hybrid App Development
Jay Graves
 
PDF
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 
PDF
Android is going to Go! Android and Golang
Almog Baku
 
PPTX
I/O 2019 android updates
Shady Selim
 
PDF
Why you should care about Go (Golang)
Aaron Schlesinger
 
PDF
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
Evan Lin
 
PDF
Building Command Line Tools with Golang
Takaaki Mizuno
 
PDF
Golang online course
bestonlinecoursescoupon
 
PDF
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
Evan Lin
 
PDF
Getting started with Go - Florin Patan - Codemotion Rome 2017
Codemotion
 
PDF
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
Evan Lin
 
Golang taipei #45 10th birthday
Evan Lin
 
What's New in Hybrid App Development
Jay Graves
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 
Android is going to Go! Android and Golang
Almog Baku
 
I/O 2019 android updates
Shady Selim
 
Why you should care about Go (Golang)
Aaron Schlesinger
 
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
Evan Lin
 
Building Command Line Tools with Golang
Takaaki Mizuno
 
Golang online course
bestonlinecoursescoupon
 
iThome Chatbot Day: 透過 Golang 無痛建置機器學習聊天機器人
Evan Lin
 
Getting started with Go - Florin Patan - Codemotion Rome 2017
Codemotion
 
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
Evan Lin
 

Similar to Intro to Go (20)

PPTX
5 Reasons why Business Choose Go Program for Software Development
NelsonSEO
 
PPTX
Golang (Go Programming Language)
ShubhamMishra485
 
PPTX
Introduction to go lang
Amal Mohan N
 
PDF
An introduction to go programming language
Technology Parser
 
PPTX
Scaling applications with go
Vimlesh Sharma
 
PDF
Android is going to Go! - Android and goland - Almog Baku
DroidConTLV
 
PDF
Getting started with go - Florin Patan - Codemotion Milan 2016
Codemotion
 
PDF
Golang, Future of Programming Language.
Sunil Yadav
 
PDF
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
PDF
Introduction to Go
Simon Hewitt
 
PDF
The Go programming language - Intro by MyLittleAdventure
Valéry BERNARD
 
PDF
How to master a programming language: a Golang example"
Evan Lin
 
PDF
welcome to gopherlabs - why go (golang)?
sangam biradar
 
PPTX
GUI- in Golang.pptx
TusharLaad1
 
PDF
Hire golang developers and make the shift to brighter business future (build ...
Katy Slemon
 
PPT
Google's Go Programming Language - Introduction
Ganesh Samarthyam
 
PPT
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
PPTX
Golang development go language services in kerala- go language development in...
Zewia Software Solutions (P) Ltd
 
PDF
Go Within Cloud Foundry
Platform CF
 
PDF
The Ring programming language version 1.5.1 book - Part 4 of 180
Mahmoud Samir Fayed
 
5 Reasons why Business Choose Go Program for Software Development
NelsonSEO
 
Golang (Go Programming Language)
ShubhamMishra485
 
Introduction to go lang
Amal Mohan N
 
An introduction to go programming language
Technology Parser
 
Scaling applications with go
Vimlesh Sharma
 
Android is going to Go! - Android and goland - Almog Baku
DroidConTLV
 
Getting started with go - Florin Patan - Codemotion Milan 2016
Codemotion
 
Golang, Future of Programming Language.
Sunil Yadav
 
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
Introduction to Go
Simon Hewitt
 
The Go programming language - Intro by MyLittleAdventure
Valéry BERNARD
 
How to master a programming language: a Golang example"
Evan Lin
 
welcome to gopherlabs - why go (golang)?
sangam biradar
 
GUI- in Golang.pptx
TusharLaad1
 
Hire golang developers and make the shift to brighter business future (build ...
Katy Slemon
 
Google's Go Programming Language - Introduction
Ganesh Samarthyam
 
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
Golang development go language services in kerala- go language development in...
Zewia Software Solutions (P) Ltd
 
Go Within Cloud Foundry
Platform CF
 
The Ring programming language version 1.5.1 book - Part 4 of 180
Mahmoud Samir Fayed
 
Ad

Recently uploaded (20)

PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
PDF
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
PDF
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PPT
Brief History of Python by Learning Python in three hours
adanechb21
 
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PDF
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
PDF
Summary Of Odoo 18.1 to 18.4 : The Way For Odoo 19
CandidRoot Solutions Private Limited
 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
PDF
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PPTX
Employee salary prediction using Machine learning Project template.ppt
bhanuk27082004
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
Brief History of Python by Learning Python in three hours
adanechb21
 
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
Summary Of Odoo 18.1 to 18.4 : The Way For Odoo 19
CandidRoot Solutions Private Limited
 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Activate_Methodology_Summary presentatio
annapureddyn
 
Employee salary prediction using Machine learning Project template.ppt
bhanuk27082004
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
Ad

Intro to Go

  • 1. Intro to Go (aka golang) By Clarence Bakirtzidis ! Twitter: @clarenceb_oz | Email: [email protected], [email protected] Image credit: https://github.com/golang-samples/gopher-vector/blob/master/gopher.png
  • 2. What is Go? • Programming language developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson • Compiled, Statically-Typed language with “C”-like syntax • Designed to be a simple language to learn • Addresses real scalability and productivity problems at Google • Developed because the inventors disliked C++ ;) Image credits: http://talks.golang.org/2012/splash/datacenter.jpg
  • 3. Why Go? (in quotes) “The goals of the Go project were to eliminate the slowness and clumsiness of software development at Google…” “The language was designed by and for people who write and read and debug and maintain large software systems.” “Go's purpose is therefore not to do research into programming language design…” “Less is exponentially more” Excerpts from: http://talks.golang.org/2012/splash.article, http://commandcenter.blogspot.com.au/2012/06/less-is-exponentially-more.html Image credit: http://rouninurashima.files.wordpress.com/2012/05/gordon_unicorn1.png
  • 4. What is it good for? • Systems Programming - like C but easier, low-level access, C-interop • Web Services - It has just about everything you need built into the Standard Library • Concurrent Programming - Its built into the language: goroutines and channels • Target multiple platforms - Linux, Windows, Mac OS X, Free BSD • Simple deployments - Your app is a single binary with no other dependencies • Large scale development! • Easy to read, write, maintain • Garbage collected, statically-typed, fast compilation, fast execution Image credit: http://blog.golang.org/go-11-is-released_gopherbiplane5.jpg
  • 5. • Google! • SoundCloud! • Docker! • Dropbox! • DigitalOcean Who uses it? • Hashcorp (Serf, Terraform, Consul, Packer) • Rackspace (Airbrake, Gophercloud) • SendGrid! • Many more... Image credit: https://developer.rackspace.com/blog/gophercloud/
  • 6. Into the codes… 1. Selected examples from Tour of Go (http://tour.golang.org/) 2. Sample RESTful API and Commandline tool: • https://github.com/clarenceb/jokes_api_golang Image credit: https://talks.golang.org/2012/splash/appenginegophercolor.jpg
  • 7. Learning Resources • Essential background reading:! • http://commandcenter.blogspot.com.au/2012/06/less-is-exponentially-more.html • http://talks.golang.org/2012/splash.article • Start Learning Go now:! • Tour of Go (http://tour.golang.org/) - Interactive hands-on tour of Go • How I Start - Go (http://howistart.org/posts/go/1) - Go setup and sample wed service • Go by Example (https://gobyexample.com/) - Annotated examples • Go Programming Language Official Site (http://golang.org/) - Blog, Docs, etc. Image credit: https://golang.org/doc/gopher/doc.png
  • 8. The End Image credit: http://blog.golang.org/gif-decoder-exercise-in-go-interfaces_image00.jpg