Still Go in 2025
I encountered Go way back around pandemic time when I was freelancing as a tutor when I have to help a student with a Go homework.
That encounter was not a good one for reasons that are common criticisms toward Go. I remember disliking the way Go does <name> <type>
for declarations instead of C-like <type> <name>
. I remember disliking Go’s weird casing for public/private scope which tripped me for too long that time, wondering why a field is not accessible. I remember disliking Go for a lot of reasons.
Came my professional work and exposure with Python for around 2 years. As a fast developer I like how I can quickly finish my tasks. As a mature developer I dislike how I stumble over a lot of silly mistakes like typographical error, incorrect variable type, and so on. My growing discontent for a dynamically typed language like Python was temporarily bandaged by the type annotation feature of Python. I am the lead promoter of adopting and applying that in our codebase but still, a lot of bugs and runtime crashes occured because let us face it, it’s never perfect and not the same as what statically-typed languages provide.
Then on my quest to find a better backend programming language to satisfy my discontent and boredom with Python I encountered Go again. This time, in retrospect, I realize the lessons and wisdom the first bad encounter was indeed helpful in developing my skills and mindset as a software engineer. There were still challenges and hurdles with Go but I came to really love it.
Things like built-in toolings, compilation time, static typing, packages, and so on. Everything just clicked on me this time.
The fast iteration that the whole ecosystem provides beat the time-consuming Rust. Yes, I have used Rust quite extensively before Go.
So this is why, with more reasons I can not provide in this post, I will still use and promote Go.
Soli Deo Gloria