Russ Cox on Compatibility
Go as a trustworthy development environment
Russ Cox is a key member of the Go software development team. His November 10, 2022 posting to The Go Blog, “Thirteen Years of Go”, provides links to useful information about the Go programming environment through Go version 1.19.
To develop Go programming proficiency, we take on the mindset of software engineers. Rather than building short scripts to accomplish specific data science tasks, we try to build systems that can be maintained over time.
We want to have confidence that the programs we write today will run tomorrow. We can have this confidence with Go because of its compatibility promise. Go 1.x programs have backward compatibility at the source code level.
We learn to work with Go modules.
“For decades, discussion of software reuse was more common than actual software reuse. Today, the situation is reversed: developers reuse software written by others every day, in the form of software dependencies, and the situation goes mostly unexamined” (Cox 2019, 36).
Compatibility and continuity are key. Go provides a software environment that is easy to maintain over time. This is one of the reasons that Go programmers are happy to install new Go versions shortly after they are released.
References #
Cox, Russ. 2019, September. “Surviving Software Dependencies.” Communications of the ACM, 82(9): 36-43. Developed support for dependencies/version control in the Go programming environment.
Cox, Russ, Robert Griesemer, Rob Pike, Ian Lance Taylor, and Ken Thompson. 2022, May. “The Go Programming Language and Environment.” Communications of the ACM, 65(5): 70–78. In addition to providing an overview of the Go programming language and its history, this article explains what makes Go so popular and productive. Go provides structure and tools for the entire software engineering process.
Cox, Russ. 2022, November 10. “Thirteen Years of Go.” The Go Blog. Available online at https://go.dev/blog/13years.
We can hear the GopherCon 2022 presentation on compatibility, How Go Programs Keep Working:
Back to Building Systems and Services