DEV Community

Go Time

Talkin' 'bout code generation

O.G. Brian Ketelsen joins the panel to discuss code generation; programs that write programs. They also discuss IDLs, DSLs, overusing language features, generics, and more.

Also Brian plays his guitar. 🤘

Discuss on Changelog News

Join Changelog++ to support our work, get closer to the metal, and make the ads disappear!

Sponsors

  • Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com
  • LaunchDarkly – Test in production! Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
  • Equinix Metal - Proximity – Take your infrastructure further, faster. On March 3rd, join Equinix Metal for their first technical user conference called Proximity. It’s a “follow-the-sun” day of live-streamed technical demonstrations showcasing Equinix Metal’s partners and ecosystem. Visit metal.equinix.com/proximity

Featuring

Notes and Links

The panel dig deep on code generation in Go. Touching on the new go:embed feature in Go 1.16.

They also discuss IDLs (interface description language) and DSLs (domain specific languages) and the part they play in code generation.

Brian talks about how we’re all guilty of overusing language features, like channels (see Go channels are bad and you should feel bad for an example).

The panel refers to https://litestream.io/ at one point, as an example of a closed-open-source project, and you can read more about on the Litestream GitHub page.

Episode source