Let’s Go (GoLang)
How About Go (GoLang)?
Go is an open-source programming language that makes it easy to build simple, reliable, and efficient software. It is often referred to as Golang because of its former domain name, golang.org
but its proper name is Go. Go was conceived in September 2007 by Robert Griesemer, Rob Pike, and Ken Thompson, all at Google, and was announced in November 2009. The best advantage of GoLang is you do not need to carry any baggage, if you are a beginner in the programming world Golang is the best choice. There is No class, No Object, No method overloading, No method overriding, No try-catch, No inheritance, etc. What you see on the screen is the code.
What is Go?
Go is a compiled (translating the code into an executable program), statically typed (variable types are known at compile time) programming language with C-like syntax. Go works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc.) The main advantage of Go is Speed and Scalability. Go is a new programming language that didn’t evolve or borrow from existing programming languages such as C# and Java. Go simply ignores the programming language theory.
If you are coming from other programming languages, try to look at Go with a fresh mind so you can experience the power and pragmatic design of the Go language design. Instead of focusing on academic theories and intellectual thoughts, Go focuses on real-world practices for building next-generation applications on the cloud as well as distributed and concurrent computing environments, and for system programming. While keeping Go as a static type language, it provides the productivity of a dynamic type language with simply understandable syntax
Why Go?
Go is an excellent language for building applications for distributed, concurrent, and Cloud computing environments. The goals of the language and its accompanying tools were to be expressive, efficient in both compilation and execution, and effective in writing reliable and robust programs. It borrows and adapts good ideas from many other languages while avoiding features that have led to complexity and unreliable code. It has automatic memory management or garbage collection.
Go is especially well suited for building infrastructure like networked servers, and tools and systems for programmers, but it is truly a general-purpose language and finds use in domains as diverse as graphics, mobile applications, and machine learning. Go programs typically run faster than programs written in dynamic languages and suffer far fewer crashes due to unexpected type errors. Go is an open-source project, so source code for its compiler, libraries, and tools is freely available to anyone. Contributions to the project come from an active worldwide community. Go runs on Unix-like systems — Linux, FreeBSD, OpenBSD, Mac OS X — and on Plan9 and Microsoft Windows. Programs written in one of these environments generally work without modification on the others.
Origin
Use Cases?
- Developing network-based programs
- Cloud-native development
- Web development (Server side)
- Creating fast CLIs
- DevOps and Site Reliability Engineering
Companies Using Go
- Netflix
- Microsoft
- Meta
- Uber
- Paypal
- Salesforce
- Dropbox etc
Advantages of Go
- Simplicity
- Fast Compile Times
- Garbage Collection
- Build-in Concurrency (performing multiple things out-of-order, or at the same time, without affecting the final outcome)
- No Virtual Machine needed
Resources to Learn Go
There are a bunch of free resources are available. The below sites will cover the basic Go concepts, if you are interested to explore more I would recommend reading Go books and online blogs, and other video resources, etc it will give you a clear picture of advanced and real-world Go features
Conclusion
When you’re learning a new language, there’s a natural tendency to write code as you would have written it in the language you already know. Be aware of this bias as you learn Go and try to avoid it.
If you’re interested in learning Go, many resources are available, including the Go official documentation and Tour of Go, and you can play with Go code using The Go Playground. There are also many online communities, such as Go forum and Discord channels, where you can ask questions and get help from other Go developers.
Happy Learning…