Opinions expressed in this commentary are solely those of MRD.
Typically I write about the intersection of technology, business, society, government, etc. But this time it's GOing to be different; and pun intended, about the programming language Go. Or as it's often referred - GoLang.
I've been using it for 3 months, and wish to share some reasons why I'm continuing on with it and now consider myself a gopher (i.e. someone who develops in Go), so readers can hopefully benefit when having to make a decision for the themselves: To Go, or not to Go.
- Although a Modern Rapid Development Language, It's Strongly Typed
Sure, I get it, some prefer to just get on with coding and not have to worry about data types. Only to be burned by this later though. Especially in an ever increasingly data-import world, having to debug code is one thing; debugging data, another. With regards to D. Sculley's paper, Machine Learning: The High-Interest Credit Card of Technical Debt, is Go's strongly typed nature a silver bullet solution? Of course not. Will it help? Absolutely.
- Go is Compiled
Compiled languages are faster... period.
- Go is Compiled in Go
This is a sign of a mature language. Any self-referential system, hasn't just an accolade, but drips with this power.
- Error-Handling is Enforced
Go forces a developer to reason about errors at the time of development, that could be catastrophic at runtime. Resulting in more robust and predictable software.
- Parallel, Distributed, and Concurrent
As Moore's Law slows, a modern language can't be called such unless it is developed from the ground up with these characteristics.
- Go vs. Python
Python's syntactically appealing, but seems Go is really the language I've always wanted Python to be, but instead has even fractured its usership trying to get there. 2.7 vs. 3?!
Don't take my word for it. Look it TIOBE's Index
index. There's a reason Go is on the rise
And now I've got to get back to GOing.