---
title: "How the Go runtime implements maps efficiently (without generics)"
publication: "Go Weekly"
issue: 213
published_at: "2018-05-31"
canonical_url: "https://golangweekly.com/issues/213"
---

The latest Golang development news       

#213 — May 31, 2018 

[Read on the Web](https://golangweekly.com/issues/213)   

Golang Weekly  

[The 'vgo' Proposal Is Accepted. Now What?](https://research.swtch.com/vgo-accepted) — If you missed last week’s epic [vgo roundup issue](https://golangweekly.com/issues/212), you might want to catch up. The acceptance of the vgo proposal gave many programmers many feelings, but what does proposal acceptance actually mean? _Hint: Probably not what you think._ 

Russ Cox   

[How The Go Runtime Implements Maps Efficiently (without Generics)](https://dave.cheney.net/2018/05/29/how-the-go-runtime-implements-maps-efficiently-without-generics) — This post starts by addressing what a map is, how it works, how other languages implement maps, and the balance Go’s designers struck. 

Dave Cheney   

[How Twilio Improves 'Mean Time To Discovery' with Rollbar](https://rollbar.com/customers/twilio/?utm_source=email-nl&utm_medium=email-nl&utm_campaign=email-nl) — "The worst thing that can happen is a customer writes in to the support team to say something is broken... If my 'Mean Time To Discovery' is based on a customer support ticket, I’ve failed." [Learn more](https://rollbar.com/customers/twilio/?utm_source=email-nl&utm_medium=email-nl&utm_campaign=email-nl) how Twilio uses Rollbar. 

ROLLBAR sponsor   

[Revive: A New Fast, Extensible, Configurable Go Linter](https://blog.mgechev.com/2018/05/28/revive-golang-golint-linter/) — `golint` is quite opinionated and minimalistic but Revive takes a more extensible approach. 

Minko Gechev   

[Tracking the Status of Go 2.0](https://github.com/golang/go/wiki/Go2) — A wiki page has been created to collect links from the core team about the status of Go 2.0. Not much to see yet, however. Core team member Brad Fitzpatrick [says](https://twitter.com/bradfitz/status/999729098074112000) he’s _“rooting for generics & better error handling.”_ 

Official Go Repository   

[Why Cant I Pass This Function As An HTTP Handler?](https://www.calhoun.io/why-cant-i-pass-this-function-as-an-http-handler/) — I’ve always wondered why I can’t pass a function that looks like an `http.Handler` as an argument without using `http.HandlerFunc`. Now I know. 

Jon Calhoun   

[On Failure Modes](https://sdboyer.io/vgo/failure-modes/) — An interesting treatise on minimal version selection (MVS) as used by tools like vgo and how game theory helps show some weak spots in using such systems at scale. 

sam boyer  

💻 Jobs  

[Data Engineer: Go & Python | Fresh8 Gaming | Bristol UK, Relocate](http://www.techfolk.co.uk/current-jobs/data-engineer-central-bristol-tl248) — Friendly team serious about tech, [building in open source](https://github.com/fresh8). Grow your skills across analytics, data science and scaling. 

Fresh8   

[Go Expert? Sign Up for Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-golangweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-24217) — Top companies use Vettery to find the best tech talent. Take a few minutes to join our platform. 

Vettery  

📘 Tutorials  

[An Algorithm to Generate Color Palettes](https://chris.de/posts/an-algorithm-to-generate-color-palettes/) 

Christian Muehlhaeuser   

[eBook: Efficient Project Management for Small Engineering Teams](https://resources.codeship.com/ebooks/small-engineering-teams-efficient-project-management-aw?utm_source=email-sponsorship&utm_medium=cpc-go-weekly-secondary&utm_campaign=small-engineering-teams) 

Codeship sponsor   

[Writing gRPC Interceptors in Go](https://medium.com/@shijuvar/writing-grpc-interceptors-in-go-bf3e7671fe48) 

Shiju Varghese   

[Go Test Your Tests in Go with 'go test'](https://deadbeef.me/2018/05/go-test) — Four tips about how Go runs tests and some tricks you can use. 

Mike Choi   

[Building Scalable Web Services in Go](https://medium.com/myntra-engineering/my-journey-with-golang-web-services-4d922a8c9897) — A few best practices aggregated from around the world of Go. 

Hriddhi Dey   

[How to Setup gRPC Service to Service Communication](https://ryanmccue.ca/how-to-setup-grpc-service-to-service-communication/) 

Ryan McCue   

[Go Garbage Collection and Files](https://kevba.com/posts/go-garbage-and-files/) — An interesting bug and fix around what happens to a file descriptor when the backing file object is garbage collected. 

Kevba   

[Access Powerful CPUs with Dedicated Hyper-Threads at the Lowest Rates](https://try.digitalocean.com/performance/?utm_source=paid_newsletter+go+weekly&utm_medium=display&utm_campaign=2018_Brand&utm_content=5-30-18+go+weekly+cooperpress) 

DigitalOcean sponsor   

[Delve CLI Debugging Cheatsheet](https://github.com/trstringer/cli-debugging-cheatsheets/blob/master/go.md) 

Thomas Stringer  

🔧 Code & Tools  

[fastjson: Fast JSON Parsing for Go](https://github.com/valyala/fastjson) 

Aliaksandr Valialkin   

[WTF: A Personal Information Dashboard for Your Terminal](https://github.com/senorprogrammer/wtf) 

Chris Cummer   

[Monitoring, Alerting, and Distributed Tracing for Go Apps](https://www.datadoghq.com/monitor-go/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-GoWeeklyS) — Get full-stack monitoring for your Go apps, logs, and 200+ infrastructure integrations. Try Datadog free. 

Datadog sponsor   

[Golimit: A Distributed and Decentralized Rate Limiter](https://github.com/myntra/golimit) 

Myntra   

[phi-editor: An Work-in-Progress Go-Powered Text Editor](https://github.com/felixangell/phi-editor) 

Felix Angell   

[v8worker2: A (Very) Minimal Golang Binding to the V8 JavaScript Engine](https://github.com/ry/v8worker2) 

Ryan Dahl   

[Deno: A Secure TypeScript Runtime on V8 6.8](https://github.com/ry/deno) — An interesting idea from the original creator of Node.js, Ryan Dahl. It’s built with Go, is _not_ Node or npm compatible, and is.. ‘segfaulty’ :-) 

Ryan Dahl   

[frp: Fast Reverse Proxy to Expose A Local Server Behind A NAT](https://github.com/fatedier/frp)         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc) 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
