You probably know how to spell “go.” G. O. Simple.
But do you know how to spell “Go”? The name of the popular programming language invented by Google.
It might also seem simple. Capital G, lowercase o. Also simple. right?
Well, if posts on StackOverflow are an indication, apparently it’s not so simple.
Here are just a few of the many misspellings I’ve seen:
- go lang
Let me set the record straight. If you’re ever tempted to write one of the above variants, stop. Just stop!
The proper spelling is simply “Go”
Capital G. Lowercase O.
Want proof? Look at the official web site, which says:
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Or here for an example mid-sentence:
An interactive introduction to Go in three sections.
So why the confusion then?
You try searching for “go”
Try searching for “go” on Google or in your favorite Twitter feed, or anywhere else, and you’re bound to find many false positives.
For this reason, the convention of tagging content related to the Go language with “golang” was born. It makes for a more unique search term or hash tag.
Are there exceptions?
As pointed out on Reddit, some people still use “golang” or even “Go Language” when speaking to lay persons.
While this may seem excusable, I think it’s a bad habit to get into. To illustrate this point, consider a question a technical recruiter recently asked me:
So is Go for the backend, and Golang for the frontend?
Falling into bad habits to better communicate with lay persons simply propagates the bad habits. I explained to him that they were the same thing, and that the latter was just a search term. He understood. Any person with Google experience will 🙂
What about CGO/CGo/Cgo/cgo?
On a related note, I’ve also seen some confusion about the spelling of the feature that allows using C/C++ code in Go. This is understandable. If the proper spelling of “Go” is “Go”, surely adding a C in front, to make “CGo” makes sense, right? Or maybe all caps is prettier (which is also used in env variables to control the feature).
Well, the official answer, once again, comes from the official documentation:
Cgo enables the creation of Go packages that call C code.
To use cgo write normal Go code that imports a pseudo-package “C”
So it’s just “cgo”, or “Cgo” at the beginning of a sentence. Capitalized like a normal English noun.