Why I Use Go (for now)
Recently someone asked me why I prefer using Go to build services instead of Python.
It struck me as an odd question, mostly because the way it was phrased and how I skimmed it made me think they were asking why I recommended using Python to build services, which is something I have never done. Once we got past my misunderstanding and I had apologized for not reading carefully, I took a few minutes to think about it.
The first point to keep in mind is that I would not call myself a competent Python programmer. It is entirely possible that if I were more comfortable with Python, I would pick it up as a tool more often. Some Very Smart People™ I know use Python for Real Services In Production™. I wouldn’t, but as I mentioned, I’m not exactly well-versed. I expect that if I were dropped into an environment where I could learn from those Very Smart People, I might grow to understand why they have made that choice.
It would be fairer to ask why I use Go instead of Java, as there was a time that I considered myself not-incompetent in Java, and I railed mightily against the project lead who decreed that I would learn Go.
I use and recommend Go these days because it has a lot of tools for writing robust, predictable, and reliable code, concisely. I have found over the last few years of learning Go that I can write better services than I ever did in Java, and I can do it faster and more easily. The end product is also more performant and more predictable with less effort on my part, not to mention ridiculously small compared to stuff built on the Java Virtual Machine.
As a tool, Go fits well with the problems that I am trying to solve today.
Are there things that are annoying and things I really don’t understand all that well yet? For sure. These things don’t really get in the way of creating value for customers, though.
Your Mileage May Vary.