Roger Peppe and Bryan Boreham join Mat and Kris to discuss the state of Generics in Go, including benefits like cleaner code, solving problems with few lines of code, and simplifying processes with the slices package. They also explore limitations and challenges, potential performance implications, and technical aspects of implementing generics at compile time. The discussion covers unpopular opinions, code formatting, balance between simplicity and help, tech debt, debt management, risk-taking in interactions, and collaboration despite mistakes.
Generics in Go were both feared and eagerly anticipated, causing hesitation and adoption issues.
Different perspectives on Generics in Go resulted in varied opinions regarding its impact on the language.
Discussion revolves around the current state of Generics in Go and its implications for software development.
Deep dives
Hot vs Cold Showers
The speaker believes that a shower is not good unless it goes properly cold. They enjoy finishing a shower with alternating hot and cold water, and feel unsatisfied if the water is not cold enough.
Length of Jingles
The speaker disagrees with feedback they received that their podcast jingle is too long. They believe that the 25-second jingle is the perfect length and enjoy the singing in the jingle.
LED Tap Device
The speaker suggests the idea of a device that could be placed on a tap to indicate the temperature of the water through the use of blue and red LEDs. They believe this could be a helpful and practical addition to taps.
Dishwashers as Cupboards
The speaker proposes the idea of having dishwashers instead of cupboards in a kitchen, allowing dishes to be cleaned and stored in the same place. They pitched the idea seriously to a kitchen designer, but it was deemed as expensive and wasteful.
Tech debt should be called malpractice
The speaker argues that the common term 'tech debt' should be replaced with 'malpractice' because the act of neglecting important tasks like writing tests or documentation is more akin to irresponsible behavior. They believe that these actions are not equivalent to taking on debt, but rather a failure to fulfill one's responsibilities and obligations.
The value of banter and not always being nice
The speaker expresses their belief that banter and poking fun can be valuable in forming strong relationships and providing constructive feedback. They argue against the idea of always being nice and emphasize the importance of nuance and context in humor. They highlight how different cultures may have varying understandings of what is considered nice, and caution against a dogmatic approach in promoting universal niceness. Instead, they suggest focusing on repairing harm and being forgiving when lines are crossed.
So, do we like generics or not? Some people feared they’d be the end of the language. Others were very hopeful, and had clear use cases, and were thrilled about the feature coming to the language. It was also often touted as the reason a lot of people didn’t adopt Go. So what do we think now? Mat and Kris are joined by Roger Peppe and Bryan Boreham to discuss the state of Generics in Go.
Changelog++ members save 1 minute on this episode because they made the ads disappear. Join today!
Sponsors:
Fastly – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform. Learn more at fastly.com
Fly.io – The home of Changelog.com — Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.
Typesense – Lightning fast, globally distributed Search-as-a-Service that runs in memory. You literally can’t get any faster!