Go is boring, and that’s fantastic
Enums, immutables, and generics aren&#x27;t good because they&#x27;re exciting. They&#x27;re good because they give us expressive tools to write descriptive, type safe systems that manage state better.<p>I don&#x27;t like &quot;modern&quot; systems because I have a fetish for novelty. There&#x27;s nothing novel about these concepts, they&#x27;ve been around since the 60s and 70s. I like these tools because they improve my ability to reason about the code, but more importantly they let the compiler and other static analysis tools reason about my code.<p>I am getting old and lazy. I want the compiler to do more for me, not less.<p>What I see is a situation where Go is gaining traction from two communities:<p>a) people who attempted to build large systems at scale in dynamic late bound languages like Python and Ruby and NodeJS etc, and hit the wall from a performance and maintainability POV. I could have warned you...<p>b) people who came from the Java world and got frustrated 
with the language and tooling there<p>People coming from a) especially but also b) to some degree will be perfectly comfortable with Go missing the nicer aspects of modern static typed languages because they never had them in the first place.<p>As for...<p>&quot;Go doesn’t have a virtual machine or an LLVM-based compiler.&quot;<p>How is this any kind of pro or con? It&#x27;s just an implementation detail.