Working on a programming language is one of the most challenging and open ended design spaces that I have ever tried to operate in, both for existing and brand new languages. There are very few bounds or constraints on the solution space to help guide and direct my thinking. Everything is ambiguous and open ended with endless possibilities. It sounds great to me… until I need to make progress. Then… not so much.

But one thing I’ve always liked is paying attention to the little details of the language. Here, it can be a bit less open ended. And a language is one of the places where paying attention to tiny details can pay off over time. It can help the language feel right or satisfying in a way that makes it a joy to read.

While I’m sure we have a lot of these still to work on in Carbon, it’s an area that I like to pay attention to when we can and try to polish everything while change is easy and we can get these little improvements at low cost.

I’m going to periodically post about these in no particular order and share both how we got to a particular example and why it is so satisfying. These won’t be super complex or deep in many cases because, after all, these are just little things. But I hope you enjoy. I’ll collect links to each of the posts here as they happen, and first up…