There’s something unsettling about the word “real” when used in phrases like “real job” or “real adult” or “real programming language,” and although I think we often use it without bad intent, I think it often ends up harming and belittling people on the receiving end.

Saying “real something” is implicitly saying other things aren’t real enough or aren’t in some way valid. We often associate this with a professional job.

It’s kind of demeaning to say a blogger isn’t a “real writer.” What’s often meant instead is the blogger is not a professional or paid writer, but that doesn’t mean what they write is any less real.

The good news is if you write words then you are a real writer!

As someone who has worked on programming languages for learning at both Hopscotch and Khan Academy, I’ve heard the term “real programming” more than I’d like to admit.

Never in my life have I heard so many paid, professional programmers demean a style of programming so frequently as they do programming languages for learning. I’ve even been told, vehemently so, by a cofounder of a learn-to-Javascript startup “we don’t believe in teaching toy languages, we only want to teach people real programming.”

What is a real programming language anyway? I think if something is meant to be educational it’s often immediately dismissed by many programmers. They’ll often say it’s not a real language because you can’t write “real” programs in it, where “real” typically means “you type code” or “you can write an operating system in it.”

The good news is if your program is Turing complete then it is real programming!

Our history has shown time and time again the things we don’t consider “real” usually become legitimized in good time. Why do we exclude people and keep our minds so narrow to the things we love?

Special thanks to Steph Jang for the conversation that inspired this.

Speed of Light