Every once in a while, people wonder "what's the most popular programming language on the planet?" If you check the recent surveys, usually they'll say it's Javascript or Python.
But I always argue these surveys are off base.
I maintain that if you wanted to find the place where the most folks on the planet are doing programming — by which I mean they are i) issuing commands to a computer that coax it to ii) manipulate and crunch data, to iii) store things in databases, to iv) extract them, and then v) show the data someone else, and to vi) make digital tools that other folks use …
… the answer is simple: It's the spreadsheet.
When I say "spreadsheet" I mean Excel, Google Sheets, Apple's Numbers, or any other similar tool. This is a nuttily popular category of software: There are an estimated 2 billion people using spreadsheets on the planet.
Spreadsheets are thus the most popular programming environment on the planet.
Now, you probably noticed I called it the most popular programming "environment", heh.
I didn't call it a "programming language."
That's because spreadsheets are even better — at least when it comes to being welcoming to newcomers. Basically, spreadsheets like Excel or Google Sheets achieve the remarkable feat of a) rolling a programming language inside b) a code-writing IDE that also includes, natively, c) a database and d) the ability to create UIs, too.
That is an absolute home run of a coding environment, people! It is thus no wonder spreadsheets have conquered the world. They have also, along the way, introduced hundreds of millions of folks to core concepts in programming.
Let's break this down a bit. Here's What Spreadsheets Do Amazingly Right As a Gateway To Coding …
1) Each spreadsheet is a simple and visual database
When most people try Excel, what's the first thing they do? They just shove info into it.
Literally, they shove anything into it.
They lists activities they hope to do on vacation. They make to-do lists. They create lists of sales contacts. They list possible names for their impending child, their new puppy, their goldfish. They use spreadsheets to plan live events, keeping track of who's been invited and who's RSVPed.
I'm not talking about people who are using some fancy API to auto-input this info. Nah. I'm just talking about the ones who open Excel and … type it all in, manually.
We nerds think of spreadsheets as a tool for parsing, crunching, and visualizing data. But a staggering amount of people enjoy using spreadsheets just for storing things. It works incredibly well at this task. A spreadsheet is a highly visual, easy to use database: A place people can quickly write, see and re-find things.
I mean, sure, obviously, people use it to calculate things, too. Hundreds of millions do so. They're in there adding stuff up, as we speak.
But don't underestimate how many people use a spreadsheet only to store info. I've spoken to managers at Fortune 500 companies who routinely encounter high-level employees who aren't even aware Excel can do calculations.
You can understand those folks' mistake! For them, it was enough — more than enough — to have a piece of software that let them store info in columns and rows. That is an organizational principle with striking visual power, and massive usefulness.
But here's where it gets interesting.
The database-ness of a spreadsheet is key to its role as a gateway for coding. That's because once people have amassed a big pile of personally interesting data …
… they often realize, "hmmmm, I'd like to add up some sums, and, like, automatically tally up this info. How many people are coming to that live event, anyway?" And before you know it, they're stumbling across the "=SUM()" function and discovering the next key thing about spreadsheets, which is that …
2) Spreadsheets offer an incredibly gentle on-ramp to computation
I'd argue that Excel's "=SUM()" is the most frequently used "hello world" in the history of computation. It's very often the first formula people learn when using spreadsheets. Indeed, SUM is so primal and useful a calculation that Apple includes it as the default formula autogenerated when you use your mouse to highlight a range of cells.
For people who've never done any programming, spreadsheets offer a very simple way to ease towards it — by writing simple formulas that manipulate data. Users dip their toe in adding up columns of numbers. Then they realize they can subtract and, whoa, multiply and divide too! And the truth is, you can do a shockingly powerful amount of data manipulation with just those four totems of grade-school math.
But I've often taught people how to use spreadsheets. So I've seen the moment that really fries newbie's noodles. It's when they discover the power of linking cells together. They realize, hey, wait: This cell's value can be made reliant upon that cell's sum of stuff, which changes when this other sum alters. Their head begins swimming with possibilities! Soon they're crafting arrays of data that squirt results into other arrays, and they're building functions that talk to other functions.
And now they're neck-deep in some of the core concepts of programming qua programming.
And you can fall far into that deep end, too! The complexity of computation that people achieve with spreadsheets can be mindboggling. When I was researching my book Coders, I spoke to hundreds of developers about how they originally got interested in programming. A surprisingly big minority told me they arrived via spreadsheets. They'd spent years crafting ever-more byzantine and complex and powerful models for (say) the sales department of their firm, until one day they stumbled across an online tutorial for Python or R, and … the concepts felt familiar. So they dove into that pool and taught themselves straight-up programming very quickly, because everything they'd done in spreadsheets transferred over.
3) Spreadsheets are an IDE and interpreter all in one
Whe people migrate from spreadsheets to coding, one thing often trips them up: Getting used to writing their software in one environment (like an IDE) and deploying it somewhere else.
That division seems duh obvious to anyone who comes to programming via programming. But the thing about a spreadsheet is that it is, in a way, an IDE and a deployment environment rolled into one. You write the formulas and functions in the spreadsheet, and the spreadsheet interprets the code, then displays the results … in the spreadsheet. It is a deliciously self-contained environment.
This partly explains why hacking on a spreadsheet is so much fun: You never need to leave that single environment. You see the fruits of your labor instantly.
In the world of regular build-an-app coding, the closest analogue I can think of to this super-fluid-and-easy experience is in the generation of all-in-one code-editors-and-interpreters, like Glitch or Repl.it. But even with these you are ultimately flitting back and forth between a code editor and the app view. With a spreadsheet, in contrast, the code editor is the app.
Which brings me to my next point, which is that …
4) With a spreadsheet, the UI is built in
Say you've built a spreadsheet — some useful little that could help your team at the office. You want to share it with them, so they can input data to it. Can you design it so it's obvious where they should input stuff?
Hell yeah. Because spreadsheets mix words and styling with their number-crunching formula logic, they essentially include UI. I mean, rows and columns are UI, on their own; but you can style things even more, too. When the members of one my bands, the Delorean Sisters, were having trouble coordinating times to practice (there are six of us, so it's a mess) I quickly ginned up a shareable Google Spreadsheet that autopopulates a column with dates, and where band members could an X next to any date they can rehearse in, with simple logic that identifies and highlights any row where everyone's free. It took only a few minutes to make.
Of course, with Google Sheets and online Excel sheets, you can get even fancier, connecting them up with online forms with even more UI. As I wrote for Wired a few years ago, spreadsheets are so inherently app-like in nature that startups like Rows and Spreadsheet.com and Grist and Airtable have pushed that envelope even further, offering tools that let you develop what are basically web front-ends on top of spreadsheet logic.
Of course, these days spreadsheets have merged even more profoundly with coding. Google Sheets has for a while now allowed you to create your own custom functions using Javascript. Excel has for years integrated Visual Basic for Applications, and just this week Microsoft announced that you'll be able to use Python inside Excel, too.
And don't get me wrong — there are many, many things spreadsheets can't do, or can't easily do. That's why the world still needs so many software developers.
But when it comes to empowering everyday folks to do something programming-like?
All hail the spreadsheet.
(Enjoyed this little paean to spreadsheets? Then hunt down that "clap" button and crank away. It's good for up to 50 claps, per reader!)
I publish on Medium two times a week; follow me here to get each post in your email — and if you're not a Medium member, you can join here, and about half your monthly fee goes directly to supporting my writing on Medium, while also giving you access to everything else on the site.
I'm a contributing writer for the New York Times Magazine and Wired, and author of "Coders". Follow me on Mastodon or Instagram.