The Next Fifty Years of Software Nathan P. Myhrvold Chief Technology Officer Microsoft Corporation ACM 97 ACM 97 THE NEXT 50 YEARS OF COMPUTING Copyright 1997 ACM, Association for Computing The files on this disk or server have been provided by ACM. The files distributed by this server have been provided by ACM. Copyright and all rights therein are maintained by ACM. It is understood that all persons copying this information will adhere to the terms and constraints invoked by ACM’s copyright. These works may not be reposted without the explicit permission of ACM. Reuse and/or reposting for noncommercial classroom use is permitted. Questions regarding usage rights and permissions may be addressed to: permissions@acm.org ACM 97 Software: The Crisis Continues! Nathan P. Myhrvold Unrepentant Programmer & Theoretical Physicist ACM 97 A Brief History of the Universe Quantum gravitational fluctuation starts expanding Inflationary expansion grows exponentially Expansion slows and particles condense from quark plasma Radiation from initial fireball red shifts by expansion to 3 degrees K Matter condenses, ultimately into the San Jose Convention center ACM 97 A Brief History of Information Writing is invented Johan Gutenberg invents moveable type and modern printing Von Neumann et. al invent the computer The microprocessor brings computing to everyone Networks hook us all together ACM 97 Moore’s Law Price/performance 1,000,000X boost in last 20 years 1,000,000X more in the next 20 years Likely to continue for at least 40 years ACM 97 Bytes/$ DRAM 1000000 100000 1000 Doubling time 964 days 100 Growth rate 30% per year 10 2000 1998 1996 1994 1992 1990 1988 1986 1984 1982 1980 1978 1976 1974 1972 1 1970 Bytes/$ 10000 ACM 97 Software Co. Stock Price ACM 97 Software Co. Stock Price Doubling time 694 days Growth rate 44% per year ACM 97 Log (Stock Price/DRAM $ per bit) ACM 97 Nathan’s 1st Law of Software Software is a gas! It expands to fit the container it is in! ACM 97 Windows NT Lines of Code 100000000 Doubling time 866 days Growth rate 33.9% per year 10000000 1000000 7/15/92 1/31/93 8/19/93 3/7/94 9/23/94 4/11/95 10/28/95 ACM 97 5/15/96 12/1/96 6/19/97 Browser Code Growth 100000 Doubling time 216 days Growth rate 221% per year 10000 1000 1/1/95 4/11/95 7/20/95 10/28/95 2/5/96 5/15/96 8/23/96 12/1/96 3/11/97 6/19/97 ACM 97 Nathan’s 2nd Law of Software Software grows until it becomes limited by Moore’s Law Initial growth is rapid - like gas expanding (like browser) Eventually, limited by hardware (like NT) Bring any processor to its knees, just before the new model is out ACM 97 Nathan’s 3rd Law of Software Software growth makes Moore’s Law possible That’s why people buy new hardware - economic motivator That’s why chips get faster at same price, instead of cheaper Will continue as long as there is opportunity for new software ACM 97 Nathan’s 4th Law of Software Software is only limited by human ambition & expectation It’s impossible to have enough New algorithms New applications and new users New notions of what is cool ACM 97 The Software Crisis! Von Neumann had trouble Software is always in “crisis” Is there some limit to complexity? Will software ever grow up? Will the crisis ever end? Of course not! ACM 97 The Perpetual Crisis Panacea solutions – High level languages – Object oriented programming – Component software, ... Benefits absorbed by rising expectations Software will never be easy Somebody will push the boundary ACM 97 Synthetic Actors ACM 97 Mommy, look at my T. rex! ACM 97 Future Software Techniques Genetic programming “Software husbandry” – Tending virtual flocks How does software complexity compare to genetic complexity? ACM 97 Which is Bigger? Madonna: The Genotype Evita Evita: The Motion Picture ACM 97 The Movie Wins 4 Gbytes ~1 Gbyte Madonna: The Genotype Evita Evita: The Motion Picture ACM 97 Genetic Complexity Human Genome ~ 1 Gbyte Individual difference ~ 0.25% Loss less compression 2:1 Individual ~ 1.2 Mbytes You fit on a floppy disk ACM 97 Genetic Diversity? Human population < 3.7 Tbytes Compress relatives < 1 Tbytes Like a big web site! Diversity of all animals on earth? About the size of the web in a few years! ACM 97 The Ultimate Computer Learning more about the brain every day AI will happen Computers with same power in 20 to 30 years Brain has no Moore’s Law ACM 97 Programming The Ultimate Computer When computers are as smart as humans, how do you program them? Human takes 20 years to boot! Must we teach them? ACM 97 Humans as Software Uploading to become a program ACM 97 Operating Systems for Human Software Housing uploads Treat human upload as an application program Provide memory & other services Peripherals to deal with real world ACM 97 Separated at Birth? Windows 2.0 1987 Windows 2047 Multitasking Multiple personalities Virtual memory Compatible with DOS applications Virtual memory Compatible with meat based humans > 640 Kilobytes > 640 Petabytes GUI You & I ACM 97 See you in 2047! ACM 97