Home

Random

Bill Thompson
20 October 2004

coding

If you work for Microsoft – and many people are happy to do so – then one of the things you fear is a critical email from Bill Gates, company founder and now chief software architect. And if you work at a high enough level in Microsoft, then you may even be in the presence when you are told that your code sucks, your ideas are inadequate and your insights are shallow.

But if Gates really wants to show his anger he will simply look at you with disgust and mutter: “that is so random”. In the world of the geek – and Gates remains a geek despite his great wealth and business achievements – there are few worse insults.

Randomness, or “gratuitous inelegance”, is one of the worst jibes to throw at a programmer because it implies an inability to order the world in one’s own intellectual image. It is a disorder that brooks no sympathy – “maybe he’s ill, or maybe it’s just randomness” – and one that causes intense frustration.

Random code is not necessarily unpredictable. It is code which does not seem sensible, or work in the obvious or simplest way. If a programmer has written code that works in a random way then working with that programme is harder than it needs to be. To a geek, randomness increases coding entropy, and this is a bad thing.

For random to have meaning, the world must be organised and predictable, expressible in code, and it must be clear what “simple” and “straightforward” mean. A serious programmer will tell you, in all seriousness, that “reality is 50,000 polygons a second”, because geeks have a fundamentally Newtonian view of reality, one in which all numbers can be calculated and all values can be known. (If the human eye was a video game then 50,000 is the number of different shapes, or polygons, it would be sending up the optic nerve every second.) If a variable is given a value, it keeps that value. If there is no algorithm then there is no world. To be random is to defy the fundamental organising principle of the universe, to be removed from the godhead. Only the devil could wish such a thing.

Yet random can also be turned around and used as a term of approval. Sometimes a great hack involves clearly random behaviour – a four-dimensional array of pointers to functions that is indexed by treating the ASCII code of the third letter of an input string as a four-tuple might provoke an admiring “that is so random!” from a fellow geek.

And don’t worry if you understood none of the previous sentence – the point of most hacker jargon is precisely to exclude unbelievers (email me at [email protected] if you want an explanation). There are, of course, times where random is simply what the dictionary would have you believe it means: unpredictable. Even then programmers like to play with the meaning in ways that can disconcert the non-geek. A programme routine that generates a random number, for use in cryptography or gambling, may in fact be “pseudo-random”, aspiring to but not quite achieving true randomness. Or it may be too random to be dealt with, as in the famous – though perhaps apocryphal – notice pinned to the console of a mainframe computer in the 1970s, which warned unwitting users:

“The random number generator may behave unpredictably.”

Had enough of ‘alternative facts’? openDemocracy is different Join the conversation: get our weekly email

Comments

We encourage anyone to comment, please consult the oD commenting guidelines if you have any questions.
Audio available Bookmark Check Language Close Comments Download Facebook Link Email Newsletter Newsletter Play Print Share Twitter Youtube Search Instagram WhatsApp yourData