Here be dragons

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. Therefore programmers also participate in cultures of programming.

// here be dragons

What does this passage of code mean? I know what it does, its outcome - but I don't know the code work? 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 being 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 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 these essays 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.

The spirit of Columbus is merely a metaphor with all the usual merits and limits accompanying metaphors we use. I use it only as a metaphor for curiosity; to describe the spirit of Discovery.

On medieval maps & 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.

Trade and dialogue was the vessel for advancements, and this vessel was driven by numerous small, fragmented mini-states (polis). Surely the greeks were curious, but we also have to have in mind that they were dependent on trade and the small scale polis helped to create dynamic milieus.

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 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 such instruments. The compass was not a new invention in the days of Columbus, 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, but also straight 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 monster tell us?

Buildings, pictures, music speak to us. They have a semantics 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 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. And 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 (if they're not at hand right here, right now).

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 threats us and at the same time remain something we can't fully comprehend, is was scares us the most.

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 at a boat we face experiences we have good reasons to think we don't know what 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, they were 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. 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. We need the spirit of Columbus as an ideal. It doesn't matter if we always act as Columbus, but we should try when we can.

The spirit of Columbus, refactored

Whatever you cannot understand, you cannot possess.

― Johann Wolfgang von Goethe

I would guess from my readings, Columbus was not very curious but admittedly a courageous person driven to the horizon by material interests - a raging hunger that made him cross limits.

And limits he crossed. Columbus and his consorts crossed every reasonable moral boundary after arriving at the New World. He was not into discovery as a venture, to expand his World's boundaries of knowledge; he was in it for the money. Or actually, I think the truth can be complicated - perhaps all said is true?

The years to come, computers, IT and programming will increase its power and hold of humanity. There is no turning back, and I believe programmers have a special responsibility in this situation.

We should be guided by curiosity, but we should balance it against values. We should hunt monsters when we find them in code. But we should be careful not ending up as monsters ourselves.

Our drive to be able programmers needs balance. We do not only need a yet better understanding of subject matters related to programming, we also need culture and moral perspectives.