This is going to be a bit of a long post. I’m going to take a deep dive into a view of identity that, depending on your background, might either seem unconventional or completely obvious. I’m going to talk about how this view relates to privacy, consider how it interacts with technology, and explore the values that underpin what we build.
But first, let’s talk about a scenario that’s probably been rare for most people this past year: meeting someone new.
Back when I first redesigned this blog, I mentioned that I drew a lot of inspiration from the online ebook Practical Typography by Matthew Butterick. That book helped guide a huge amount of this website’s design, from the font choice, to the line length and spacing, and is arguably responsible for the reading experience you’re having right now. I still recommend it to this day, since following its guidance can help make any text you write readable and pleasant to look at.
Butterick is a very opinionated guy, and the book bears this out. One of the early chapters in his book is titled One Space Between Sentences, and it’s best summarized by quoting the first two sentences:
Some topics in this book will offer you choices. Not this one.
I recently turned 30. For a lot of people, capping off another decade like this can a pretty sobering experience.
For me? Eh. I saw it coming.1 Back when I turned 27, I remember noticing that the addition of one year caused people to change from rounding down to 25, to rounding up to 30. “I’m not old yet,” I thought, “but I do think I’m running out of youthfulness.”
But there’s a silver lining to all this: I now have more social license to be the grouchy old man that I was always meant to be. “Get off my lawn!” I’ll shout, assuming I can ever afford a house big enough to have a lawn.
So I’ll start now with one example: it’s really striking how things that you saw develop over the course of your life end up being taken for granted by those who are younger. For them, this is the way things have always been. For you, you can trace it back through your memories: these were decisions that were made in a specific historical context, and have been maintained due to inertia even when the context for them breaks down.
So in this article, I want to focus on a specific example of this from the tech world, that I’m surprised people don’t talk about more explicitly:
Twitter’s character limits.
That said, I didn’t expect that I’d be celebrating it quietly during a massive pandemic, but I won’t get into that in this article. We’re all living through this, I’m sure you don’t need me to tell you about it. ↩︎
I’ve even gotten a bit of a reputation at work as someone who can explain things to people in a way that’s understandable. I’ve been trying to lean into that strength at my job, and while I’m doing that, I may as well bring some of that knowledge to the outside world as well, where appropriate.
All this to say: this article was adapted from something I wrote at work, in order to explain some subtleties about how smart pointers in modern C++1 work to people that only had experience with older C++. More specifically, this gets into how the way you use smart pointers should impact the design of libraries and their APIs.
For the purposes of this article, we’ll assume that “modern C++” means C++11 and later, whereas “older C++” means everything before C++11. ↩︎