Understanding The Memory Model Of Golang : Part 1

The Sweetness Of Being Different

I adore Golang for one reason; the undoubtedly highly experienced and intelligent creators of the language weren’t afraid to be different. Clearly, the language is not only defined by what it supports but also by what it deliberately eliminated from it’s design and also by what it proudly deviated from. One such awesome and needed deviation was how they took a u-turn in the design of the language’s memory model. The consequence of this deviation IMHO has been a cornerstone to how the language implicitly supports concurrency and parallelism.

Even in the face of all of its awesomeness, you’ll run into needless rants online about how Golang isn’t a good choice and blah blah blah. Well, unless you haven’t read Rob Pike’s keynote address, you’ll know that Golang was created to solve specific problems faced at Google (and in other large scale software engineering disciplines). They didn’t set out to develop a language based on academic research. They built a language for real software engineering. So, if you choose it for the wrong reason, you are not far away from surprises.

From Whence Cometh This Inspiration Edward, Thou Bonafide Gopher ?

Clearly, I’ve been smoking some serious stuff recently in my attempt to better understand and appreciate Golang, the language I love intimately. I have been spending much time watching and learning from videos recorded during the numerous GopherCons and generously uploaded onto Youtube. So, kinda posts are short notes for my future self. After spending minutes/hours watching a video, I’ll write short notes like these to save my future self from having to watch those videos again. More like, a quick reference for myself. This post is my note from this video on youtube presented by Dean Elbaz during the 2015 UK Golang Conference.

So, for this post, I’ll just post the original video here for you to watch but in subsequent posts, I will be sharing with you very short notes (in parts) on the lessons I learnt from this awesome video :

Finally, don’t forget to subscribe to my Go Rapidly Channel on Youtube where I soon be publishing all the awesome video tutorials I have personally recorded to freely share my experience and love for Golang.