SlideShare a Scribd company logo
Golang
Getting to know Go
A short introduction
By Saray Chak, Web Developer
What is Go?
Go is a compiled, concurrent, garbage-collected, and statically
typed programming language developed at Goolge by Robert
Griesemer, Rob Pike, and Ken Thompson.
Golang
History
- 2007, started and built by Robert Griesemer, Rob Pike and Ken
Thompson as a part-time project.
- 2008, a lot of others people help to bring go from prototype to
reality
- 2009, go become a public Open Source project.
- 2010, starts to have adoption by other programmers
Why Go?
- Eliminate slowness
- Eliminate clumsiness
- Improve productivity
Who are using Go?
What will you see in Go?
- Simple syntax
- Compiled
- Garbage-collected
- Great standard library
- Statically and stronger typed
- Concurrent (goroutines)
- Multiple return values
- Go approach (Object Oriented without inheritance)
- Pointers
- Testing
- And so on...
What will you don’t see in Go?
- Exception handling
- Inheritance
- Method overloading
Go is a tool
Go is a tool for managing Go source code.
- build - compile packages and dependencies
- run - compile and run Go program
- clean - remove object files
- env - print Go environment information
- test - test packages and benchmarks
- Others : fix, fmt, get, install, list, version, vet.
Compiles
go build helloworld.go -> helloworld.exe
Packages
- Each Go program are compound per packages
- Program starts from main package
Variable
- The var instruction declares a
list of variables
- The type is informed at the end
- Inside a function, the short form
:= can be used instead of a var
declaration
Functions
Functions could have zero or more arguments
Multiple return values
A function can have multiple return values
Looping For and Forever
- Go has for as looping structure and it is very similar with C or
Java code, except for ()
- for can run forever
If Condition
- It is very similar with C or Java code, except for ()
What more?
- Switch
- Struct
- Map
- Slice
- Interface
- Pointer
- Receiver function
- Range
- Error
- And a lot more
A web server
It is simple to build a web server in Go
Concurrency (goroutines)
- Every concurrently executing activity in Go is known as Goroutine.
- A gorountine is a lightweight thread managed by Go
- To send or receive information between the goroutines, use
channels
Goroutine
Create more thread using keyword “go”
Channels
Channel is the only way to communicate with goroutine
Garbage collection
Go provides automatic garbage collection of allocated memory. It is
not necessary to release memory explicitly. There is no need to
worry about heap-allocated vs. stack-allocated storage.
Conclusion
- Go is a really nice language. It is easy to write and read.
- Go is a really fast, because it is compiled to machine code.
- Go has a well written standard libraries.
- Go supports multithreading and concurrency.
- Go provides automatic garbage collection of allocated memory.
- Go comes with built-in testing tool
- Go is quite young, so it still developing
- Go has no OOP approach
References
- https://github.com/golang/go/wiki/GoForCPPProgrammers
- https://golang.org/
- https://pkg.go.dev/std
Question?

More Related Content

What's hot (20)

PDF
Introduction to git flow
Knoldus Inc.
 
PPTX
Full stack web development
Crampete
 
PDF
Robot Framework :: Demo login application
Somkiat Puisungnoen
 
PDF
Introducing BDD and TDD with Cucumber
Knoldus Inc.
 
PPT
Functional Programming In Java
Andrei Solntsev
 
PDF
Workshop 21: React Router
Visual Engineering
 
PPTX
Introduction to go lang
Amal Mohan N
 
PPTX
Backend Programming
Ruwandi Madhunamali
 
PPTX
Robot framework
boriau
 
PPTX
Spring Boot Tutorial
Naphachara Rattanawilai
 
PPTX
Karate DSL
anil borse
 
PDF
Spring Batch - concepts de base
Spring User Group France
 
PPTX
Parallel batch processing with spring batch slideshare
Morten Andersen-Gott
 
PPTX
Robot Framework
Onur Baskirt
 
PPTX
GitLab.pptx
LeoulZewelde1
 
ODP
Test Automation Framework using Cucumber BDD overview (part 1)
Mindfire Solutions
 
PPT
Test Automation Best Practices (with SOA test approach)
Leonard Fingerman
 
PDF
An introduction to Vue.js
Javier Lafora Rey
 
PDF
BDD & Cucumber
Vladimir Arutin
 
PDF
GraalVM Overview Compact version
scalaconfjp
 
Introduction to git flow
Knoldus Inc.
 
Full stack web development
Crampete
 
Robot Framework :: Demo login application
Somkiat Puisungnoen
 
Introducing BDD and TDD with Cucumber
Knoldus Inc.
 
Functional Programming In Java
Andrei Solntsev
 
Workshop 21: React Router
Visual Engineering
 
Introduction to go lang
Amal Mohan N
 
Backend Programming
Ruwandi Madhunamali
 
Robot framework
boriau
 
Spring Boot Tutorial
Naphachara Rattanawilai
 
Karate DSL
anil borse
 
Spring Batch - concepts de base
Spring User Group France
 
Parallel batch processing with spring batch slideshare
Morten Andersen-Gott
 
Robot Framework
Onur Baskirt
 
GitLab.pptx
LeoulZewelde1
 
Test Automation Framework using Cucumber BDD overview (part 1)
Mindfire Solutions
 
Test Automation Best Practices (with SOA test approach)
Leonard Fingerman
 
An introduction to Vue.js
Javier Lafora Rey
 
BDD & Cucumber
Vladimir Arutin
 
GraalVM Overview Compact version
scalaconfjp
 

Similar to Golang (20)

PDF
Go lang
Suelen Carvalho
 
PDF
An introduction to programming in Go
David Robert Camargo de Campos
 
PPTX
go language- haseeb.pptx
ArsalanMaqsood1
 
PPTX
Google GO
Ajay Gahlot
 
PPT
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
PPT
Google's Go Programming Language - Introduction
Ganesh Samarthyam
 
PPTX
Go Programming language, golang
Basil N G
 
PDF
Inroduction to golang
Yoni Davidson
 
PPT
Introduction to Go ProgrammingLanguage.ppt
PedroAlexandre215482
 
PDF
Introduction to go, and why it's awesome
Janet Kuo
 
PPTX
Golang introduction
DineshDinesh131
 
PPTX
Go fundamentals
Ron Barabash
 
PPTX
Go. Why it goes
Sergey Pichkurov
 
PPT
Go1
vivekraj3434
 
ODP
Ready to go
Atin Mukherjee
 
PDF
Coding in GO - GDG SL - NSBM
Raveen Perera
 
PDF
A quick introduction to go
Dhanush Gopinath
 
PPTX
Go Language presentation
Gh-Mohammed Eldadah
 
PDF
The GO programming language
Marco Sabatini
 
PDF
Introduction to Programming in Go
Amr Hassan
 
An introduction to programming in Go
David Robert Camargo de Campos
 
go language- haseeb.pptx
ArsalanMaqsood1
 
Google GO
Ajay Gahlot
 
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
Google's Go Programming Language - Introduction
Ganesh Samarthyam
 
Go Programming language, golang
Basil N G
 
Inroduction to golang
Yoni Davidson
 
Introduction to Go ProgrammingLanguage.ppt
PedroAlexandre215482
 
Introduction to go, and why it's awesome
Janet Kuo
 
Golang introduction
DineshDinesh131
 
Go fundamentals
Ron Barabash
 
Go. Why it goes
Sergey Pichkurov
 
Ready to go
Atin Mukherjee
 
Coding in GO - GDG SL - NSBM
Raveen Perera
 
A quick introduction to go
Dhanush Gopinath
 
Go Language presentation
Gh-Mohammed Eldadah
 
The GO programming language
Marco Sabatini
 
Introduction to Programming in Go
Amr Hassan
 
Ad

Recently uploaded (20)

PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Ad

Golang

  • 2. Getting to know Go A short introduction By Saray Chak, Web Developer
  • 3. What is Go? Go is a compiled, concurrent, garbage-collected, and statically typed programming language developed at Goolge by Robert Griesemer, Rob Pike, and Ken Thompson.
  • 5. History - 2007, started and built by Robert Griesemer, Rob Pike and Ken Thompson as a part-time project. - 2008, a lot of others people help to bring go from prototype to reality - 2009, go become a public Open Source project. - 2010, starts to have adoption by other programmers
  • 6. Why Go? - Eliminate slowness - Eliminate clumsiness - Improve productivity
  • 8. What will you see in Go? - Simple syntax - Compiled - Garbage-collected - Great standard library - Statically and stronger typed - Concurrent (goroutines) - Multiple return values - Go approach (Object Oriented without inheritance) - Pointers - Testing - And so on...
  • 9. What will you don’t see in Go? - Exception handling - Inheritance - Method overloading
  • 10. Go is a tool Go is a tool for managing Go source code. - build - compile packages and dependencies - run - compile and run Go program - clean - remove object files - env - print Go environment information - test - test packages and benchmarks - Others : fix, fmt, get, install, list, version, vet.
  • 11. Compiles go build helloworld.go -> helloworld.exe
  • 12. Packages - Each Go program are compound per packages - Program starts from main package
  • 13. Variable - The var instruction declares a list of variables - The type is informed at the end - Inside a function, the short form := can be used instead of a var declaration
  • 14. Functions Functions could have zero or more arguments
  • 15. Multiple return values A function can have multiple return values
  • 16. Looping For and Forever - Go has for as looping structure and it is very similar with C or Java code, except for () - for can run forever
  • 17. If Condition - It is very similar with C or Java code, except for ()
  • 18. What more? - Switch - Struct - Map - Slice - Interface - Pointer - Receiver function - Range - Error - And a lot more
  • 19. A web server It is simple to build a web server in Go
  • 20. Concurrency (goroutines) - Every concurrently executing activity in Go is known as Goroutine. - A gorountine is a lightweight thread managed by Go - To send or receive information between the goroutines, use channels
  • 21. Goroutine Create more thread using keyword “go”
  • 22. Channels Channel is the only way to communicate with goroutine
  • 23. Garbage collection Go provides automatic garbage collection of allocated memory. It is not necessary to release memory explicitly. There is no need to worry about heap-allocated vs. stack-allocated storage.
  • 24. Conclusion - Go is a really nice language. It is easy to write and read. - Go is a really fast, because it is compiled to machine code. - Go has a well written standard libraries. - Go supports multithreading and concurrency. - Go provides automatic garbage collection of allocated memory. - Go comes with built-in testing tool - Go is quite young, so it still developing - Go has no OOP approach