The Programmers of Chelm
A Tale So Good You Could Plotz
by Lincoln Spector
In Yiddish folklore, the village of Chelm is renowned as a town of fools
-- a place where wisdom, learning, and inspiration need never be hampered
by common sense. The people of Chelm can, therefore, be considered the
spiritual ancestors of all software designers.
One day, the programmers of Chelm decided to write a new database for the
synagogue. "It must keep track of every family in Chelm," pointed out
Shmul, who liked to think of himself as the project leader. "We need to
know who's married to who, who are their children, and every first and
second cousin."
"I see," said Mendel. "It must be a relational database."
"But who should we relate to who?" asked Moshe.
"Well, I certainly don't want my son marrying your daughter," objected Avram.
"Gentlemen, gentlemen," called out Shmul, "let's remember what we're here
for. Now I say we need a table for men, a table for women, a table for
families, and a table for children."
"Does the rabbi get his own table?" asked Avram. Everyone agreed that he
should, as he was wise.
"What about the user interface?" asked Moshe.
Everyone looked at Shmul. "There should definitely be one," he said.
"Otherwise, who would use it?"
"Yes, but should it have a speedbar, smart icons, or a floating toolbar?
And what kind of help should it have?"
"Does it need help?" asked Mendel. "Does not the Talmud say that we should
study? Let us write documentation that scholars can pore over and discuss
at length."
But Moshe still wasn't satisfied. "What happens if Yussel and Shandel have
another baby? How does Mordcha, the rabbi's best student, make note of
that?"
"Everyone knows what he does," answered Avram. "He writes it down on a
piece of paper."
"Which he then uses to wrap fish," added Mendel.
"Yes, but what will he do when our system is complete?" Everyone agreed
this was a very good question.
It didn't take Shmul long to come up with an answer. "He'll turn on his
computer, enter our database, and type in the name of the new baby."
"But how will the database know that Yussel and Shandel are the parents?"
"Don't be ridiculous," said Avram. "Chelm is a small village. Everyone
knows everyone else. When there's a new baby, how can someone not know the
parents?"
"How do people know?" asked Mendel.
"That's easy," Avram answered. "Before the baby is born, they can tell by
looking at the father. Why can't our program do the same?"
"Because a computer doesn't have eyes."
"Ah!" cried Shmul. "The computer doesn't have eyes, but Mordcha does, and
Mordcha can tell the computer everything he sees. And if he says `Yussel
looks very happy' one day, and `There's a new baby in town' on the next,
the program will figure it out."
Mendel considered this. "Perhaps, but I don't like depending on Mordcha
telling the computer everything he sees. If he forgets to tell the computer
that he saw the rabbi eat, will the program think it's Yom Kippur? It would
be better if we write a query routine that will help Mordcha find a family.
After all, are we not programmers? Mordcha could run the query from the
main menu, and that will bring him to a view of Yussel and Shandel's
family."
"Will he be able to enter a new baby from this view?" asked Moshe.
"Of course not!" said Mendel. "For that, he'd need to go to the New Baby
form, which he can get to from the main menu. So after he's executed a
query and found Yussel and Shandel, he can click a button to go back to the
main menu. From there, he can go to any part of the database he wants."
Moshe, however, suspected a fatal flaw. "But if he leaves the query and
goes back to the main menu, how will the computer know the new baby belongs
to Yussel and Shandel?"
This question so greatly troubled the programmers of Chelm that Avram was
moved to ask, "Does Maimonides say anything about this?"
"Ach," cried Moshe. "Who cares about Maimonides? He used COBOL!"
Just then Shmul found the solution. "It's simplicity itself! We'll put a
button on the New Baby form that will let Mordcha do a query on the family
table. When he finds Yussel and Shandel, he can press the button that will
bring him back to the main menu and from there, return to the New Baby
form."
"That's brilliant!" cried Moshe. Then he thought about it. "But when he
goes back to the New Baby form, will the computer know that Yussel and
Shandel are the parents?"
"Of course not. But he can always push the query button again."
Moshe wasn't too sure. "What if he doesn't like being part of an infinite loop?"
"Loop, schmoop. He's studying to be a rabbi, isn't he? He needs to learn
about the infinite."
"I have a better idea," interjected Moshe. "We can simply make all the new
babies belong to Yussel and Shandel."
The programmers all agreed this was the best plan yet. They were
congratulating themselves when Avram had a thought. "Oy vey! There's
something we overlooked. What will Mordcha wrap his fish in?"
Moshe laughed. "But that's so simple. We'll add an option for him to print
a special report."