Bitcoin in 2021

I’m not really a big cryptocurrency person, but I’ve been following it since at least 2011, which must count for something. For the record, I do hold a long position in Bitcoin but it’s a very small part of my overall portfolio.

Back in the early days, I was quite optimistic about cryptocurrency. I still think there’s interesting stuff going on, but on Bitcoin in particular I’m increasingly pessimistic. I thought it was worth thinking through why I feel this way.

Anyone who’s spent time on the internet discussing currencies knows the three benefits we might want to see:

  1. Medium of exchange
  2. Unit of account
  3. Store of value

I don’t think this is backed by serious scholarship, but my feeling is that a cryptocurrency can’t survive as number 3 alone; it has to serve as number 1 or 2 as well.

The obvious rejoinder to this is to consider all the things that can be used as stores of value without being a medium of exchange or unit of account, but to me these all seem to have direct use value: gold has industrial and aesthetic uses, art and stamps can be exhibited, wine can be drunk. Bitcoin has nothing like this.

As a medium of exchange, I think Bitcoin has failed. Transaction fees are way too high and (almost as importantly) the relationship between transaction fees and transaction confirmation time is unpredictable, at least to people who aren’t closely following the markets.

There are off-chain transactions, but those aren’t really using Bitcoin as a medium of exchange, they are using Bitcoin as a proof of creditworthiness of whoever is handling the transaction.

Then there is Bitcoin as a unit of account. I think I originally expected Bitcoin might get some purchase here. I wouldn’t expect companies to have accounts in Bitcoin, but you can imagine that non-physical goods (apps, in-app purchases, ebooks) might trade for a stable Bitcoin price. Bitcoin gambling might have become widespread. Perhaps online auctions or gig economy tasks (Fiverr, TaskRabbit etc.) would have taken on Bitcoin as a recognisable and trusted worldwide currency. None of this has happened.

I’ve seen second-hand reports that there are a few digital nomads out there who are funding all their outgoings by taking on contract work in Bitcoin. And maybe there are a very few cases of contract work where both parties are treating it as a Bitcoin contract and not using Bitcoin to settle a contract specified in a fiat currency. But let’s be honest, if Bitcoin were to fall in value these people would renegotiate their contracts as soon as the terms allowed. Those who wouldn’t are just Bitcoin lottery winners who can afford to take a massive hit on volatility out of pure principle.

The tension here is obvious in retrospect: The more Bitcoin is hyped as a way to get rich quick by buy-and-hold, the less suitable it is as a unit of account. Every time Bitcoin has undergone a rapid rise in value, people have written about it like these price rises are a proof that it is working as a currency. But the rapid shifts in value are just far too extreme to make it appeal to anyone who might want to use it.

What I’ve learned after 3 years of learning Chinese

I started learning Mandarin Chinese 3 years ago, but that makes it sound more deliberate than it was. At the time I was experimenting with memorisation using spaced repetition software, and I figured it might be neat to learn some Chinese characters. I don’t think my aspirations went any further than decoding the characters on the menu next time I went to a Chinese restaurant.

Along the way, two things happened:

  • I discovered that learning Mandarin was much harder than I expected.
  • My stubbornness kicked in, and I didn’t want to be defeated by this language.

Without really intending to, I’ve reached the point where I can’t deny that I’m spending a lot of my spare time learning this language. I’ve traveled to China, taken an exam in Chinese, and have made several Chinese-speaking friends I talk to regularly. But what have I learned?

The Chinese language is a confusing mess

Lots of small details will trip you up. There’s a simple word for “not”, 不 (Bù), which you can use everywhere except for the verb “have”, where you should use 没 (Méi). And you have to use 没 in the past as well.

There’s a word for “can”, 会 (Huì). Well actually the same word means “meeting”, but we won’t go into that. Actually there are 3 words for “can”, roughly corresponding to “know how to”, “able to” and “have permission to”. But these can overlap, and then they work differently in the negative.

But if you seriously want to say “not able” then you’re going to have to wrestle with result complements, where the form of words varies depending on why you can’t do something. You don’t just say “I can’t sit down”, you have to know which result complement to use to convey whether you’re injured, not allowed or it’s too crowded.

There are countless homophones, which are written with different characters and mean completely different things. Then there are the homographs, which are written the same but pronounced differently and with different meanings. Then there are the homonyms that are written and pronounced the same, but have different meanings. It’s particularly worrisome as so often one of the meanings is … indelicate.

I could go on, but I won’t because…

The English language is a confusing mess

One of the glorious things about learning a new language is the chance to look again at your own mother tongue. Early on you might be thinking that your thoughts are in some Platonic ideal of abstract clarity and you just lack the skills to express it in another language. But after a while you spot how English (or whatever you speak) is subtly guiding your thinking.

You might think “How do I say ‘get’ in Chinese?”, but this isn’t a well-defined question. It depends if you’re getting coffee, getting a haircut, getting fired or getting older. Nowadays people use “get” in the first person when ordering food (“can I get the Rigatoni Milanese?”) even though the actual getting will be done by someone else (“the waiter got me some extra ketchup to go with my Rigatoni Milanese”). And if the waiter “got your order mixed up” then we’re in a whole different world of getting.

I have a few Chinese-speaking pen pals, and early on I would often dive into explaining how simple it was to use an English word like “from”, only to find that it really wasn’t. After a few paragraphs of adding epicycles to my perfectly clear explanation (“Of course, in this other situation it’s clear that…”) I realised how ridiculous this was and was suitably chastened.

Don’t be afraid of 汉字

If you know nothing else about the Chinese family of languages, it’s that they are written without an alphabet. Everyone knows that Chinese characters (汉字, Hanzi) number in the thousands and give you no hint as to how to pronounce them (this isn’t strictly true, but close enough).

It’s not even true (as some think) that Chinese characters contain much in the way of pictorial representation to tell you the meaning.

You may be expecting something like those verb tables you learned for French or Spanish in school, only filled with row after row of alien-looking symbols.

Learning to read 汉字 really isn’t that bad. The characters have evolved over thousands of years, driven by their utility as a means of communication to people whose brains work in the same way yours does. That doesn’t mean they make sense, in the sense that there is a top-down structure. But it does mean that with a little practice your brain will readily pick out the differences between seemingly similar characters, and associate them with concepts in your brain.

Context is a huge help. Most Chinese words are 2 characters, and often both characters contribute to the meaning of the word. If you know only one character of a word you may be able to guess the word, and if you do have to look up the missing character it’ll fit into a nice slot in your brain linked by meaning to the characters you already know.

By this point you’ve probably started to get used to the word 汉字 , so if I tell you that 打字 means “typewrite” you’ll probably spot a connected concept of “character”. Then if I tell you that 打篮球 means to play basketball, you may spot a connected concept relating to hitting, striking, manipulating with your hands.

There’s an odd way in which playing basketball and typing have something in common, which your brain is already aware of, but English doesn’t expose to us. These are the kind of connection that the human brain is good at picking up on without much conscious effort.

None of which is to say that learning to read 汉字 is easy. It’s hard. And learning to write them is extremely hard, and probably a waste of time in the modern world. But it’s an awful lot less dry and more fun and intuitive than you might be expecting.

Pronunciation is a performance

All my previous language learning had been on Western languages, and I think the similarity to my mother tongue held back my pronunciation. I fell into a trap: thinking “of course French people sound a bit different to me when they speak French, that’s just not the way my voice is”. I’d correct all the egregious faults (silent final -en, soft “j”, …) but I never paid attention to the small details.

Of course, you can speak French without mastering nasal vowels or unaspirated voiceless plosives. But you won’t speak like a native does, and you will be consistently wrong in a certain way. The dividing line between “speaking the language correctly” and “putting on a funny French accent” is nothing like as clear as I’d like to think.

In Mandarin, it’s harder to fool yourself. You’re going to have to work hard, just to get some basic comprehension. If you want to achieve more than indulgent smiles from your interlocutors you’re going to need to work on some of the fine details.

It’s particularly hard because you don’t know which slips are going to impede comprehension. Small changes can make big differences, such as between Qiézi (eggplant) and Qīzi (wife). Other changes can make little or no difference to comprehension (native speakers’ accents throughout China vary extremely widely). How do you know which details of pronunciation you can ignore? It’s pretty easy, you just have to become a fluent speaker first…

One of the most useful things I did for my pronunciation was to spend a few hours on YouTube doing dialect coaching for various regional accents in English. Try it! Learn to speak English in a New Zealand accent. If you’re a Kiwi, learn Glaswegian. You’ll notice all sorts of small details. And you’ll notice that your mouth is perfectly capable of doing them, given a little practice.

You’ll also notice that these details are impossible to write down accurately. You can’t say “New Zealanders pronounce ‘fish and chips’ as ‘fush and chups'” because they really don’t. The Kiwi short “i” is just missing from British or American English. Writing it down forces it into a pigeonhole from your native accent, and something is lost.

There is good news here! The process of listening, imitating and puzzling through just what’s wrong with your voice that makes it not sound like the other person’s can be great fun. The sounds are there, you just have to find them. And what initially feels like a sort of disrespectful parody, “putting on a funny foreign accent”, will eventually give way to finding your own voice in the language.

The greatest challenges have been emotional not intellectual ones

This is (nominally) a software development blog. If you’re reading this, there’s a good chance you’re the sort of person who learned things easily in school, has a good memory, handles abstract concepts well etc. Like me, you may have an expectation that many supposedly difficult intellectual challenges will yield to focus, dedication and a well-chosen strategy.

You may even (as I did) have spent some time thinking about “hacking” learning. The old teaching methods needed thousands of hours, but that’s because they hadn’t properly applied Spaced Repetition, or Comprehensible Input.

All of this may be true. But you’re missing something important.

It’s impossible to learn a language without facing failure. If you learn to program a computer or fly a plane or play the clarinet you will mostly encounter people who learned this skill the same way you did, many of whom are amateurs. But for learning a new language to make any sense you have to confront yourself with native speakers, and they are a world apart from you. Native speakers of Mandarin have mastered a skill that you are trying to learn, and they can do it better than you ever will and without even knowing how they did it.

To me, the process of learning a language stokes two uncertainties:

  • Fear of failure: “Am I too stupid to understand this?”
  • Fear of embarrassment: “Did that mistake make other people think less of me?”

I spent way too many hours on flash cards or grammar books or watching The Legend of the White Snake on Netflix because I just didn’t want to do the real work, the work of stumbling through a real conversation with a real human being. I suppose I had hoped that I could retreat into a sort of language chrysalis where I could study the language in isolation, to emerge some day as a resplendent butterfly of native fluency. But that day never came.

If I had one piece of advice for my earlier self, it’s “don’t kid yourself”. There’s no shame in not being comfortable with failure or social awkwardness, but there ought to be shame in thinking that you can avoid facing it down and still be that one person at the party who brags about their Mandarin skills.

A partial defense of master / slave nomenclature in technology

By now you’ve probably heard that there’s a movement to change various pieces of computing terminology that refer (or in some cases just appear to refer) to slavery or other terms that are racially sensitive. I’m in favour of making the world of software more welcoming to all kinds of people, and I think there is plenty of important work we can do here. However, some of the arguments I see people making here don’t make sense to me, and I’d like to explain why.

Before I get into the main argument, I’d like to make it clear that I respect the motivations of people who I’m not in agreement with on this, and I hope that this article can (in a small way) lead to more clarity on this point. Even if my argument is wrong, I hope that setting it out can help me and other people to understand the argument better and (if appropriate) why it fails.

An analogy is not an endorsement

Using a concept for a technical analogy is not an endorsement of that concept. We talk about killing tasks, zombie processes, dead code, flooded servers, etc. and none of these are indications that these are positive things or that we want to run human society in such a way.

The recent rise of containerised architecture has come along with a shift of thinking of servers from “pets” (cared for) to “cattle” (killed whenever convenient). I don’t have the statistics, but I imagine this shift has occurred at a time when more and more engineers are vegan or at least engaged with animal welfare issues.

I think most of us can see through this apparent contradiction: using the metaphor of servers as cattle isn’t making us more likely to kill animals for food, nor is any reduction in social squeamishness about animal-killing driving the containerisation boom. The metaphor is merely useful and (as far as I know) nobody has trouble differentiating the metaphor from the reality.

You can see elements of this evolution, much further down the track, in the word “workhorse”. I could refer to a server or a database engine or a keyboard as a workhorse and everyone would understand what I mean. This is despite the fact that there are fewer and fewer people still alive who remember horses being used as beasts of burden. The word, abstracted from its original concrete meaning, remains useful long after the reality has faded away.

An apt analogy can be useful

The technical use of master / slave is pretty narrow and specific; it isn’t applied arbitrarily. That some architectures have a single node making decisions and other nodes following that don’t make independent decisions is a real architectural fact. Other architectures don’t have this, and the difference between these architectures is not socially constructed but is a real engineering difference.

The decision to choose one architecture over the other is an engineering decision about the properties of the two systems, and even if you think modern life is structurally racist I believe you can agree that these decisions are made on their technical merits.

The proposed alternatives “leader” and “follower” actually blunt some of the descriptiveness. The servers we formerly referred to as “slaves” are not semi-independent servers that might sometimes have unique contributions of their own; they are limited to do exactly what they are told by some other server.

Why this is only a partial defense

The realities of human beings are complex, and words can have a power that cuts far beyond the logical implications of their etymology. I needn’t give examples of specific slurs for you to get my point: we can all call to mind many words that would be personally hurtful to us, or to those we care about, and with only a little empathy can foresee the potential impact on people who have nothing in common with us, but who we nevertheless don’t wish to see hurt.

It may well be that “slave” has become one such word, for people in the English-speaking world in the early part of the 21st century.

A word needn’t be hurtful to everyone in order to be worth retiring. The pain needn’t even be widespread; even a few percent of people being actively hurt by a word choice is probably too many.

If you’re in my team and a term we use is hurtful to you, I’ll do whatever I can to avoid that problem for you. If I’m working on a project where team members are being hurt by choice of language, I’ll support that team finding better language. Words exist to serve humans. But this adaptation is something we should do in the case of specific harm to individuals, not a vague sense of social harm.

How and where exactly to draw the line is difficult, but I think there is the potential to for some objectivity here. It would be unreasonable to expect that every injured person speak up, but some personal testimonies would help to build understanding. Surveys asking about personal experiences (not just opinion surveys) would be helpful. So far I haven’t seen any evidence of this kind offered by those who think our language needs to change.