Code Yarns ‍👨‍💻
Tech BlogPersonal Blog

Introducing Go

📅 2016-May-18 ⬩ ✍️ Ashwin Nanjappa ⬩ 📚 Archive

I had to work with some Go code recently and some of its networking code literally looked like Greek to me! In an attempt to get a rudimentary understanding of this language I chose Introducing Go by Caleb Doxsey. Go was introduced by Google with a big splash a few years ago in 2009. It had the name of computer science legends Rob Pike and Ken Thompson behind it. I had taken one cursory look at the language back then and since it had no traits of a systems programming language I had not bothered.

I must admit there was a certain pure joy as I learnt the syntax, keywords and design of Go now. There is an all-pervading simplicity to the language and its tools. (I am looking at you C++ and Rust.) It has all the hallmarks of being in the same lineage as C and Unix. This is not surprising considering the past achievements of its creators. Kudos to them for not getting distracted by the bloat of today's languages. It can be seen that every design decision has been taken in keeping the language as simple, light and easy as possible. In the verbose age of modern C++, it was refreshing to note how ridiculously short the keywords in this language are. This language though is clearly meant for networking, communication and concurrency. I doubt some of these can be achieved in any other language with code that is this readable and yet short and performant. However, it is also clear how Go is woefully inadequate for other applications like systems programs and scientific computing.

This book of a 100-odd pages was really easy to read and follow. I do not think it can be used by someone with no programming knowledge. My opinion is from the viewpoint of someone who is familiar with C-like languages. I think it can be read and understood in a few hours. That is mostly because the Go language is so well designed. This book is a rewrite of the author's first book An Introduction to Programming in Go. That was one of the first books on Go and came with an unforgettably cute cover! How I wish O'Reilly had retained that original cover art for this book!