A Bit of History
Go, also called Golang, was created at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It was created to provide a statically and strongly typed language similar to C in syntax, but also with features such as memory safety, garbage collection.
Why Choose Go?
There are hundreds if not thousands of programming languages, so why choose Go?
Simplicity
Go was designed with simplicity in mind. The language has a small set of keywords that makes it really easy to pick up and even maintain. This simplicity doesn’t come at the cost of power – Go provides all the tools you need to build robust applications.
In fact, Go doesn’t even have a while loop (if you don’t know about a while loop, you will soon.) This simplicity makes it extremely easy to pick it up with the benefits of a strongly typed language.
Performance
Go compiles to native machine code, which means that your program is going to be converted into binary and not into any intermediary (looking at you Java.) This results in extremely fast applications that are efficient in their memory usage. Unlike C or C++, Go does have a garbage collector. The garbage collector is designed for low latency, making Go suitable for high-performance applications.
Other than that, you will come to learn very quickly that Go applications compiles really fast, and if you have worked with a CMake or a Java project, you will know the difference.
Batteries Included
Go has almost everything you need to build a fully fledged application from the get go. It’s library is vast providing packages to create anything from a simple CLI application to a production ready web server.
Growing Ecosystem
With strong backing from Google and widespread adoption by companies like Docker, Kubernetes, and many others, Go has a thriving ecosystem of tools and libraries.
You don’t have to rely on libraries and packages though as Go has a really mature standard library which can do most of the tasks for you, but rest assured, if you need anything out of bounds, Go had got you.
Assignment
This is time for your first assignment. Some of these are going to just be things that you have to read (boring, I know,) and the others, you’ll have to do yourself. I suggest you do both, as it will be a great opportunity to learn from official resources as well as the ones we provide.
- Check out the Go Wikipedia. You don’t have to read absolutely everything, just get an idea about the language.
- Go’s official website has a section on “Why Go?”; you should check it out.