Previous Episode: Go at Clever
Next Episode: go:embed

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. 🤘

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. 🤘

Leave us a comment

Changelog++ members save 3 minutes on this episode because they made the ads disappear. Join today!

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:


Brian Ketelsen – Twitter, GitHubMat Ryer – Twitter, GitHub, LinkedIn, WebsiteJon Calhoun – Twitter, GitHub, WebsiteKris Brandow – Twitter, GitHub

Show Notes:


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.

Something missing or broken? PRs welcome!

Twitter Mentions