Every Coder in Codeville liked objects a lot.
“Tested,” “reusable,” that’s what was hot.
But the Grinch of reality sulked in his cave
Saying, “Hear them all talk of the time that they’ll save!”
The Grinch hated Coders, and liked them to sweat.
He thought, “I can make them unhappy, I’ll bet!”
He read through 12 texts, then looked up with a grin:
“Why, this is as good as original sin!”
He read with a chortle, “An object or class
Is like a black box hiding all that it has.
Its details invisible: All that you know
Is what should go in and what answers will show.”
He slunk to the West Coast and into a lab
Where chip engineers were at work in their fab.
He heard their boss saying, “Forget testing tricks:
This one is the same as a 486!”
His chance had now come. From their math microcode
He struck out one line as it went to download.
And the Grinch watched with barely containable glee
As the chips with their bugs shipped across land and sea.
And each of those chips went to some happy buyer
Where some just played games, but most were for hire
Sending up spacecraft or buying up stocks
Or predicting the timing of quake aftershocks.
Then the bug story broke! And the Grinch was alarmed.
This news came too early! Too few had been harmed!
But the Grinch soon calmed down, as the months marched on by
And the chip-making people continued to lie.
“We fixed it!” they said, and now that was quite funny:
You couldn’t get fixed chips for love or for money.
“It’s really no problem,” they added in chorus.
“The errors are rare. Stop whining, you bore us.”
So everywhere, Coders were having to ask
“Just how does this chip do its float-divide task?
” Internals that they had been told to ignore
Now had to be studied in blood and in gore.
The leading bit patterns whose answers were wrong
And whether the errors were carried along,
All had to be thoroughly well understood
So the Coders could know if their answers were good.
And the Grinch went off happy. He knew that they’d learned
That quality output still has to be earned.
Beyond “Merry Christmas,” they’d learned something greater:
“If you don’t test it now, you’ll just debug it later.”