Friday, December 22, 2006

Can Programmers Save The World?

The longest night of the year (for those of us in the Northern Hemisphere) has passed once more, marking yet another journey of the Earth around the Sun... and as the cycle begins again it's surely a good time to pause for reflection... and a bit of johntification ;-)

Looking back on the year just past, I find myself a bit perplexed... All around us are signs of wondrous advances in science and technology. Throughout the year I've read of breakthroughs in genetic engineering, biotechnology, autonomous robotics, nanotechnology, material science, pharmacology, and every other "ology" that you can think of. Humanity is on the verge of mastering the very stuff of life, of matter, and of energy. Concepts that were purely science fiction in the past few years are on the verge of becoming commonplace realities in the here and now.

In 1961, Arthur C. Clarke introduced Clarke's third law in his essay Profiles of The Future:

"Any sufficiently advanced technology is indistinguishable from magic."

If that's true, then we are truly living in a magical age.

I am perplexed because this magical new age of science and technology is juxtaposed with the age old cultural woes of intolerance and hatred. We've got megalomaniacs around the world rushing to build their very own nuclear weapons... We've got people starving to death by the thousands... We've got scores of angry young men blowing themselves to bits in anger and frustration... And it looks like climate changes are beginning to spiral out of control.

Is there anything that programmers can do to fix any of this? Can programmers save the world?

Well... we certainly can't do it by ourselves, but it's quite probable that we've already made a good start.

The root causes of many of the World's problems are often one of the big three:
  1. Ignorance
  2. Deception
  3. Unintended Side Effects
Number one on the hit parade, Ignorance is surely something that programmers can tackle. Google and the other search engines have already made huge strides in freeing information from dusty filing cabinets, and in making that information available to a much wider audience. Unfortunately, much of the information on the Web is from questionable sources, but in the next few years we should have better tools for judging the accuracy of information. By themselves, these tools won't cure Ignorance... but they will certainly help.

Deception, number two on my list, can also be tackled by programmers. Think how much harder it is today to hide those millions of dollars that have been skimmed from humanitarian programs and diverted into the bank accounts of greedy ingrates. Think of how much easier programmers have made it to check assertions for truth and to uncover conflicts of interest. In the next few years we should have tools that give virtually everyone the power to be a watch dog. These same tools do raise significant privacy concerns, but I'm betting we'll learn to deal with that.

Number three, Unintended Side Effects, is a much harder nut to crack since you never know what it is that you are looking for, but once again programmers can develop tools to significantly help unravel the cause and effect relationships and spot problems as they occur and to predict them before they occur. There's a lot of work to be done in this area, but as we develop better tools for consolidating and distilling information we should be able to uncover Unintended Side Effects sooner.

I
gnorance, Deception and Unintended Side Effects aren't going to be eradicated by any of the tools that programmers create, but it's at least possible that they can be lessened.

So can programmers save the world? Maybe not, but they sure can help.

Update: Here's an example of how Google's web technologies might make a difference.

No comments:

Post a Comment