Here be dragons

Uncertainty, aspirations and ethics


When we speak about programming, we mean more than code. When we speak about programming, we also mean history, culture, and values.

Code is important, but without the surrounding territories, the land of programmers would be cold and desolate — a hostile place.

We need culture to feel at home. And programmers, consciously or unconsciously, participate in cultures of programming.

// here be dragons

function obsureFn() { ... }

What does this passage of code — this comment — mean?

Say I know what the function does, its outcome, but I don’t know how the code works? This is an experience every programmer knows. It doesn’t matter if you have not heard the expression.

We are free to do very different things with this experience. We can leave it be — let the obscure passage of code linger — or we can do our best to explore this unknown territory. We might fail, but as Alan Kay once put it,

if you don’t fail at least 90 percent of the time, you’re not aiming high enough.

As programmers, we have a choice. Either we are frightened by dragons and mysterious monsters, and so by is forced to retreat into a medieval mindset. Or we can embody the spirit of Columbus and view unknown territories, not as populated by beasts and behemoths, but as white spots in our knowledge, empty spaces implying possibilities to learn more about programming.

If we learn to handle the experience, possibilities turn to opportunities. We begin to hunt monsters, hunt obscure code; as the popular saying goes, the hunted become the hunter.

I should say that the spirit of Columbus only has this meaning in this essay and no other. Columbus and his companions were cruel men who tricked, killed, and enslaved the people they met in the New World. Columbus might have embodied a new view on knowledge, uncertainty, and cosmos but at the same time, Columbus acted like a monster in the New World. Still, Columbus embodied the spirit of Discovery.

The invention of white spots

We know the meaning of ‘here be dragons’. But what did it mean when it came about? Or rather, what is the ‘significance’ of the phrase?

‘Here be dragons’ was not present on medieval maps — it’s a retrospective.

Sometimes cultures and civilizations emerge seemingly from nowhere. Just think about the Greeks. We often hear about the uniqueness and quality of Greek thought and art. But this quality did not emerge from a void and the road to the Golden era was long, and above all, characterized by dialogues, meetings, and trade with nearby, more advanced cultures.

At the time of Columbus, much of this was true also for Europe. Europe at large was fragmented, and changes in the economy and the rising of a new class (the bourgeoisie), allowing some freedom of action, some separation from the Crown, but it is perhaps equally important to understand why Europe began to relate differently to maps full of monsters?

The ships were better, true. And so were compasses, but this fact doesn’t fully account for the increased travel by sea. My point is that we should not explain why Europe entered an era of Discovery with the models stating ‘they did it because they got the means to do so’.

We have good reasons for believing that we should not understand medieval maps literally, but understand them as didactic, moralistic documents, in the same manner, modern research view ‘limits’ and ‘boundaries’ symbolized by monsters in the mythology of ancient Greek.

The significance and moral of these creatures are that we should not cross this or that border, ‘else there are no guarantees of what will happen’.

And this also resembles what hackers mean when using the sentence ‘here be dragons’ as a comment in code.

Medieval maps were not made for navigation. For this purpose, seafarers used nautical charts, special-purpose maps, and astrolabes, the sextant, and similar instruments. The compass was not a new invention in the days of Columbus; in fact, compasses had begun emerging in Europe and in the Arab world around 1300 (in China they were around very early).

Instead, seafarers of the middle ages used portolan charts, displaying boundaries between land and water, lines for how and when to use the compass. However, the compass in itself was in these days, not a very advanced instrument and most got further by the use of astrolabes and intimate knowledge of constellations of the sky at night.

What do maps filled with monsters tell us?

Buildings, pictures, music speak to us. They have a semantic of their own. Visiting a cathedral we intuitively understand its language, what it communicates. We understand essential aspects of Christian theology just by looking up, and in amazement see the ceiling peak upwards against the sky. The smaller temple within the larger, made possible by the grace of God. A God we should love, but also fear as we fear all things powerful.

The cathedral implicitly tells us how small and fragile we are. It also separates us (more so in the middle ages) from the cold, hostile world outside. A cathedral communicates: ‘you belong here, and if you show God proper respect this can be your home tomorrow, but today settle for this cathedral’. Well, to those of Christian faith anyway (I am an atheist).

Similarly, the purpose of images of monsters is generally to scare. But this was not first hand a part of a politics of fear, but a part of how the world was understood.

In a medieval church, there were plenty of horrors. Monsters communicate not only ‘stay away’, but also ‘know your place’, ‘know that you are fragile’. Indirectly it is also a reminder of safety.

By a mark, we encapsulate what we don’t understand and thus make it understandable, if only as a symbol of what we don’t know, what we should not do.

Something interesting to note is that fear of the unknown, uncanniness, is emphasized by Freud in a famous essay named “The Uncanny”. Freud describes an experience we all know: that which threatens us and at the same time remain something we can’t fully comprehend, is was scares us the most.1 ‘The German word unheimlich is obviously the opposite of heimlich, heimisch, meaning “familiar,” “native,” “belonging to the home”; and we are tempted to conclude that what is “uncanny” is frightening precisely because it is not known and familiar. Naturally not everything which is newand unfamiliar is frightening, however; the relation cannot be inverted. We can only say that what is novel can easily become frightening and uncanny; some new things are frightening but not by any means all. Something has to be added to what is novel and unfamiliar to make it uncanny.’ ― Sigmund Freud in The Uncanny (1919)

Even though we have good reasons to be afraid of a lion, we know the lion to be ‘only an animal’. But when we look at the horizon and see no land, when we look into the depths of the sea, and when we experience a storm while on a boat we face experiences we don’t know what to feel and think about. True now, and even more so on a ship 1492.

We could try to climb a tree and so by escape the lion. But how would we escape the horizon?

The relationship to the Sublime would change during the Enlightenment and the following period of Romanticism, as people became intrigued by it. But during the middle ages, the Sublime meant horror, while we later came to be fascinated by the experience, although respecting it.

Perhaps this is the true significance of the monster in this age. A symbol for we cannot understand but should fear. An attempt to by use of a name, a spell, have power. If we name the fear we don’t understand, we can tell others to avoid it. The contours for the fear of the Unknown may have moved its borders, but this is fear seems universal.

As programmers, we are in a privileged position. It’s highly unlikely our code will jump out from our screen and hunt us down and we should never settle with a comment like ‘here be dragons’. If we need to comment on code and state ‘here be dragons’, we can but we should also return to the passage, do our best to understand it, and perhaps refactor it?

We need the spirit of Columbus as an ideal. It doesn’t matter if we always act as Columbus traveling into the unknown, but we should try when we can.