Quote of the day

It will be interesting to see exactly which customs the Vatican is going to allow from the past rich five centuries of Anglican worship, life and thought.

Syndicate content

Columns

Paul Rogers

Global security


Li Datong

China from the inside


Fred Halliday

Global politics


Mary Kaldor

Human security


Daniele Archibugi

Cosmopolitan democracy

Email & RSS

Sign up to oD's editorial summaries email:


Enter your Email


Powered by FeedBlitz


Follow oD on Twitter:


Join our Facebook group:
Add oD to your Netvibes: Add to Netvibes

Demotix witness*upload*share

Navigation


Random

Bill Thompson, 20 - 10 - 2004
Computer programmers aren’t quite a different species – many of them breed successfully – but they do speak a different language, one which overlaps only contingently with English.

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 bill@andfinally.com 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.”

Average rating
(0 votes)
 
This article is published by Bill Thompson, and openDemocracy.net under a Creative Commons licence. You may republish it without needing further permission, with attribution for non-commercial purposes following these guidelines. These rules apply to one-off or infrequent use. For all re-print, syndication and educational use please see read our republishing guidelines or contact us. Some articles on this site are published under different terms. No images on the site or in articles may be re-used without permission unless specifically licensed under Creative Commons.
This article adheres to the openDemocracy.net principles.

Comments