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 ones own intellectual image. It is a disorder that brooks no sympathy maybe hes ill, or maybe its 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 dont 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.
Get our weekly email