This Week In Programming: Go 2.0 and the Vexing Question of Complexity

Although Go 1.9 has yet to be released — it is expected to drop this month — most have moved their focus on to Go 2.0, after it was announced earlier this month at GopherCon. See the image above, which popped up on Reddit, for one interpretation for how some expect Go 2.0 to differ from the classic Golang that users have come to know and love for its simplicity. It seems that the community has the upcoming changes on the brain this past week.
At the heart of the controversy with Go’s evolution is whether or not Go 2.0 should support generics, as discussed here by Go aficionado Dave Cheney. Another blog post on the topic offers a TL;DR on the topic that sums it up nicely: “(1) lots of other languages have generics (2) we’re pretty sure they’re useful (3) but they come with associated costs and complexity and we’re not sure they’re worth it.”
This revered simplicity is at the core of the conflict, but as Go co-creator Rob Pike once noted in a talk, simplicity is complicated:
As we noted when we first looked at the announcement earlier this month, the community is “just as responsible for shaping the release of Go 2 as the Go team itself” and it looks like it’s knee deep in discussion about the future of Go.
News From Around the Web
- InfoWorld examines the consensus recommendations of a Go language contributors group on how Google’s Go language could be improved. Notably missing was the word “generic” from this discussion.
- One Go programmer argues that context should go away for Go 2, noting the chills they got when they read the sentence “it would be nice if io.Reader accepted a context so that blocking read operations could be canceled” on the Go Contributer’s Summit write-up.
- Long ago, we remember completely fouling up our boot sectors when trying to hack together Assembly code with no idea what we were doing, and found this tutorial to be neat: Bootloader and Low-Level Programming Tutorial: How To Develop Your Own Boot Loader
- Sticking with the learning, we came across Pygorithm – A Python module for learning major algorithms …
- … and Andrew Ng — who previously offered a machine learning course on Coursera that has been taken by 1.8 million students since 2011 — announced a new class on Deep Learning.
-
And finally, if you’ve ever wanted to contribute to an open source project but have been intimidated by the process, Julia Evans offers some helpful tips and insight on her blog post about figuring out how to contribute to open source.