Want to know enough about code that you don't sound like a complete dunce? Bloomberg Businessweek has published a 38,000-word explainer/meditation/opus on coding called "What Is Code?" by programmer and writer Paul Ford. Here's our TL;DR version.
It is good! ("And thorough" - Maude Lebowski) But it's SO long. Bloomberg takes a photo of your face and puts it in a certificate of completion after you finish reading it. Ain't nobody got time for that. Which is I why I read it for you and pulled out the some important questions he answers. You're welcome.
How many people know how to code?
There are 11 million professional software developers on earth, according to the research firm IDC. (An additional 7 million are hobbyists.) That's roughly the population of the greater Los Angeles metro area.
That's actually less than I expected, based on how frequently I read articles about how everyone needs to learn to code. I'm guessing if you count people who took Code Academy for two days and then quit after triumphantly passing the first level, the number would be way higher.
What is a computer?
A computer is a clock with benefits.
Pat, but not inaccurate.
What things are computers?
Computers are computers, obviously, but Ford wants us to know that many others things are also computers:
So many things are computers, or will be. That includes watches, cameras, air conditioners, cash registers, toilets, toys, aeroplanes, and movie projectors. Samsung makes computers that look like TVs, and Tesla makes computers with wheels and engines. Some things that aren't yet computers -- dental floss, flashlights -- will fall eventually.
Did ex-Microsoft CEO and Very Sweaty Dude Steve Ballmer ever chant "Developers!"?
Indeed he did.
Years ago, when Microsoft was king, Steve Ballmer, sweating through his blue button-down, jumped up and down in front of a stadium full of people and chanted, "Developers! Developers! Developers! Developers!"
Why are developers so important?
We haven't figured out how to code in plain language, so the people who know programming languages are the only people who can write the code that runs our computers, which, as Ford pointed out, are many different things.
There have been countless attempts to make software easier to write, promising that you could code in plain English, or manipulate a set of icons, or make a list of rules -- software development so simple that a bright senior executive or an average child could do it. Decades of efforts have gone into helping civilians write code as they might use a calculator or write an email. Nothing yet has done away with developers, developers, developers, developers.
***Kate's Konspiracy Korner***
I know in my heart that developers could probably figure out how to make a code that works in plain language but then they'd be fucked professionally. It's like waiting for a weapons manufacturer to develop a tool that drains the human impulse for organised bloodshed.
What is code though?
Paul Ford does directly answer this question, except this is his answer:
We are here because the editor of this magazine asked me, "Can you tell me what code is?"
"No," I said. "First of all, I'm not good at the maths. I'm an old skeleton, yes, but I'm an East Coast old skeleton, not one of these serious platform people from the Bay Area."
Despite titling his piece in such a way that an answer to that question is 100% expected, Ford writes around the question, though he does make it obvious that code is, at least in part, the language we use to give computers instructions.
What is computer science?
Computer science is not a bunch of nerds standing around trying to measure the chemical reactions that occur when you bang computers together until they explode. UNFORTUNATELY.
A huge part of computer science is about understanding the efficiency of algorithms -- how long they will take to run. Computers are fast, but they can get bogged down -- for example, when trying to find the shortest path between two points on a large map. Companies such as Google, Facebook, and Twitter are built on top of fundamental computer science and pay great attention to efficiency, because their users do things (searches, status updates, tweets) an extraordinary number of times.
What's up with artificial intelligence?
It's just code, babies!
When you speak to Siri or Cortana and they respond, it's not because these services understand you; they convert your words into text, break that text into symbols, then match those symbols against the symbols in their database of terms, and produce an answer. Tons of algorithms, bundled up and applied, mean that computers can fake listening.
Siri doesn't love us.
Which programming languages are the most popular?
How many different languages are there?
A shit ton!!!! Ford cites a 1966 computing paper that talks about 1700 programming languages.
What's the most important language?
C is the OG mainstream programming language, created in the 1960s. Ford compares it to Latin, since it's the basis for a variety of popular languages.
The Web servers that serve up your Web pages are often written in C. It's also a good language for writing other languages -- Python, PHP, and Perl are written in C, as are many others. C is a language you use for building systems; it has the same role in computing that Latin did among Renaissance academics. You won't often meet a serious practitioner of the digital arts who doesn't have at least a passing familiarity. The more serious scholars are pretty fluent.
But what about Python?
Python is a big deal too. It's slower than C, but easier to use. And you can use it to work with other languages:
Python has a deserved reputation as a "glue language," meaning you can take code from other, lower-level languages such as C, C++, and Fortran 77 (yes, as in the year 1977), code that is close to the machine and known to be sound, and write "wrapper functions." That is, you can embed the older, faster code in the newer, slower, but easier-to-use system.
It doesn't jive well with Java, though.
Wait, Java sucks, right?
When it's a plug-in, yes, very much so, fuck you Java.
Java running "inside" a Web browser, as a plug-in, never worked well. It was slow and clunky, and when it loaded it felt like you were teetering on the edge of disaster, a paranoia that was frequently validated when your browser froze up and crashed. Java-enabled jewellery, meant to serve as a kind of digital key/credit card/ID card, also had a low success rate.
But then why is Java still a thing?
It was free to download and actually not so bad as a language: As Ford notes, it has a huge standard library, it allowed people to automatically document their work, and it can run on virtual machines.
Nooooooooooooope. It's another programming language, one designed to make webpages interactive.
PHP, or Personal Home Page, is a programming language for websites that Paul Ford does NOT like, although Facebook, Etsy, and Wikipedia use it.
There's also an extended narrative frame about an old guy coming to terms with the fact that he must defer professionally to a man wearing a whack taupe blazer.
You can read the whole thing on Bloomberg Businessweek.
Picture: Vladimir Mucibabic/ShutterStock