364: Gabbing About Go
1 July 2019
Mike and Wes burrow into the concurrent world of Go and debate where it makes sense and where it may not.
- Goroutines - Concurrency in Golang — Goroutines are functions or methods that run concurrently with other functions or methods. Goroutines can be thought of as light weight threads. The cost of creating a Goroutine is tiny when compared to a thread.
- Why build concurrency on the ideas of CSP? — One of the most successful models for providing high-level linguistic support for concurrency comes from Hoare’s Communicating Sequential Processes, or CSP. Occam and Erlang are two well known languages that stem from CSP. Go’s concurrency primitives derive from a different part of the family tree whose main contribution is the powerful notion of channels as first class objects.
- Jony Ive ‘dispirited’ by Tim Cook’s lack of interest in product design — To many, Jony Ive’s announced departure from Apple last week felt very sudden. But a narrative is forming to suggest that he’s been slowly exiting for years as the company shifted priorities from product design to operations.
- CSP Paper
- A Tour of Go — These example programs demonstrate different aspects of Go. The programs in the tour are meant to be starting points for your own experimentation.
- GoLand: A Clever IDE to Go by JetBrains — GoLand is cross-platform IDE built specially for Go developers.
- Google I/O 2013 - Advanced Go Concurrency Patterns — Concurrency is the key to designing high performance network services. This talk expands on last year’s popular Go Concurrency Patterns talk to dive deeper into Go’s concurrency primitives, and see how tricky concurrency problems can be solved gracefully with simple Go code.
- Michael Dominick on Twitter — Ok, so this is cool I have a fully working #rails dev environment up under #Windows usign #WSL and @PengwinLinux. Using @code for the editor. So far so good!
- Pengwin by Whitewater Foundry — Pengwin is a Linux environment for Windows 10 built on work by Microsoft Research and the Debian project.
- Open-sourcing Sorbet — Sorbet is a fast, powerful type checker designed for Ruby. It scales to codebases with millions of lines of code and can be adopted incrementally.
- Sorbetting a gem, or the story of the first adoption — After reading about Brandon’s first impression (highly recommend to check it out), I decided to give Sorbet a try and integrate it into one of my gems.
- Gradual typing of Ruby at Scale — This talk shares experience of Stripe successfully been building a typechecker for internal use, including core design decisions made in early days of the project and how they withstood reality of production use
- Building Standalone Python Applications with PyOxidizer — PyOxidizer’s marquee feature is that it can produce a single file executable containing a fully-featured Python interpreter, its extensions, standard library, and your application’s modules and resources. In other words, you can have a single .exe providing your application.
- Packaging Your Code — The Hitchhiker’s Guide to Python
- An Overview of Packaging for Python
- pex — pex is a library for generating .pex (Python EXecutable) files which are executable Python environments in the spirit of virtualenvs.
- shiv — shiv is a command line utility for building fully self-contained Python zipapps as outlined in PEP 441, but with all their dependencies included!