The magic of programming

It’s the Fourth of July, and I’m enjoying life at the beach.  What better time to muse on my blog!  And so, two posts in one day – enjoy!

For many years now, I’ve thought that programming bears a strong resemblance to the medieval view of magic.  In writing a program, we create strange incantations in arcane languages that channel forces far from normal human experience.  And if we make even a minor mistake in creating our spell, disaster can occur.  We summon demons to do our bidding, but if we make a mistake in the summoning, the demons are unleashed.

A bit of history: the first time the Internet really achieved mainstream recognition was when Robert Tappan Morris released his worm into the world.  It crashed the Internet back in 1988, years before there was a world-wide web, and the Internet made the front pages of the nation’s newspapers for the first time.  To learn more, see the Wikipedia article on the Morris Worm.

But here’s the thing: Robert Tappan Morris did not intend to do all that damage.  He just wanted to write something that would highlight the vulnerability of many of the computers on the net, that would slip into those computers, slowly propagate, and that he could eventually point to and say, “Look at how insecure we are.”

But Morris’s worm had a bug, and it spawned off copies of itself far faster than he intended.  The damage done was not because the worm did anything terrible: it just sucked up all the resources on the computers where it ran because it forked off copies of itself in an out-of-control fashion.  The graduate student Robert Morris had made a minor mistake in his summoning, and the result was an Internet catastrophe.

Does that remind you of anything?  Imagine Morris as played by Mickey Mouse, think of those copies as animated brooms, and pretend that the crashing servers are water levels rising higher and higher.  Pretty quickly have the Sorcerer’s Apprentice sequence from “Fantasia.”

Morris is now a tenured professor at MIT.  Mickey is no longer an apprentice – he is now the master wizard, training others.  I have no information on the state of his plumbing.

This entry was posted in computing thoughts. Bookmark the permalink.

Leave a Reply