SlideShare a Scribd company logo
Golang : A Hype or the Future?
Created by Robert Griesemer, Rob Pike and Ken Thompson for
Google, GoLang was reportedly built by developers when they were
waiting for the code compilation to complete in a project. The three
main capabilities they certainly sought-after were the ease of
coding, efficient code-compilation and efficient execution. Bringing
all these capabilities in one language is what made Go so special.
Go is an open-source, procedural, statically-typed, compiled, and
general-purpose programming language. The compiler was
originally written in C but is now written in Go as well, which keeps
the language self-hosted. the language has seen a lot of success in
the last couple of years. A large portion of the modern cloud,
networking, and DevOps software is written in Go, eg. Docker,
Kubernetes, Terraform. Go is also being used by many companies
for general-purpose development.
As the requirement for performance keeps growing, hardware
continues to get sophisticated over time, the manufacturers keep on
adding cores to the system to keep up with the ever-increasing
demand. To handle such an increasing number of cores the system
needs to maintain database connections through microservices,
manage the queues and maintain caches. This is why today’s
hardware requires a programming language that can support
concurrency better, and that can scale up performance with the
increase of added cores over time.
Golang versus Other Languages
Languages are compared predominantly on two factors
• Ease of programming
• Efficiency
These factors are usually inversely proportional, meaning that any
language that has high “ease of programming” usually has low
“efficiency” and vice versa. Go holds the sweet spot with great
efficiency and adequate “ease of programming”.
Why “Golang” and not “C++”
Go and C++ are both compiled languages and both have similar
speed(In fact, C++ is a bit faster than Go). But the garbage collector
in Go is what sets it apart from C and C++.
Any complex program makes use of dynamically allocated memory,
and this allocated memory needs to be freed when it is not
required. If that is not done, the program would eventually use up
all the available memory and crash. In the case of servers, it is
absolutely required to do that as it is expected to run indefinitely. In
C and C++, the user is forced to deallocate all the memory that they
have allocated themselves or use a third party garbage collector. In
the case of Go, all the dynamically allocated memory with no
reference is automatically garbage collected, making it a lot easier
to work with.
Concurrency and “Golang”
Many programming languages weren’t natively designed for
concurrent programming. They lack proper design for concurrent
execution, and so, they often slow down the pace of programming,
compiling and execution. This is where Go comes as the most viable
option to support a multithreading environment and concurrency
both.
Eg: Language like python only allows one thread to access the
interpreter at a time and essentially never runs two threads in
parallel. So running two processor-heavy tasks at a time in python
in separate threads would have the same if not worse result than
running them in the same thread.
The Go scheduler unlike schedulers in other languages manages the
concurrency fully by itself. It doesn’t map Goroutines to OS-level
threads directly. Instead, it re-uses a few OS-level threads. This
reduces the context switching delay significantly as most of the
context switching is done at application-level and not Kernel level.
What is the call stack and why is it important in threads?
In case of threads, stack is used to store function return pointers
(where to return the result of a function call) and static variables.
Goroutine has a dynamic growable call stack which starts from only
4KB and can go up to the total memory capacity. Other languages,
in contrast, have static stack sizes, usually of 1MB (determined by
the OS).
This growable stack in Go is one of the key things which makes
Goroutines light-weight. Where other languages can only have a
few concurrent blocks, Go can have a lot more because of its
dynamic stack size.
Conclusion
Taking into account all the offerings from Golang, we notice that it
distinguishes considerably in terms of
Faster compilation and execution
Better code readability and documentation
Offering a thoroughly consistent language
Easy versioning
Allowing development with multiple languages
Allowing easier maintenance of dependencies
These features surely make Golang a contender for the next-
generation programming language.
Content Source: Medium
Contented by: Mindfire Solutions

More Related Content

PPTX
Introduction to go lang
PPTX
Go programming language
PPTX
Go fundamentals
PPTX
Golang introduction
PPT
A First Look at Google's Go Programming Language
PPT
Google's Go Programming Language - Introduction
PPT
Introduction to Go ProgrammingLanguage.ppt
PPTX
Ready, set, go! An introduction to the Go programming language
Introduction to go lang
Go programming language
Go fundamentals
Golang introduction
A First Look at Google's Go Programming Language
Google's Go Programming Language - Introduction
Introduction to Go ProgrammingLanguage.ppt
Ready, set, go! An introduction to the Go programming language

Similar to Golang : A Hype or the Future? (20)

PPTX
Golang workshop - Mindbowser
PDF
Lets Go - An introduction to Google's Go Programming Language
PDF
Let's Go: Introduction to Google's Go Programming Language
PPTX
Go: What's Different ?
PPTX
Go Language presentation
PDF
Introduction to Programming in Go
PDF
Inroduction to golang
PDF
Introduction to go, and why it's awesome
PDF
PDF
Introduction to Go
PDF
An Introduction to Go
PDF
Golang, Future of Programming Language.
PPTX
Golang - Overview of Go (golang) Language
PDF
Why Golang? Settling the Debate Once and For All
PPTX
PPTX
Golang 101 (Concurrency vs Parallelism)
PDF
Introduction to Google's Go programming language
Golang workshop - Mindbowser
Lets Go - An introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming Language
Go: What's Different ?
Go Language presentation
Introduction to Programming in Go
Inroduction to golang
Introduction to go, and why it's awesome
Introduction to Go
An Introduction to Go
Golang, Future of Programming Language.
Golang - Overview of Go (golang) Language
Why Golang? Settling the Debate Once and For All
Golang 101 (Concurrency vs Parallelism)
Introduction to Google's Go programming language
Ad

More from Mindfire LLC (20)

PDF
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordinati...
PDF
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
PDF
Challenges and Risks of Web 3.0 — A New Digital World Order
PDF
Why Django is The Go-To Framework For Python.pdf
PDF
Thriving in an Age of Tech Disruption.pdf
PDF
Advantages Of Using Django Framework To Build Scalable.pdf
PDF
Utilizing Machine Learning In Banking To Prevent Fraud.pdf
PDF
How Blockchain In Supply Chain Can Help Overcome.pdf
PDF
Challenges of IT Outsourcing for CEOs of Small.pdf
PDF
Is JMeter The Best Performance Testing Tool.pdf
PDF
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdf
PDF
Where Do I Hire A Dedicated Team Of Python Developers Online.pdf
PDF
Primary concerns of CTOs with IT Outsourcing.pdf
PDF
Evolution of virtualized healthcare models.pdf
PDF
Adopting Blockchain in Healthcare to solve complex data issues & improve cust...
PDF
Delivering Better Healthcare Services with Edge AI.pdf
PDF
React’s suitability to develop Geospatial solutions.pdf
PDF
How has React become the preferred choice to.pdf
PDF
An SEO optimized website is best charged up.pdf
PDF
The Continuing Relevance of Manual Testing.pdf
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordinati...
Adoption of Cloud Computing in Healthcare to Improves Patient Care Coordination
Challenges and Risks of Web 3.0 — A New Digital World Order
Why Django is The Go-To Framework For Python.pdf
Thriving in an Age of Tech Disruption.pdf
Advantages Of Using Django Framework To Build Scalable.pdf
Utilizing Machine Learning In Banking To Prevent Fraud.pdf
How Blockchain In Supply Chain Can Help Overcome.pdf
Challenges of IT Outsourcing for CEOs of Small.pdf
Is JMeter The Best Performance Testing Tool.pdf
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdf
Where Do I Hire A Dedicated Team Of Python Developers Online.pdf
Primary concerns of CTOs with IT Outsourcing.pdf
Evolution of virtualized healthcare models.pdf
Adopting Blockchain in Healthcare to solve complex data issues & improve cust...
Delivering Better Healthcare Services with Edge AI.pdf
React’s suitability to develop Geospatial solutions.pdf
How has React become the preferred choice to.pdf
An SEO optimized website is best charged up.pdf
The Continuing Relevance of Manual Testing.pdf
Ad

Recently uploaded (20)

PPTX
Introduction to Artificial Intelligence
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Essential Infomation Tech presentation.pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
history of c programming in notes for students .pptx
PPTX
L1 - Introduction to python Backend.pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
AI in Product Development-omnex systems
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Introduction to Artificial Intelligence
PTS Company Brochure 2025 (1).pdf.......
Which alternative to Crystal Reports is best for small or large businesses.pdf
Reimagine Home Health with the Power of Agentic AI​
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Understanding Forklifts - TECH EHS Solution
Odoo POS Development Services by CandidRoot Solutions
Essential Infomation Tech presentation.pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
How to Choose the Right IT Partner for Your Business in Malaysia
history of c programming in notes for students .pptx
L1 - Introduction to python Backend.pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Odoo Companies in India – Driving Business Transformation.pdf
Transform Your Business with a Software ERP System
AI in Product Development-omnex systems
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Softaken Excel to vCard Converter Software.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...

Golang : A Hype or the Future?

  • 2. Created by Robert Griesemer, Rob Pike and Ken Thompson for Google, GoLang was reportedly built by developers when they were waiting for the code compilation to complete in a project. The three main capabilities they certainly sought-after were the ease of coding, efficient code-compilation and efficient execution. Bringing all these capabilities in one language is what made Go so special. Go is an open-source, procedural, statically-typed, compiled, and general-purpose programming language. The compiler was originally written in C but is now written in Go as well, which keeps the language self-hosted. the language has seen a lot of success in the last couple of years. A large portion of the modern cloud, networking, and DevOps software is written in Go, eg. Docker, Kubernetes, Terraform. Go is also being used by many companies for general-purpose development.
  • 3. As the requirement for performance keeps growing, hardware continues to get sophisticated over time, the manufacturers keep on adding cores to the system to keep up with the ever-increasing demand. To handle such an increasing number of cores the system needs to maintain database connections through microservices, manage the queues and maintain caches. This is why today’s hardware requires a programming language that can support concurrency better, and that can scale up performance with the increase of added cores over time. Golang versus Other Languages Languages are compared predominantly on two factors • Ease of programming • Efficiency These factors are usually inversely proportional, meaning that any language that has high “ease of programming” usually has low “efficiency” and vice versa. Go holds the sweet spot with great efficiency and adequate “ease of programming”.
  • 4. Why “Golang” and not “C++” Go and C++ are both compiled languages and both have similar speed(In fact, C++ is a bit faster than Go). But the garbage collector in Go is what sets it apart from C and C++. Any complex program makes use of dynamically allocated memory, and this allocated memory needs to be freed when it is not required. If that is not done, the program would eventually use up all the available memory and crash. In the case of servers, it is absolutely required to do that as it is expected to run indefinitely. In C and C++, the user is forced to deallocate all the memory that they have allocated themselves or use a third party garbage collector. In the case of Go, all the dynamically allocated memory with no reference is automatically garbage collected, making it a lot easier to work with.
  • 5. Concurrency and “Golang” Many programming languages weren’t natively designed for concurrent programming. They lack proper design for concurrent execution, and so, they often slow down the pace of programming, compiling and execution. This is where Go comes as the most viable option to support a multithreading environment and concurrency both. Eg: Language like python only allows one thread to access the interpreter at a time and essentially never runs two threads in parallel. So running two processor-heavy tasks at a time in python in separate threads would have the same if not worse result than running them in the same thread.
  • 6. The Go scheduler unlike schedulers in other languages manages the concurrency fully by itself. It doesn’t map Goroutines to OS-level threads directly. Instead, it re-uses a few OS-level threads. This reduces the context switching delay significantly as most of the context switching is done at application-level and not Kernel level. What is the call stack and why is it important in threads? In case of threads, stack is used to store function return pointers (where to return the result of a function call) and static variables. Goroutine has a dynamic growable call stack which starts from only 4KB and can go up to the total memory capacity. Other languages, in contrast, have static stack sizes, usually of 1MB (determined by the OS).
  • 7. This growable stack in Go is one of the key things which makes Goroutines light-weight. Where other languages can only have a few concurrent blocks, Go can have a lot more because of its dynamic stack size. Conclusion Taking into account all the offerings from Golang, we notice that it distinguishes considerably in terms of Faster compilation and execution Better code readability and documentation Offering a thoroughly consistent language Easy versioning Allowing development with multiple languages Allowing easier maintenance of dependencies These features surely make Golang a contender for the next- generation programming language.
  • 8. Content Source: Medium Contented by: Mindfire Solutions