|
There is no Moore's Law for softwareHardware is following a well-defined path toward nanotechnology. If Moore's Law continues to hold, even approximately, then computer circuits will reach the nanoscale level sometime between 2010 and 2020. (Moore's Law may run up against Rock's Law before then, but that's another story.) People who believe in the nanotechnology meme take it for granted that hardware and software will converge to the same point at the same time. "Full fledged automated engineering" will arrive at the same time as atomic positioners. At Foresight meetings, one of the favorite pastimes is to predict when "it" will happen, where "it" refers to the Whole Thing -- the Breakthrough -- the Singularity. It's all going to happen at once, supposedly, and the only question is when. But in fact, software is not following the same time track. There is no doubling of AI capability every n years. After working on the chess problem for more than four decades, computer scientists finally wrote a program that could defeat the world champion. But Deep Blue is not going to have successors that play the game twice as well in each generation. In fact it has already been more than two years since the Deep Blue- Kasparov match, and Deep Blue doesn't have a successor at all. My understanding is that IBM has dismantled the project. In software, one starts with a crude implementation of an idea, and then in successive releases the implementation is refined. Going from one release to the next does not represent a doubling of capability. It is an incremental refinement. Take, for example, an image processing program such as Photoshop. Release 5.0 is certainly a more powerful program than release 1.0, but it isn't 16 times as powerful, and release 6.0 isn't going to be 32 times as powerful (which would be the case if each release represented a doubling of capability). In some cases, later releases are not even an improvement on early releases. Some word processors become bloated with features, and are actually less convenient to use than the original program. Compilers are a mature technology, like electric motors and steam turbines. So are word processors, spreadsheets, image processing programs, etc. Each type of program goes through a series of refinements, until a mature product emerges. After that, improvements are asymptotic. This also applies to operating systems. A couple of years from now we will have Windows NT 5.0 (aka Windows 2000), Unix, Linux, BeOS, and MacOS, all of which will be stable, and all of which will provide all the features one needs for computing. After that, further releases will merely be refinements. Operating systems will be a mature technology. From time to time new genres of software are introduced. Browsers were only introduced a few years ago, and are not yet mature. Search engines are still very primitive. We can look forward to dramatic improvements in the next few years. But after a while, search engines will also be a mature technology, and further releases will bring only asymptotic improvements. Improvements in software are not exponential. In hardware, one starts with the idea of a circuit, and then one implements this idea on successively smaller and faster substrates. Software doesn't work like that at all. If we could start with an abstract idea of a mind, a model that is basically correct on the most general level, and if its capacity to think doubled when we implemented it on faster hardware, then we would have something similar to Moore's Law. But we haven't even taken the first step on this path. There is no such thing as software that embodies an abstract model of a mind. (I have had some second thoughts about this. See the Singularity page.) Intelligence is increasing, but in an entirely different way. If we start with a man and a computer, working together and complementing each other, they have a certain level of intelligence. If we add another man and another computer, and if things are organized in such a way that they can communicate with each other efficiently (easier said than done!), then the combination of two men and two computers will be more capable than the original man plus computer -- if not twice as capable, at least some multiple. If C(2) = kC(1), and in general C(n+1) = kC(n), where k>1, and C denotes the capability or intelligence of the system, then you have a geometric progression. As more and more people and computers are connected to each other, the intelligence of the whole system increases. We hope ;-) The trouble is, k may not be constant. In any case, computers by themselves are not becoming intelligent. Faster, yes. Capable of helping us in many ways, yes. Intelligent in their own right, no. It's not a question of what computers can or can't do, it's just that whatever intelligence they have depends on their symbiosis with us. They are part of the ever more articulate and responsive environment that we are creating for ourselves. We are externalizing more and more of our intelligence, but we remain at the center. Real "artificial intelligence" comes from interface design and from what I will call, for lack of a better term, "corporate design" -- i.e. how to set things up in such a way that a large number of people and computers can work together with ever-increasing effectiveness. Corporate design doesn't necessarily involve corporations as such. The internet itself is an example of a way to organize people and computers in such a way that their intelligence is multiplied. There are other ways to do this. As far as that goes, you can leave computers out of it, and just devise ways to organize people so they can work together more effectively. IBM used to have a slogan, "Extraordinary results from ordinary people." That's it exactly. There are also ways to take control of our thoughts and organize them so as to increase our own intelligence. Learning or inventing new forms of argument is a good way to increase one's intelligence. There are other ways. "Be transformed by the renewing of your mind." As for computers becoming intelligent in their own right -- at next year's Foresight Conference, will any of the presentations be made by fully automated engineering systems? So far, all the presentations have been made by human beings describing their work. Will this change next year? the year after? the year after that? Obviously this isn't going to happen anytime soon. But suppose, at some unspecified time in the future, it does happen: robots go to conferences and present papers that are indistinguishable from the papers presented by their human peers. Suppose they also have physical dexterity equivalent to ours. Then what? What difference will it make? That is the topic of the next six pages and the Singularity page. Note added in September of 2003 This is one of the pages that I am most dissatisfied with. I have a nagging suspicion that I lost the thread here. I think the distinction between software and hardware is artificial. Our ability to make hardware depends on our model of reality. We can make more and more fine-grained machines because we have a more and more fine-grained understanding of the physical world. Instead of just looking at the number of transistors on a chip, we need to look at the system that produces the chips, i.e. look at it as an abstract system, a kind of software that "prints" chips. Then Moore's Law (to the extent that it's valid) is a law about software. Adopting that viewpoint would require a complete revision of this page, but it would fit right in with the other pages. |