A Pro-Grammar Nerd: Beautiful Code Makes Beautiful Language

A Note from Aaron: I published this post on my old blog when I was in my 20s and thought I knew more than I did. When launching my new site, I could either trash old content like this or port it over. I decided to port it over as a personal archive and reminder of my own evolution. In other words, sorry it sucks.


For my birthday, my RocketBolt cofounder, Matt, sent me a $20.00 Starbucks “eGift” card.1 Take a look at the notification email:

Do you see the error? I noticed it immediately because, in addition to being a developer, I’ve spent six years teaching Freshman Writing, and it’s an error my students constantly make. Let me break out one of my giant red pens in the hopes that, just like my students, both you and Starbucks might learn to hate me appreciate my constructive criticism.

Because Matt Hofstadt is one person, he can’t be the antecedent of a plural pronoun like “they.” The sentence doesn’t make any sense, and the mistake is surely damaging the “high quality” brand Starbucks cultivates in order to sell $5 coffee. If Starbucks is lucky, one of its employees is reading this blog post and correcting the problem right now. If not, I can’t help but worry that poor use of the English language is causing Starbucks to alienate the pretentious-douchebag-grammar-nerd demographic.2

Speaking of pretentious-douchebag-grammar-nerds, allow me to explain the evolution of the “I’m going to refer to a singular noun with a plural pronoun” linguistic phenomenon. It’s a product of increased gender equality. People used to generically refer to everyone as males, but you guys probably already knew that, right? As women (rightfully) began to take offense to always being referred to as dudes, a writer could either refer to gender-neutral, singular nouns with a clunky “he/she” type of construction, or he/she could opt for a less-awkward-to-write but absolutely wrong “they” or “them” pronoun. If you’re wondering what option writers tend to prefer – even though it makes no sense – scroll back up to that image of a Starbucks email.

Despite what this post might imply, I’m actually not the kind of guy who believes writers should unquestionably adhere to every grammar rule. To paraphrase Winston Churchill, strict adherence to grammatical rules simply for the sake of following rules is the sort of English up with which I will not put.

I don’t care if you end a sentence with a preposition. I don’t care if you put periods inside or outside your quotation marks. And I certainly don’t care if you start a sentence with a conjunction. However, even in a digital world where text without professional editing is globally accessible and likely to have errors — including this post — I don’t think I’m being unreasonable by suggesting we maintain the grammar practices that computers actually make easier.

Luckily, we still have time to fix a grammar problem, and the programmers of the world can help. By using programmatic logic when we code dynamically generated text, we can determine which gender a noun is referring to and then fill in the pronoun accordingly. It goes something like this:

[if $person == female :  return she ; else : return he ;]

In a case like the generic email I got from Starbucks where the gender of the purchaser is likely unknown, the solution is even easier. Try this little programmatic trick:

[$first_name] [$last_name] wanted to make your day so [$first_name] sent you a $20.00 USD Starbucks Card eGift to spend on your favorite beverage.

Wasn’t that easy? And yet, every day I witness discussions about the importance of beautiful, efficient, semantic code that never mentions outputting proper sentence structures. Why is it OK to harp on things like “semantic css classes” but it’s not important for dynamically generated text to use proper grammar? Let’s not forget that the end result of beautiful code is more than functionality and design. The code we write often dynamically outputs the words our users read, which means no matter how much you hated your Freshman Writing instructor, he or she probably taught you a lesson that could improve the quality of your code.

Update

This post made the front page of Hacker News because people apparently have some very strong (and in some cases) strange notions about both grammar and morality. Anyhow, I should do what I always tell my students. If the structure of the sentence causes so much controversy that it distracts from the meaning, change the sentence. Allow me to offer an alternative that solves everything:

Matt Hofstadt wanted to make your day by sending you a $20.00 USD Starbucks Card eGift to spend on your favorite beverage.

Wasn’t that even easier?

Footnotes

  1. Thanks, Matt! It was really a $100 gift card, but I want everyone to think he’s cheap.
  2. Judging by the comment threads on most websites, that’s a surprisingly large demographic.

Share

I teach in Duke University’s Innovation & Entrepreneurship program and founded RocketBolt. I write about startups, pedagogy, entrepreneurship, engineering, and poetry. They’re all related, I promise.

Leave a Reply

Your email address will not be published. Required fields are marked *

Instagram

  • Even Santa Clause needs a little help finding good parking on a college campus. #parkingfail
  • Today's @dukeinnovation #failure challenge: how far can you toss an egg without it breaking? #learningtofail #entrepreneurship #egglympics
  • Had my @dukeinnovation students sell lemonade again today, but this time they could only walk around with empty bottles. They sold $434 worth of... well... air (versus $334 of actual lemonade last week). The lesson: people don't buy products; they buy stories. #entrepreneurship #learningtofail #lemonade #hustle
  • A stranger cutting off a lock of her hair for one of the attendees of my @dukeinnovation #learningtofail workshop #entrepreneurship #rejectiontherapy #haircut
  • Lemonade challenge results: $334. Not bad for a $20 investment and one hour of work. #learningtofail #maybenot #entrepreneurship
  • My @dukeinnovation students selling lemonade around campus to generate resource capital for their #learningtofail class #entrepreneurship #startups #innovation #fundraising #laborday
  • A new @dukefootball fan in the making... #letsgoduke
  • The white board at the end of today's @dukeinnovation #learningtofail challenge and 200+ games of tic tac toe with strangers. #entrepreneurship #innovation #firstdayofschool
  • Let's go (to sleep), Duke!
  • The @dukeinnovation #EdTeam giving our newest member a proper @monutsdonuts welcome #entrepreneurship #innovation #highered #donuts
  • The dangers of being a dog in a house with a 2-year-old princess. #wheatenterrier #wheatenterrorized
  • First #daddydaughter shoe shopping trip came much earlier into my fatherhood tenure than I'd anticipated. Thanks for helping us find some good ones, @nordstrom. They were #mommyapproved when we got them home. 👍

Follow Me!