I'm Brandon Smith, a programmer in Austin, Texas. More about me.


Does computing make the world better?


I was reading an article the other day about some recent headway being made in type theory. It was exciting stuff; stuff that may one day make systems faster, more reliable, more expressive. It felt very important in a vague way. But it also got me thinking: is this really going to make the world a better place than it was before?

Last week I was talking with my sister about how people in our society have gotten so toxic and tribal over the past decade, and how it's breaking America's ability to have civil discourse. I said, half-jokingly, "Really I think it's computers' fault". Of course by "computers" I really meant "social-media", but maybe part of me didn't (I'm not sure we could have cheap, powerful, networked computers without something like modern social-media emerging eventually).

There are plenty of examples where computers have made people's lives better in some way. The availability of educational information through resources like Wikipedia, the ability to navigate in unfamiliar areas, the ability to stay in touch with loved ones more easily. Even industrial uses like spreadsheets, control systems, and CAD software arguably make real peoples' lives better somewhere down the road. Personally I think the artistic possibilities opened up by computers are wonderful.

But many of these have been around, in more or less the same form, for years. And since then we've seen the rise of unprecedented surveillance, the democratization of autonomous weapons and disinformation, and economic inequality being amplified by the concentration of power in the hands that can buy it. Areas like these seem to be where the most "progress" is being made today, and if I'm being honest, it feels like we've passed a threshold where - broadly defined - "progress in computing" may have become decoupled from "betterment of humanity".

To engineers, the process of improvement is like catnip. We salivate at the opportunity to make something - anything - objectively better in just about any way. What purpose it actually serves down the line can often take a back-seat. Sometimes we choose to ignore the consequences of what we build; other times we invent things that don't need to be invented just so that we have something to work on. In either case we're strongly biased to convince ourselves that all the improvements we're making eventually translate to improvements in the world in some small way. That what we're doing is intrinsically a noble pursuit.

I don't know. I've become skeptical. The idea of having fun and doing good at the same time is incredibly seductive. But I just don't think those two things perfectly align very often - in any field, really, but especially in computing in 2020.

So what to do? I don't really know. Personally I've taken to focusing on first doing no harm. In my personal opinion, lots of software jobs right now do some amount of harm to some amount of people, and I don't want to take part in that even through one or two steps of indirection. Luckily it isn't too hard to find a company that's (roughly) a net neutral for society.

I also allow myself to continue taking joy in the process, even if it isn't important by some grander definition of important. It's okay to invent useless things, create beautiful projects for their own sake, etc. Understanding that they probably won't lend themselves to a higher purpose doesn't have to ruin the enjoyment I get from the process itself. In fact, it helps me better-prioritize how I spend my time and energy, and it can even be freeing in a way: a project doesn't have to be useful to be worth doing.

Hopefully this doesn't come across as too negative. I could be wrong about all this, and I therefore tried to keep this post in the "expression of subjective thoughts" territory instead of letting it become prescriptive in any way. I also still love what I do; I've just lost some of the sunny optimism I used to have about it. But that feels, in some way, healthy.