X

Contact Us

News

Been curious about Golang?

Kelly Heller
04/19/2017

My Authentic Golang “Go” Story.

I love code, but I approached Google’s open source programming language, Go, as a skeptic – a battle weary skeptic. Having reached the 10-year milestone as a software engineer, I’ve seen fads come and go. I’ve also been satisfied enough with my native language, C++, to not search for alternatives. However, after watching the mounting tide of Go adoption sweep up some of my most respected colleagues, I finally had to wade in and see for myself.

 

I love Go! Here’s why.

I like Go for what it has, but I LOVE Go for what it doesn’t have. Of course, it has everything you need – multi-paradigm programming idioms, type safety, data hiding, automated testing – here’s proof!

Functional programming

Object-oriented programming

“Mocking” capabilities inherent in the language

But, more importantly, it has nothing you don’t need. Go is opinionated. Normally, I wouldn’t like that, but it has all the same opinions I have! With Go, there’s no more arguing about…

 
  • Tabs versus spaces
 
  • Brace-indent style
 
  • Protected visibility
 
  • Compiler warning levels
 
  • Overloading
 
  • Implementation inheritance
 
  • Deep spaghetti inheritance
 
  • Composition versus inheritance
 
  • Exceptions & Throw/Catch versus return code
 
  • Telescoping constructors
 
  • Test harness contortions
 
  • Circular module dependencies


Go gives you the power to freely flex both your OO design chops and your functional programming prowess as you see fit. And yet it eradicates mind-numbing code review controversies at the root, by removing choice where we never really needed it.

Looking at Go is like looking at a codebase you just overhauled and realizing: “This project is much better now, and it came from a net removal of code.”

 

Go at Work

I recently joined 219 Design, a product engineering company that specializes in embedded/smart products. In our line of work (Qt GUI’s, medical devices, robotics, etc), the use of C and C++ is mandatory. Thankfully, we also consider it great fun. At 219, we’ve proved our mettle at wielding C and C++ with grace and discernment. It would seem unlikely that a trendy new language could lure us from our firm foundation. And yet, Go has managed to win our hearts and minds. We’ll always be steadfast C and C++ aficionados, but our successes now also include:

 
  • a Go auto-updater process with intelligent failure handling, targeting a headless IoT setting where prompting the user is impossible.
 
  • a Go RESTful web server for electronic medical data, built using lightweight Go packages including Negroni and Gorilla Mux.


We are looking forward to using Go in just the right project soon! 


 

Want to Learn More About 219 Design? Contact us!

Want to learn more about Go? Check out my SCaLE 15x Golang Presentation.