It’s a normal afternoon in July. I’m at work in my little corner, speaking into the camera. The children are in their rooms, regressing. I leave the bedroom-office to get more coffee. My spouse is in our small kitchen, kneading dough while on a video call of her own. I eavesdrop for a minute. She’s not a programmer, but she’s talking about a database. The database lists people who need food, cooks, drivers, and deliveries.
We are past the New York City Covid-19 peak. Things have started to reopen, but our neighborhood is in trouble, and people are hungry. There’s a church that’s opened space for a food pantry, a restaurant owner who has given herself to feeding the neighborhood, and lots of volunteers. You have to get calories to people, so you need aluminum trays, baking flour, gas, schedules, and phone numbers. You need to know who’s halal or vegetarian and who wants turkey wings. It’s a complex data model. It involves date fields, text fields, integers, notes. You need lots of people to log in, but you need to protect private data too. You’d think their planning conversations would be about making lots of rice. But that is just a data point.
The tool the mutual aid group has settled on to track everything is Airtable, a database-as-a-service program. You log in and there’s your database. There are a host of tools like this now, “low-code” or “no-code” software with names like Zapier or Coda or Appy Pie. Amazon just launched its own, called Honeycode. At first glance these tools look like flowcharts married to spreadsheets, but they’re powerful ways to build little data-management apps. Airtable in particular keeps showing up everywhere for managing office supplies or scheduling appointments or tracking who at WIRED has their fingers on this column. The more features you use, the more they charge for it, and it can add up quickly. I know because I see the invoices at my company; we use it to track projects. (Though Airtable has made its Airtable Pro plan free for certain Covid-related efforts like the mutual aid society.)
“Real” coders in my experience have often sneered at this kind of software, even back when it was just FileMaker and Microsoft Access managing the flower shop or tracking the cats at the animal shelter. It’s not hard to see why. These tools are just databases with a form-making interface on top, and with no code in between. It reduces software development, in all its complexity and immense profitability, to a set of simple data types and form elements. You wouldn’t build a banking system in it or a game. It lacks the features of big, grown-up databases like Oracle or IBM’s Db2 or PostgreSQL. And since it is for amateurs, the end result ends up looking amateur.
But it sure does work. I’ve noticed that when software lets nonprogrammers do programmer things, it makes the programmers nervous. Suddenly they stop smiling indulgently and start talking about what “real programming” is. This has been the history of the World Wide Web, for example. Go ahead and tweet “HTML is real programming,” and watch programmers show up in your mentions to go, “As if.” Except when you write a web page in HTML, you are creating a data model that will be interpreted by the browser. This is what programming is.
Code culture can be solipsistic and exhausting. Programmers fight over semicolon placement and the right way to be object-oriented or functional or whatever else will let them feel in control and smarter and more economically safe, and always I want to shout back: Code isn’t enough on its own. We throw code away when it runs out its clock; we migrate data to new databases, so as not to lose one precious bit. Code is a story we tell about data.