- Programming Language developed at Google
2007 - Open-sourced in
2009, pretty young lanugage. - Go is natively compiled language
- Evolution of Infrastructure
- Multi-Threading = Do multiple things at once
Challenges of Multi-Threading
-
Multiple users editing the same document
-
Multiple users booking at the same time.And yeah this should work in a way that no double booking happens (Prevent double booking) And this concept is called
Concurrency: It's about dealing with lots of things at once.Build-in Concurrency Mechanism
-
C++
-
Java
-
Complex code
-
Expensive & slow
- Go
- Go was desined to run on multiple cores and built to support concurrency
- Concurrency in Go is cheap and easy
No build-in Concurrency Mechanism
- Python
- Node
- For performant Applications
- Running on scaled, distributed systems
- Simple and readable syntax of a
dynamically typedlanguage likePython - Efficiency and safety of lower-level,
statically typed languagelikeC++ - Server-Side or Backedn language:
- Mircrosercies
- Web applications
- Database services
- Technologies that run on Go:
- Docker
- Hashicorp Vault
- Kubernetes
- Cockroach DB
- and so on...
Go is becoming more and more popular for writing simple automation applications and cli applications for DevOps and SRE tasks as well.
In terms of executions speed Go is much faster than:
- Python
- JS
- Ruby
- PHP
Or pretty much any
Interpretedlanguage is going to be slower thanGo
When it comes to compilation speed, Go is much faster than these language.
- Rust
- C
- C++
- Java
- C#
Its(Go) execution speed is more similar to these language when it comes to Runtime Speed. A go program tends to use much less memory then:
- Java
- C#
# update your system
sudo apt update && sudo apt upgrade
# install go
sudo apt install golang-goInstall go extension if you are using VsCode:
Extension name: Go official