Home For Fiction – Blog

for thinking people


September 4, 2023

The Emperor’s New Clothes and The Problem of Experience

Programming, Society

experience, ignorance, nonconformity, programming, society

You likely know the story of the Emperor’s new clothes: An arrogant emperor is fooled by some fast-talkers into marching through the streets naked, because he was convinced he was wearing magic clothes – magic because stupid people couldn’t see them, which assured nobody dared to talk about the obvious. It took a kid shouting “Why, the Emperor is naked!” for others to gradually dare to agree. We ignore beginners and rely on experience. But the problem of experience – and this is clearly one of the lessons in “The Emperor’s New Clothes” – is that sometimes beginners can help you.

The story of the Emperor’s new clothes is one of my favorite classical fables. It’s deceptively simple (in that it contains several levels of interpretation) and ever-relevant. Indeed, it seems to have become even more relevant in our times, where the internet has facilitated a phenomenon of bandwagon fallacy on steroids.

All these are thoughts I’ve been having a lot lately, as a result of a… traumatic programming experience I’ve had. The topic of this post is first and foremost about society, so I’ll keep programming jargon to a minimum. Regardless of your background – programmer or not – being aware of the repercussions involved in the Emperor’s new clothes and what it is about is crucial.

In short, the way we use appeal to authority, glorify similarity, and ignore beginners is deeply problematic.

“The Emperor’s New Clothes” is an extremely popular metaphor because it’s extremely powerful. Graffiti from Tallinn. Photo by Ivo Kruusamägi, CC BY-SA 4.0

The Emperor’s New Clothes: A Traumatic Programming Experience

Since I want this post to be less about programming and more about society, I won’t offer any concrete or expansive details. But I’m willing to bet, any front-end programmer out there will instantly recognize what I’m talking about (and this should give you pause).

So, I recently decided to experiment with an extremely popular JavaScript library, one promoted everywhere and required in most front-end programming jobs – usually by managers and other pencil-pushers that just want to be trendy. This particular library supposedly is easy as pie to learn for a JavaScript developer and makes your life easier. Heck, it was developed by one of the largest tech behemoths out there. It’s got to be great, right?

I’ll spare you the details (as I promised), but a mini rant is included free of charge. So, I very quickly realized several things:

Now, what’s that got to do with the Emperor’s New Clothes?

The Beginner Asks the Questions Experience Has Become Accustomed To

Let’s be unequivocally, 100% clear about it: I’m an absolute beginner when it comes to this library. I’m simply not qualified to talk about it and, because I don’t want to accidentally misinform you, I’m willing to readily accept there are some uses for it.

At the same time, I also discovered something intriguing: After my initial shock and disbelief (“Mommy, why is the Emperor naked?”), I started searching around the net. I was both surprised and not-so-surprised to notice that others, far more experienced than I am, had reached the exact same conclusions.

If you’re a programmer – or just curious, which is a great thing to be! – here is some further reading, which of course also reveals what was the library that caused my Emperor’s-new-clothes experience:

The “Reinventing the Wheel” post in particular has a phenomenally insightful excerpt, ironically relevant to another facet “The Emperor’s New Clothes” is about, dogma:

Every flavor of tech has its dictators. The snobby types who will tell you that your code sucks if you ever make the mistake of using an old-skool function() declaration instead of an oh-so-cool arrow function.
[…]
If you’ve ever taken a Marketing 101 course, you learn that people need a compelling reason to change products.
[…]
Sadly, these “market forces” tend to get perverted in the programming community. Joe comes up with a New Way to write JavaScript. He yells to all of his buddies that they should code in the New Way. And… everyone just shrugs.

But what if Joe is seen as a “thought leader”? What if he’s already hailed by the fanboys as a programming “legend”?? Well… in that case, the fanboys start lining up behind him. Not only do the fanboys start shifting all of their coding to mirror Joe the Thought Leader, but they also start code-shaming you if you don’t fall inline. [original emphases]

This stunning excerpt reveals the dangers of ignoring the lessons of “The Emperor’s New Cloths”.

The Emperor’s New Clothes: Lessons from Kids

Kids, beginners, often ask silly questions. The problem is, sometimes they also ask questions experience considers silly. As a result, certain insights can be lost.

Of course, something that is truly insightful surfaces sooner or later – at least in most cases. I mean, as the plenty of articles professional, more experienced programmers than I am show, I was neither the first nor the only person to have had these thoughts about this particular JavaScript library.

But can we afford to wait?

In my case, I only lost some hours of my time – and some hairs from my head, as I was pulling them in exasperation and disbelief.

But if you were the manager of a company about to implement a certain strategy and a so-called junior level employee voiced concerns, what would you do? Especially if “experience” (more senior people) assured you it’s all good.

The thing is, as I said, kids often ask silly questions. Another thing is, we tend to conflate the two meanings of the verb to listen: i) listen to what someone has to say; ii) follow someone’s suggestion.

Beginners are often wrong or pose silly questions. But it’s one thing not to listen to them (ii) and another not to listen to them (i).

home for fiction

The Unknown Knowns

Slavoj Žižek once made a remarkable observation, which I paraphrase: There are known unknowns and unknown unknowns. Self-evidently, there are also known knowns. But what people don’t realize is that there are also unknown knowns; the things you know, which you don’t know you know.

This isn’t some linguistic or epistemological trickery. But how many times did you experience something and then, after the fact, you felt not the least bit surprised, as if you already knew? Žižek has an apt example: The beginning of WW1. Everyone thought it was impossible until it started. Then, everyone agreed war was inevitable.

Well, hang on a minute; how can both be right?

They can, if we’re dealing with unknown knowns. Indeed, I’ve even had some things to say about that in my own post about Dracula “foretelling” the Great War.

The Emperor’s New Clothes Is About Understanding the Unknown Knowns

What all these experiences have in common is an underlying concept of subconscious knowledge – or, in lay terms, of good ol’ hunch.

Deep down, everyone knew the Emperor was naked.

Deep down, everyone knew war was inevitable in the early 1900s.

And yes, more prosaically, deep down, everyAll these instances of ‘everyone’ are metaphorical. That’s the problem of conformity: that people will prefer self-deception in order to avoid dealing with unpleasant consequences. programmer knows the choice of certain libraries and frameworks is not a result of fulfilling a need but of trends, managerial decisions, and many other complex factors.

The truth is, most of us have a hunch when something is off; it’s a survival mechanism. Quite often, hunch is proven wrong. But that’s not enough reason to dismiss it without reflection and a critical approach.