1.9 C
New York
Thursday, February 22, 2024

‘Real’ Programming Is an Elitist Myth

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.

But programmer culture tends to devalue data. The database is boring, old, staid technology. Managing it is an acronym job (DBA, for database administrator). You set up your tables and columns, and add rows of data. Programming is where the action is. Sure, 80 percent of your code in Swift, Java, C#, or JavaScript is about pulling data out of a database and putting data back in. But that other 20 percent is where the action is, where you make the next big world-shaking thing. Which is great! Go to! But don't forget that most of the world is trying to manage their small business with a really messy spreadsheet.


I've always loved that moment when someone shows you the thing they built for tracking books they've read or for their jewelry business. Amateur software is magical because you can see the seams and how people wrestled the computer. Like outsider art. So much of the tech industry today is about making things look professional, maybe convincing Apple to let you into the App Store to join the great undifferentiated mass of other apps. That's software. When people build their own Airtable to feed the neighborhood, that's culture.

Meanwhile my wife is becoming a data modeler. She has new friends on Slack, and they've divided the neighborhood into zones, to cluster deliveries. They write notes in the notes field in Airtable, and people read and respond to those notes. Community happens that way. The community creates the data, and the data represents the community. Beats doing nothing.

Our giant social networks are just databases too. Of course they own all the data, and the data model. You would never use Instagram to manage food deliveries. Instagram is for uploading photos, looking at photos, and liking photos in endless sequence. But really all that's different here is that, instead of liking photos—not the worst thing a person can do, mind you—people are making sure a nice elderly lady gets callaloo greens. Or even a crabby elderly lady. Or even chard. It's the same basic technological deal, except the energy of the conversation flows out of the community instead of into the platform. No one owns their network, although the data lives on servers controlled by Airtable.

I get asked a lot about learning to code. Sure, if you can. It's fun. But the real action, the crux of things, is there in the database. Grab a tiny, free database like SQLite. Import a few million rows of data. Make them searchable. It's one of the most soothing activities known to humankind, taking big piles of messy data and massaging them into the rigid structure required of a relational database. It's true power. Or mess around with Airtable or its no-code ilk. If you do it long enough and work with friends, you can do wonderful things. You can build data models that work well enough to feed people who need the help. That's real programming.

This article appears in the September issue. Subscribe now.

Related Articles

Latest Articles