21 August 2023

Ten Years of Programming in Go

Today marks an important milestone: it's now been exactly 10 years since my earliest open-source contribution written in the Go programming language!

Here it is, in all its glory: https://github.com/mdw-smarty/goconvey/commit/05e90a8c8c0eca1492ac326d331e0af63345bab6

That commit was the initial prototype of what became GoConvey, a double-edged testing toolkit for Go that I was commissioned by Smarty (thanks Jonathan Oliver!) to build with Matt Holt (thanks for the pretty UI!). That project was my very first stab at building a production-grade testing tool--I was so thrilled to be working on it. Back then, there was basically only the standard library "testing" package and testify. So, GoConvey was one of the first BDD-style options and the strange thing is that it got kind of popular!

Go has come a long, long way since 2013. Here are some important milestones I remember with gratitude:

Along the way, so many other things happened (duh!). For instance, I remember seeing the folks from Jetbrains at one of the early GopherCon events, along with a few plugin developers who had created a Go IDE plugin for Intellij that was still in its infancy (many thanks to Alexander Zolotov and Florin Pățan for the pioneering work). I stuck around for a Q&A session with them and asked whether there were any plans for a full-fledged Go IDE. "No plans" was the official answer at the time, but it really didn't take long before the size of the Go community made building that product a foregone conclusion. Well, Gogland, I mean Goland, turned out to be a huge step up from Sublime Text and GoSublime (which were still great and helped us write a ton of code).

It's been a great 10 years with Go. Many thanks to Robert Griesemer, Rob Pike, Ken Thompson, Russ Cox, Brad Fitzpatrick, Andrew Garrend, Dave Cheney, and many others for making such a great language! I wonder what the next 10 years will bring...