History of Go –
Go is a very friendly programming language, it has also maintained a good level of consistency since it was first introduced. A brief background history: Three Individuals are credited for the birthing of the Go Language also known as golang. In the year 2007, Robert Griesemer, Rob Pike, and Ken Thompson created an open source programming language at Google with the aim of building a reliable, robust, and efficient software. It is also important to note that the creators were also influencers in the programming world.
Appearing on the Google Open Source Blog of November 10, 2009 is the unveiling of a powerful programming language that has the development speed to create a software application fast and also come with the performance and safety of a low level compiled language. It took roughly 2 years for the team to design the language.
“Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.” – Golang.org
The inspiration for the development of Go is derived from the merits of programming language such as Oberon, Pascal, C, and Alef. This was built to solve some of the language level problems encountered in Google at the time. In other words in the creation of Go, modern software engineering guided the design of the language to solve complex or large scale complexity encountered when building softwares.
So they created a language that has the following features and properties in mind:
- Statically typed
- Clear syntax
- Native binaries – Cross compile for most operating systems especially major ones.
- Compilers are very fast
- Clear dependencies
- Clear semantics
- Concurrency baked in – a plus feature
- C like in nature
- Does Garbage collection
- Rich and awesome standard library
Officially you have been briefed, I quite find it empowering to know the genesis of objects, things and events. This resource is useful to all programmers in all stages of their career and aspirations. The Go version we will be using will be Go version 1.11+, effort will be made to upgrade and update the contents to stay relevant with the versions of Go. Unlike other programming language a major update often introduce a breaking change. However, with go the goal is to create a consistent program that grows without a major configuration conflict that will cause breaking changes to major version upgrade. It is more likely that a version 1.5.1 of Go will execute a code without breaking, though it is written with version 1.11.4
Past Achievement of Go Creators
Rob Pike – Helped to develop Plan 9, Designed UTF-8 encoding scheme, and also helped with the overall design of UTF-8.
Ken Thompson – Credited for designing and implementing the original UNIX operating system
The mascot for go was designed by Renee French, though Go has a new logo it is in words and 3 strips in the middle to the left, just before the word GO.
Why Should you consider Learning Go
I have taken time to highlight some of the reasons why the creators created go. This section is for golang newbies, you are asking why should I stick to go when python can do this, or Java can do that, maybe you thinking I better focus on C or C++ since it borrows a lot from these languages.
Well there is no right or wrong answer the focus is mostly on what you intend to build or design. This mostly influence the type of language you use, also convenience might be you top priority. Ultimately a programmer has to decide what is best for the program am about to build.
Go is very useful for creating almost all types of software and application. Though you may argue that it is not suited for some cases, the highlight is on its capacity to do more. Nowadays, it used for server management, maintenance and deployment. You can build full Web Applications, Desktop Applications, Networked Servers, APIs, Machine Learning, Middleware, Scripts, Mobile Applications, and other high level programming.
Go Binaries are awesome, you do not need to write programs for a specific operating system in mind. Golang can compile codes for most operating system on the fly. Go ships with a compiler so it is all inclusive when you bundle the binary. That is also the reason why Go codes run very fast, it does not have to depend on external compliers to run.
Resources for Learning Go.
There are quite a number of resources online for learning the go language, we have dedicated a whole page for this. Personally I prefer tailored learning, towards a goal. It is always ideal to learn the basic of a language; then move towards the practicality of what you learned by building something. Finally consolidate by delving to unique features and skills within the language.
The first go-to resources for any programming language is the documentation. Some languages provide a clear documentation while some do not. I particularly admire how Google writes documentation for their software and programs. Go is well documented, so is the Angular Front-end JS framework among other well documented programs by google.
Here is a quick list of useful resources online.