Go is a programming language developed at Google back in the 2007-09 timeframe. It was written by those who had created Unix aka Rob Pike and Ken Thompson, and looked to be an evolution of prior efforts to primarily help with the cost of development at Google. Cost can be measured as productivity, performance, build times, etc and so it’s all of the above. It had the benefit of being written by real pragmatists who were focused on creating what I’d consider, the working man’s language. Really it covers all the aspects of programming required without indulging in more than that.
Back in 2011 I was exposed to this language at Google and in 2013 got the opportunity to program in it full time. As a past sysadmin and SRE it covered everything I loved from ruby and other scripting languages, while offering the type safety of C. Infact I always thought of it as C with memory management and string support. What really drew me in was knowing I would never really have to worry about performance tuning again in the same way as I had to for php, ruby or even Java. And I’d never have to think about tarballing source code and all its dependencies. Or installing an endless set of toolchains and libraries consistently in every environment for it to work. Go has a fully encapsulated build, runtime and toolchain that massively changed the game for all of us developers. What’s more, Go is actually fun to program in! And I never needed an IDE or dev environment to do it.
Since 2009 a lot has changed and yet, the language has remained incredibly consistent. The Go team has managed to pushback on a lot of what developers wanted and stay true to evolving based on a need as opposed to a desire to copy things from other languages. What’s more, Go flourished because of it’s built in standard library and lack of need to look externally for the most core requirements. And yet what Go has also accomplished is the creation of a vibrant ecosystem of libraries and tools which developers can rely on so they don’t have to write a lot of these things from scratch.
In 2015 with inspiration from the company I worked at I released Go Micro an open source framework for distributed systems development. This would then lead into Micro, an entire project, product and company that took me on a journey for the next decade. You see Go didn’t just help Google be more productive, it helped an entire generation of developers build tools and companies for years to come. It has become the foundations of some of the most important pieces of software we use today and essentially powers a significant portion of the internet. Whether that’s at Google or somewhere else.