Change color scheme Black on White / Default Change color scheme White on Black / Default Change color scheme: White on Black / Black on White / (you may need to reload, read my rationale for details)

Musings on Monkeys

A product of Eric Bradway and Dan Lyke after working too late one evening in November of '90.
"How's it going?"

"Not good. I make a change, wait 15 minutes for a relink, find it doesn't work, make another change."

"Kinda like the monkeys."


"If an infinite number of monkeys..."

"Sat at an infinite number of keyboards, they'd create the ultimate piece of software in a finite amount of time."

"Hmmm... It shouldn't be too hard to implement monkeys in software; virtual monkeys might make us more productive."

"Isn't that called CASE?"

"So what language do the monkeys use?"

"Given a constant output in terms of characters per monkey', it would have to be C."

"Yeah, COBOL's too wordy. Given some of the projections I've heard on the methods to be used in engineering SDI, I wonder how Ada will fare. We'll have to make a new rating system, something like 'Code Hacked In Monkeys Per Second'."


"We'll have to specify whether that's for commented or uncommented code. Although if this catches on, I don't think maintainability will be an issue."

"I wonder if, given a statistical sampling of the source language, you could design a keyboard that had key placements such that the monkey's output was more likely to match the source code patterns."

"We could benchmark with QWERTY and DVORAK layouts."

"Do you give them editing keys?"

"I don't think so, no one says they're likely to be better the second time around. So much for the editor market."

"Some of the template editors might produce results faster since they're more likely to produce valid keywords quickly."

"With virtual monkeys, you could simulate the key placements directly. Which brings up an interesting question: If you implement the virtual monkeys in hardware rather than software, are they still virtual?"

"And if we're truly simulating a monkey, what sorts of problems are we going to have with monkey ghosts in our machines? What about virus susceptibility?"

"Okay, so what sort of computing power do we need to implement this?"

"Well, 'Hello world' fits in 33 characters (using printf), figure about 96 characters, seems to be about 2.6 times 10 to the 28th possibilities. My statistics are pretty rough."

"That's a lot of monkeys."

"Yeah, but the effect of sequentially processing only decreases linearly. Even so, with virtual monkeys and fast hardware, any real project would take a long time."

"And then we may end up with 'Hi world', instead. How do we determine when the monkeys have actually produced a bug free product that meets our needs."

"Heck, I haven't seen a reviewer yet who can do that with human programmed software."

"So, do we tell anyone?"

"Naww, at the rate we're progressing we may get replaced anyway."

This is a part of the Software Engineering for Young Turks collection in the home pages of Dan Lyke, reachable at