Once upon a time, there was a little girl named Alice. She was to observers a quiet and shy girl, and chief among her passions was computer programming.
One night, when Alice's pretty face was illuminated only by the light of her computer terminal and her latest caffeine hit was just beginning to kick in, she noticed a most curious thing. Standing behind her, peering over her shoulder, was a five foot tall bipedal white rabbit.
“How queer,” Alice thought. “I really must cut down on the Mountain Dew.”
She turned back to her monitor.
“Good evening,” said the rabbit.
Alice freaked out and hit it with her keyboard.
Two minutes later, when they had both assured themselves that the other was real and had apologised sufficiently, the rabbit coughed and continued.
“Hurry, Alice,” he said, “come with me! Leave behind the simplicity of Python, the extensibility of Ruby! Even the portability of Java and the excessive punctuation of Lisp you no longer need! Come away with me, Alice, and see how deep the rabbit hole of development goes!”
“But, kind Mister Rabbit, I do so love these fantastic languages!”
“Come now, Alice. Take the red pill,” the rabbit said, brushing dangerously close to copyright infringement.
“Now you're offering me pills? This doesn't lend you a lot of respectability here, you know.”
“Oh, er…” The white rabbit looked guilty. “They're only jelly beans.”
“Sold!” exclaimed Alice, taking the cinnamon-flavoured bean and swallowing it whole. Quite missing the point of a sweet you might think, but nevertheless it did its job well enough.
A few moments later, Alice felt herself falling, downwards and further downwards, through a hole sided with dirt and explicit memory management and half-arsed object orientation.
When she awoke, she found herself in a room floored entirely with boxes. Even as Alice watched, some were filled and some were emptied, and still more changed colour.
“Ah,” thought Alice, who was generally accused of being too smart for her own good, “this must be some form of physical representation of the computer's memory.”
She looked around to see if she could see the white rabbit, but he had disappeared.
Lost and far from home, Alice's spirits suddenly sank. She sat and watched the memory floor dejectedly for a while. Eventually she began to count the buffer overflows to pass the time.
“for (int numOverflows=0; numOverflows>=0; numOverflows++),” she thought, “I'll stay here.”
Mercifully she was in C++land, so five minutes later she was on the move again. She walked onwards until there were no more boxes and only a flat plane to move on.
At last she saw a door ahead of her, and she ran towards it, but thankfully she had the good sense to look behind her! More and more boxes were appearing, and they were catching up!
“Oh noes,” Alice exclaimed. “A memory leak!”
With that, she began to sprint as best she could towards the door, while ever passing second brought the errant memory rushing ever closer to catching up with her and overwriting her!
With only a few steps to go, and the memory grasping at her heels, Alice leapt and dived through the door – thudding into something soft beyond. The door slammed shut, seemingly on its own, the moment she was through.
When Alice had quite regained her senses and taken stock of the situation, she helped her soft pillow to his feet.
“Oh, Mister Rabbit,” she said. “I've seen such horrible things, and I do so want to go home.”
“I'm dreadfully sorry, Alice, but I'm afraid I just can't return you to your home.”
“I can only return a pointer to you! Wahahahaha!”
“No!” cried Alice. “I don't want to stay-“
And then the function terminated.
“Ah,” said Alice, alone in the darkness. “No garbage collector. Handy.”
Next week in C++land: “lookingGlass.goThrough(*pAlice);”!