Meetup #16 was all about Go 1.16 (which was released after the meetup).
We had an informative breakdown of the updates coming in this release, the full slides can be found here:
A few highlights are: the go tool is now module aware by default, ioutil gets deprecated, support for file embedding (we talked about that in #14) and there is a new io subpackage io/fs, defining among other things interfaces for filesystems.
Thanks @klingtnet for the great summary!
Go is simple, and generics will add complexity, while helping to reduce repetition (and lines of code). In the best case, this results in less, yet still clear code.
As programming languages tend to add features, the Go release note section on Changes to the language happily reported There are no changes to the language - over the years.
Less can be more, especially in complex technological landscapes and dynamic environments. Being a reduced language was a bit special, but many experienced it also as an advantage, or at least not as a problem for the types of problems people use Go for.
Anyway, generics have been accepted - and may be available in Go 1.18 (2022).
What do you miss from Go?
Go is simple, but what are features people miss? We found the following:
- ternary if (e.g. C, Java, …)
- pattern matching (Rust, Erlang, …)
- enum (C, Rust, Python, …)
- union types (C, PHP8, …)
- a built-in set datatype (Python, …)
- functional utilities, like list comprehensions (Python, …)
- lambda expressions (Java, Python, …)
- how about boring technology
- shout-out to google/ko
- distroless are stripped down container images (but more than scratch images)
We quizzed ourselves on what kind of interview question might be suitable for intermediate Go programmers? Some idea we came up with:
- explain slices
- discuss concurrency and context
- a walkthrough project, assessing familiarity with tooling and practices around building projects
- a joint merge request review
Join our meetup to get notified of upcoming events!