Fallthrough

The Gems & Warts of Go


Listen Later

Gems are the things we love, and warts are the things we don't. On today's episode, Kris is joined by the hosting panel of Ian, Matt, and Dylan and they are talking about the gems and warts of Go. From defer, to net/http, to vanity URLs, to modules, we cover around 30 topics! To prevent our listeners/viewers from returning an E_TOO_MANY_UNPOPS error, we didn't include the Unpopular Opinions segment (there are plenty throughout the episode). We hope you enjoy this tangent filled episode. Have a gem or wart you agree/disagree with or think we missed a few? Let us know on social media or in the comments!

Thank you so much for listening. Happy listening!

Notes & Links:

  • Chandler Carruth's CPPcon talk (from 40:44)
  • Go x/tools/guru (from 43:36)
    • Since deprecated, however this functionality is included in gopls.
  • go/analysis (from 47:19)
  • go/x/tools/cmd/eg (from 1:47:25)
    • go/x/tools/refactor/eg
    • eg documentation

Chapters:

  • (00:00) - Intro
  • (00:31) - Introductions
  • (05:07) - Gem#1: net/http
  • (07:37) - Gem#2: defer (gem)
  • (09:36) - PEBKAC (tangent)
  • (11:36) - Gem#3: if err != nil (gem)
  • (16:09) - Gem#4: testing included (gem)
  • (19:13) - Gem#5: struct field tags (gem)
  • (21:57) - Gem#6: reflect & unsafe (gem)
  • (24:35) - Gem#7: sync/atomic (gem)
  • (24:54) - Gem#8: io as composeable interfaces (gem)
  • (25:32) - Gem#9: No inheritance (gem)
  • (31:20) - Gem#10: Vanity URLs (gem)
  • (34:33) - Gem#11: single for loop (gem)
  • (37:08) - Gem#12: pprof (gem)
  • (38:25) - Gem#13: security by default (gem)
  • (40:01) - Gem#14: fast compiler times (gem)
  • (41:16) - Gem#15: go/ast & go/* packages (gem)
  • (42:05) - Gem#16: implicit interfaces (gem)
  • (42:38) - Wart#1: implicit interfaces (wart)
  • (48:37) - Wart#2: slice tricks (wart)
  • (54:10) - Wart#3: lack of method overloads (wart)
  • (56:57) - Wart#4: covariance for array parameters (wart)
  • (59:38) - Wart#5: encoding/json marshalling unexported fields (wart)
  • (01:01:27) - Wart#6: encoding/json marshalling errors (wart)
  • (01:02:31) - Wart#7: single letter variable names (wart)
  • (01:08:45) - Wart#8: iota (wart)
  • (01:16:09) - Wart#9: map operations (wart)
  • (01:18:23) - Gem#17: structs as map keys (gem)
  • (01:20:04) - Wart#10: main function signature (wart)
  • (01:23:35) - Gem/Wart#1: channels (gem & wart)
  • (01:30:38) - Wart#11: range loop variables (wart)
  • (01:34:31) - Wart#12: no standard build system (wart)
  • (01:38:09) - Wart#13: modules (wart)
  • (01:53:18) - Outro

  • Hosts
    • Kris Brandow - Host
    • Ian Wester-Lopshire - Host
    • Dylan Bourque - Host
    • Matthew Sanabria - Host

    • Socials:
      • Website
      • Bluesky
      • Threads
      • X/Twitter
      • LinkedIn
      • Instagram
      ...more
      View all episodesView all episodes
      Download on the App Store

      FallthroughBy Fallthrough Media

      • 5
      • 5
      • 5
      • 5
      • 5

      5

      2 ratings


      More shows like Fallthrough

      View all
      The Changelog: Software Development, Open Source by Changelog Media

      The Changelog: Software Development, Open Source

      285 Listeners

      Coder Radio by The Mad Botter

      Coder Radio

      152 Listeners

      Go Time: Golang, Software Engineering by Changelog Media

      Go Time: Golang, Software Engineering

      128 Listeners

      Changelog Master Feed by Changelog Media

      Changelog Master Feed

      30 Listeners

      Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

      Syntax - Tasty Web Development Treats

      987 Listeners

      Kubernetes Podcast from Google by Abdel Sghiouar, Kaslin Fields

      Kubernetes Podcast from Google

      184 Listeners

      Rustacean Station by Rustacean Station

      Rustacean Station

      62 Listeners

      The Stack Overflow Podcast by The Stack Overflow Podcast

      The Stack Overflow Podcast

      63 Listeners

      Algorithms + Data Structures = Programs by Conor Hoekstra & Bryce Adelstein Lelbach

      Algorithms + Data Structures = Programs

      33 Listeners

      Ship It! Cloud, SRE, Platform Engineering by Changelog Media

      Ship It! Cloud, SRE, Platform Engineering

      20 Listeners

      Oxide and Friends by Oxide Computer Company

      Oxide and Friends

      47 Listeners

      Cup o' Go by Jonathan Hall & Shay Nehmad

      Cup o' Go

      15 Listeners

      Rust in Production by Matthias Endler

      Rust in Production

      11 Listeners