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

  • My @dukeinnovation capstone students at @adwerxre learning about #sales, #bizdev, and #closing from one of the best: @cleithe #entrepreneur #hustle #innovation #fieldtrip
  • Kirsten Hamstra, global head of social media @sassoftware, talking about corporate #socialmarketing strategies with my @dukeinnovation class: "A lot of brands think social only belongs in the marketing department, but the companies that are really benefiting from social are the ones that understand how it can help across an organization -- #HR, #recruiting, #R&D, #sales... everything."
  • A mini-reunion of the dorm formerly-known-as-Aycock, 2001. Who wins the award for least-receded hairline? #bluedevils #tildeathdouspartin
  • A little @dukeuniversity alumni love from @natedevil and @raleighsparty's wedding. #truelove #tildeathdouspartin #mawwage
  • Pretty much how I feel after a 7 meeting day. #entrepreneurship #hustling #sales #closing #wheatenterrier #furbaby #exhausted
  • Suggested caption: "I took Dr. Dinin's #learningtofail class and all I got was this stupid power strip." Watch My Story to see what other worthless things my students bartered for during today's failure challenge #entrepreneurship #tradingup #paperclips  #powerstrips
  • Teaching my little girl to #dreambig 🐻😆
  • For some reason, a discussion about the risks of using #socialmedia for professional development while hanging out with @fhi_duke's PhD Lab students seemed like a delightfully ironic time to snap a #selfie. #socialmediamarketing #immature
  • In today's #learningtofail class, we answered the age old question: What happens when 24 @dukeuniversity students go Trick-Or-Treating around campus for one hour on the day before #halloween? See My Story for the answer. Spoiler alert: it ends with almost 5,000 pieces of #candy 🍭 #entrepreneur #trickortreat #sugarhigh
  • When life gives you lemons, throw them away, go buy a 48oz tomahawk ribeye, and grill it up! #steak #sousvide #cholesterol #moo
  • #pumpkincarving with the @dukeinnovation education team. #entrepreneur #teambuilding #halloween #sharpthings
  • Hosted my first dorm dinner tonight. Ate some #chicken and talked #entrepreneurship with the kids from Brownstone. Tried to convince them to stop worrying about which major is going to get them a job and start taking classes they enjoy. After all, as the kids like to say... #yolo 🤣

Follow Me!