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

      • 4.2
      • 4.2
      • 4.2
      • 4.2
      • 4.2

      4.2

      13 ratings


      More shows like Fallthrough

      View all
      Software Engineering Radio by se-radio@computer.org

      Software Engineering Radio

      271 Listeners

      Hanselminutes with Scott Hanselman by Scott Hanselman

      Hanselminutes with Scott Hanselman

      379 Listeners

      The Changelog: Software Development, Open Source by Changelog Media

      The Changelog: Software Development, Open Source

      291 Listeners

      Software Engineering Daily by Software Engineering Daily

      Software Engineering Daily

      624 Listeners

      LINUX Unplugged by Jupiter Broadcasting

      LINUX Unplugged

      266 Listeners

      Talk Python To Me by Michael Kennedy

      Talk Python To Me

      588 Listeners

      Soft Skills Engineering by Jamison Dance and Dave Smith

      Soft Skills Engineering

      284 Listeners

      Thoughtworks Technology Podcast by Thoughtworks

      Thoughtworks Technology Podcast

      41 Listeners

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

      Syntax - Tasty Web Development Treats

      987 Listeners

      CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

      CoRecursive: Coding Stories

      188 Listeners

      Kubernetes Podcast from Google by Abdel Sghiouar, Kaslin Fields

      Kubernetes Podcast from Google

      182 Listeners

      The Stack Overflow Podcast by The Stack Overflow Podcast

      The Stack Overflow Podcast

      62 Listeners

      Oxide and Friends by Oxide Computer Company

      Oxide and Friends

      59 Listeners

      Cup o' Go by Jonathan Hall & Shay Nehmad

      Cup o' Go

      16 Listeners

      The Pragmatic Engineer by Gergely Orosz

      The Pragmatic Engineer

      65 Listeners