Bill Gates writing in Scientific American about the coming age of robots. Here's a shortened version of the article:

A Robot in Every Home, by Bill Gates, Scientific American: Imagine being present at the birth of a new industry. It is an industry based on groundbreaking new technologies... But it is also a highly fragmented industry with few common standards or platforms. Projects are complex, progress is slow, and practical applications are relatively rare. In fact, for all the excitement and promise, no one can say with any certainty when—or even if—this industry will achieve critical mass. If it does, though, it may well change the world.

Of course, the paragraph above could be a description of the computer industry during the mid-1970s, around the time that Paul Allen and I launched Microsoft. ... But what I really have in mind is something much more contemporary: the emergence of the robotics industry... [S]ome of the world’s best minds are trying to solve the toughest problems of robotics, such as visual recognition, navigation and machine learning. And they are succeeding. ...

What is more, the challenges facing the robotics industry are similar to those we tackled in computing three decades ago. Robotics companies have no standard operating software that could allow popular application programs to run in a variety of devices. The standardization of robotic processors and other hardware is limited, and very little of the programming code used in one machine can be applied to another. Whenever somebody wants to build a new robot, they usually have to start from square one.

Despite these difficulties, when I talk to people involved in robotics—from university researchers to entrepreneurs, hobbyists and high school students—the level of excitement and expectation reminds me so much of that time when Paul Allen and I ... dreamed of the day when a computer would be on every desk and in every home. And as I look at the trends that are now starting to converge, I can envision a future in which robotic devices will become a nearly ubiquitous part of our day-to-day lives. ...

From Science Fiction to Reality

The word “robot” was popularized in 1921 by Czech play wright Karel Capek, but people have envisioned creating robot-like devices for thousands of years. ... Over the past century, anthropomorphic machines have become familiar figures in popular culture through books such as Isaac Asimov’s I, Robot, movies such as Star Wars and television shows such as Star Trek. ... Nevertheless, although robots play a vital role in industries such as automobile manufacturing— where there is about one robot for every 10 workers—the fact is that we have a long way to go before real robots catch up with their science-fiction counterparts.

One reason for this gap is that it has been much harder than expected to enable computers and robots to sense their surrounding environment and to react quickly and accurately. It has proved extremely difficult to give robots the capabilities that humans take for granted—for example, the abilities to orient themselves with respect to the objects in a room, to respond to sounds and interpret speech, and to grasp objects of varying sizes, textures and fragility. Even something as simple as telling the difference between an open door and a window can be devilishly tricky for a robot.

But researchers are starting to find the answers. One trend that has helped them is the increasing availability of tremendous amounts of computer power. ... As computing capacity continues to expand, robot designers will have the processing power they need to tackle issues of ever greater complexity.

Another barrier to the development of robots has been the high cost of hardware, such as sensors that enable a robot to determine the distance to an object as well as motors and servos that allow the robot to manipulate an object with both strength and delicacy. But prices are dropping fast. ...

Now robot builders can also add Global Positioning System chips, video cameras, array microphones ... and a host of additional sensors for a reasonable expense. The resulting enhancement of capabilities, combined with expanded processing power and storage, allows today’s robots to do things such as vacuum a room or help to defuse a roadside bomb—tasks that would have been impossible for commercially produced machines just a few years ago.

A BASIC Approach

In February 2004 I visited a number of leading universities ... to talk about the powerful role that computers can play in solving some of society’s most pressing problems. ... At each university, after delivering my speech, ...[a]lmost without exception, I was shown at least one project that involved robotics.

At that time, my colleagues at Microsoft were also hearing from people in academia and at commercial robotics firms who wondered if our company was doing any work in robotics that might help them with their own development efforts. We were not, so we decided to take a closer look. I asked Tandy Trower, a member of my strategic staff ... to go on an extended fact-finding mission ... What he found was ... an industry-wide desire for tools that would make development easier. ... Tandy wrote in his report to me after his fact-finding mission. “[T]he hardware capability is mostly there; now the issue is getting the software right.”

Back in the early days of the personal computer, we realized that we needed ... Microsoft BASIC. When we created this programming language in the 1970s, we provided the common foundation that enabled programs developed for one set of hardware to run on another. BASIC also made computer programming much easier...

After reading Tandy’s report, it seemed clear to me that before the robotics industry could make the same kind of quantum leap that the PC industry made 30 years ago, it, too, needed to find that missing ingredient. So I asked him to assemble a small team that would work with people in the robotics field to create a set of programming tools that would provide the essential plumbing...

Tandy’s robotics group has been able to draw on a number of advanced technologies... One such technology will help solve one of the most difficult problems facing robot designers: how to simultaneously handle all the data coming in from multiple sensors and send the appropriate commands to the robot’s motors, a challenge known as concurrency. ...

Concurrency is a challenge that extends beyond robotics. Today as more and more applications are written for distributed networks of computers, programmers have struggled to figure out how to efficiently orchestrate code running on many different servers at the same time. And as computers with a single processor are replaced by machines with multiple processors and “multicore” processors ..., software designers will need a new way to ... fully exploit the power of processors working in parallel, the new software must deal with the problem of concurrency. ...

The answer that Craig’s team has devised to the concurrency problem is something called the concurrency and coordination runtime (CCR). ... Designed to help programmers take advantage of the power of multicore and multiprocessor systems, the CCR turns out to be ideal for robotics as well. ...

In addition to tackling the problem of concurrency, the work that Craig’s team has done will also simplify the writing of distributed robotic applications through a technology called decentralized software services (DSS). DSS enables developers to create applications in which the ... the parts of the program that read a sensor, say, or control a motor— operate as separate processes that can be ... aggregated on a Web page. ... Combined with broadband wireless technology, this architecture makes it easy to monitor and adjust a robot from a remote location using a Web browser. ...

As a result, the robot can be a relatively inexpensive device that delegates complex processing tasks to the high-performance hardware found on today’s home PCs. I believe this advance will pave the way for an entirely new class of robots that are essentially mobile, wireless peripheral devices that tap into the power of desktop PCs to handle processing-intensive tasks such as visual recognition and navigation. And because these devices can be networked together, we can expect to see the emergence of groups of robots that can work in concert to achieve goals such as mapping the seafloor or planting crops. These technologies are a key part of Microsoft Robotics Studio...

Should We Call Them Robots?

How soon will robots become part of our day-to-day lives? According to the International Federation of Robotics, about two million personal robots were in use around the world in 2004, and another seven million will be installed by 2008. ...

Although a few of the robots of tomorrow may resemble the anthropomorphic devices seen in Star Wars, most will look nothing like the humanoid C-3PO. In fact, as mobile peripheral devices become more and more common, it may be increasingly difficult to say exactly what a robot is. Because the new machines will be so specialized and ubiquitous—and look so little like the two-legged automatons of science fiction—we probably will not even call them robots. But as these devices become affordable to consumers, they could have just as profound an impact on the way we work, communicate, learn and entertain ourselves as the PC has had over the past 30 years.