ACM 97 The Next Fifty Years of Software Nathan P. Myhrvold Chief Technology Officer Microsoft...

Preview:

Citation preview

ACM 97

The Next Fifty Years The Next Fifty Years of Softwareof Software

Nathan P. MyhrvoldNathan P. MyhrvoldChief Technology OfficerChief Technology Officer

Microsoft CorporationMicrosoft Corporation

ACM 97

ACM 97ACM 97THE NEXT THE NEXT 5050 YEARS OF YEARS OF

COMPUTINGCOMPUTING

ACM 97

ACM 97ACM 97

Copyright Copyright 1997 ACM, Association for Computing 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 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 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 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 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: classroom use is permitted. Questions regarding usage rights and permissions may be addressed to: permissions@acm.orgpermissions@acm.org

THE NEXT 50 YEARS OF COMPUTINGTHE NEXT 50 YEARS OF COMPUTING

ACM 97

James BurkeJames Burke

Master of CeremoniesMaster of Ceremonies

ACM 97

ACM 97

ACM 97

ACM 97

ACM 97NATHAN MYHRVOLD

ACM 97

ACM 97

The Next Fifty Years The Next Fifty Years of Softwareof Software

Nathan P. MyhrvoldNathan P. MyhrvoldChief Technology OfficerChief Technology Officer

Microsoft CorporationMicrosoft Corporation

ACM 97

Software: The Crisis Software: The Crisis Continues!Continues!

Nathan P. MyhrvoldNathan P. MyhrvoldUnrepentant ProgrammerUnrepentant Programmer

&&Theoretical PhysicistTheoretical Physicist

ACM 97

A Brief History of the A Brief History of the UniverseUniverseQuantum gravitational fluctuation

starts expanding

Inflationary expansiongrows exponentially

Expansion slows and particles condense from quark plasma

Radiation from initial fireballred shifts by expansion to 3 degrees K

Matter condenses, ultimately intothe San Jose Convention center

ACM 97

ACM 97

A Brief History of A Brief History of InformationInformationWriting is invented

Johan Gutenberg invents moveable typeand modern printing

Von Neumann et. al invent the computer

The microprocessor brings computing to everyone

Networks hook us all together

ACM 97

ACM 97

ACM 97

Moore’s Law Moore’s Law

Price/performancePrice/performance 1,000,000X boost in 1,000,000X boost in

last 20 yearslast 20 years 1,000,000X more in 1,000,000X more in

the next 20 yearsthe next 20 years Likely to continue for Likely to continue for

at least 40 yearsat least 40 years

ACM 97

ACM 97

ACM 97

ACM 97

Bytes/$ Bytes/$ DRAMDRAM

Byte

s/$

1

10

100

1000

10000

100000

10000001

97

0

19

72

19

74

19

76

19

78

19

80

19

82

19

84

19

86

19

88

19

90

19

92

19

94

19

96

19

98

20

00

Doubling time 964 daysDoubling time 964 days

Growth rate 30% per yearGrowth rate 30% per year

ACM 97

Software Co. Stock Software Co. Stock PricePrice

ACM 97

Software Co. Stock Software Co. Stock PricePrice

Doubling time 694 daysDoubling time 694 days

Growth rate 44% per yearGrowth rate 44% per year

ACM 97

Log (Stock Price/DRAM $ per Log (Stock Price/DRAM $ per bit)bit)

ACM 97

Nathan’s 1st Law of Nathan’s 1st Law of SoftwareSoftware

It expands to fit the container it is in!It expands to fit the container it is in!

Software is a gas!Software is a gas!

ACM 97

Windows NT Lines of CodeWindows NT Lines of Code

1000000

10000000

100000000

7/15/92 1/31/93 8/19/93 3/7/94 9/23/94 4/11/95 10/28/95 5/15/96 12/1/96 6/19/97

Doubling time 866 daysDoubling time 866 days

Growth rate 33.9% per yearGrowth rate 33.9% per year

ACM 97

ACM 97

Browser Code GrowthBrowser Code Growth

1000

10000

100000

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

Doubling time 216 daysDoubling time 216 days

Growth rate 221% per yearGrowth rate 221% per year

ACM 97

Nathan’s 2nd Law of SoftwareNathan’s 2nd Law of Software

Initial growth is rapid - like gas Initial growth is rapid - like gas expanding (like browser)expanding (like browser)

Software grows until it becomes Software grows until it becomes limited by Moore’s Lawlimited by Moore’s Law

ACM 97

ACM 97

Nathan’s 2nd Law of SoftwareNathan’s 2nd Law of Software

Initial growth is rapid - like gas Initial growth is rapid - like gas expanding (like browser)expanding (like browser)

Eventually, limited by hardware Eventually, limited by hardware (like NT)(like NT)

Bring any processor to its knees, Bring any processor to its knees, just before the new model is outjust before the new model is out

Software grows until it becomes Software grows until it becomes limited by Moore’s Lawlimited by Moore’s Law

ACM 97

Nathan’s 3rd Law of SoftwareNathan’s 3rd Law of Software

That’s why people buy new That’s why people buy new hardware - economic motivatorhardware - economic motivator

Software growth makes Moore’s Software growth makes Moore’s Law possibleLaw possible

ACM 97

ACM 97

Nathan’s 3rd Law of SoftwareNathan’s 3rd Law of Software

That’s why people buy new That’s why people buy new hardware - economic motivatorhardware - economic motivator

That’s why chips get faster at That’s why chips get faster at same price, instead of cheapersame price, instead of cheaper

Will continue as long as there is Will continue as long as there is opportunity for new softwareopportunity for new software

Software growth makes Moore’s Software growth makes Moore’s Law possibleLaw possible

ACM 97

ACM 97

Nathan’s 4th Law of SoftwareNathan’s 4th Law of Software

It’s impossible to have enoughIt’s impossible to have enough

Software is only limited by Software is only limited by human ambition & expectationhuman ambition & expectation

ACM 97

Nathan’s 4th Law of SoftwareNathan’s 4th Law of Software

It’s impossible to have enoughIt’s impossible to have enough New algorithmsNew algorithms

Software is only limited by Software is only limited by human ambition & expectationhuman ambition & expectation

ACM 97

Nathan’s 4th Law of SoftwareNathan’s 4th Law of Software

It’s impossible to have enoughIt’s impossible to have enough New algorithmsNew algorithms New applications and new usersNew applications and new users

Software is only limited by Software is only limited by human ambition & expectationhuman ambition & expectation

ACM 97

Nathan’s 4th Law of SoftwareNathan’s 4th Law of Software

It’s impossible to have enoughIt’s impossible to have enough New algorithmsNew algorithms New applications and new usersNew applications and new users New notions of what is coolNew notions of what is cool

Software is only limited by Software is only limited by human ambition & expectationhuman ambition & expectation

ACM 97

ACM 97

The Software Crisis!The Software Crisis! Von Neumann had trouble Von Neumann had trouble

ACM 97

ACM 97

The Software Crisis!The Software Crisis! Von Neumann had trouble Von Neumann had trouble Software is always in “crisis”Software is always in “crisis”

ACM 97

The Software Crisis!The Software Crisis! Von Neumann had trouble Von Neumann had trouble Software is always in “crisis”Software is always in “crisis” Is there some limit to complexity?Is there some limit to complexity? Will software ever grow up? Will software ever grow up?

ACM 97

The Software Crisis!The Software Crisis! Von Neumann had trouble Von Neumann had trouble Software is always in “crisis”Software is always in “crisis” Is there some limit to complexity?Is there some limit to complexity? Will software ever grow up? Will software ever grow up? Will the crisis ever end?Will the crisis ever end?

Of course Of course not!not!

ACM 97

The Perpetual CrisisThe Perpetual Crisis Panacea solutionsPanacea solutions

– High level languagesHigh level languages– Object oriented programmingObject oriented programming– Component software, ...Component software, ...

ACM 97

ACM 97

The Perpetual CrisisThe Perpetual Crisis Panacea solutionsPanacea solutions

– High level languagesHigh level languages– Object oriented programmingObject oriented programming– Component software, ...Component software, ...

Benefits absorbed by rising Benefits absorbed by rising expectationsexpectations

ACM 97

ACM 97

The Perpetual CrisisThe Perpetual Crisis Panacea solutionsPanacea solutions

– High level languagesHigh level languages– Object oriented programmingObject oriented programming– Component software, ...Component software, ...

Benefits absorbed by rising Benefits absorbed by rising expectationsexpectations

Software will never be easySoftware will never be easy Somebody will push the boundarySomebody will push the boundary

ACM 97

Synthetic Synthetic ActorsActors

ACM 97

ACM 97

Mommy, look at my T. Mommy, look at my T. rex!rex!

ACM 97

Future Software TechniquesFuture Software Techniques

Genetic programming Genetic programming ““Software husbandry”Software husbandry”

– Tending virtual flocksTending virtual flocks How does software complexity How does software complexity

compare to genetic complexity?compare to genetic complexity?

ACM 97

ACM 97

ACM 97

Which is Which is Bigger?Bigger?

Madonna: Madonna: The The

GenotypeGenotype

EvitaEvitaEvita: Evita: The Motion The Motion PicturePicture

ACM 97

The Movie The Movie WinsWins

Madonna: Madonna: The The

GenotypeGenotype

EvitaEvita

4 Gbytes4 Gbytes ~1 Gbyte~1 Gbyte

Evita:Evita:The Motion PictureThe Motion Picture

ACM 97

Genetic ComplexityGenetic Complexity Human Genome ~ 1 GbyteHuman Genome ~ 1 Gbyte Individual difference ~ 0.25%Individual difference ~ 0.25%

ACM 97

Genetic ComplexityGenetic Complexity Human Genome ~ 1 GbyteHuman Genome ~ 1 Gbyte Individual difference ~ 0.25%Individual difference ~ 0.25% Loss less compression 2:1Loss less compression 2:1 Individual ~ 1.2 MbytesIndividual ~ 1.2 Mbytes

ACM 97

Genetic ComplexityGenetic Complexity Human Genome ~ 1 GbyteHuman Genome ~ 1 Gbyte Individual difference ~ 0.25%Individual difference ~ 0.25% Loss less compression 2:1Loss less compression 2:1 Individual ~ 1.2 MbytesIndividual ~ 1.2 Mbytes

You fit on a floppy diskYou fit on a floppy disk

ACM 97

Genetic Diversity?Genetic Diversity?

Human population < 3.7 TbytesHuman population < 3.7 Tbytes Compress relatives < 1 TbytesCompress relatives < 1 Tbytes Like a big web site!Like a big web site!

ACM 97

Genetic Diversity?Genetic Diversity?

Human population < 3.7 TbytesHuman population < 3.7 Tbytes Compress relatives < 1 TbytesCompress relatives < 1 Tbytes Like a big web site!Like a big web site! Diversity of all animals on earth?Diversity of all animals on earth? About the size of the web in a few About the size of the web in a few

years!years!

ACM 97

ACM 97

The Ultimate ComputerThe Ultimate Computer Learning more Learning more

about the brain about the brain every dayevery day

ACM 97

ACM 97

ACM 97

ACM 97

The Ultimate ComputerThe Ultimate Computer Learning more Learning more

about the brain about the brain every dayevery day

AI will happenAI will happen Computers with Computers with

same power in 20 same power in 20 to 30 yearsto 30 years

Brain has no Brain has no Moore’s LawMoore’s Law

ACM 97

Programming The Ultimate Programming The Ultimate ComputerComputer When computers are as smart as When computers are as smart as

humans, how do you program humans, how do you program them?them?

Human takes 20 years to boot!Human takes 20 years to boot!

ACM 97

Programming The Ultimate Programming The Ultimate ComputerComputer When computers are as smart as When computers are as smart as

humans, how do you program humans, how do you program them?them?

Human takes 20 years to boot!Human takes 20 years to boot! Must we teach them?Must we teach them?

ACM 97

Humans as SoftwareHumans as SoftwareUploading to become a programUploading to become a program

ACM 97

ACM 97

ACM 97

Humans as SoftwareHumans as SoftwareUploading to become a programUploading to become a program

ACM 97

Operating Systems for Human Operating Systems for Human SoftwareSoftware

Housing uploadsHousing uploads Treat human upload as an Treat human upload as an

application programapplication program Provide memory & other Provide memory & other

servicesservices Peripherals to deal with real Peripherals to deal with real

worldworld

ACM 97

Separated at Birth?Separated at Birth?

Windows 2.0 1987Windows 2.0 1987 Windows 2047Windows 2047

ACM 97

Separated at Birth?Separated at Birth?

MultitaskingMultitasking Multiple personalitiesMultiple personalities

Virtual memoryVirtual memory

Windows 2.0 1987Windows 2.0 1987 Windows 2047Windows 2047

Virtual memoryVirtual memory

ACM 97

Separated at Birth?Separated at Birth?

MultitaskingMultitasking Multiple personalitiesMultiple personalities

Virtual memoryVirtual memory

Compatible withCompatible withDOS applicationsDOS applications

Compatible with meat Compatible with meat based humansbased humans

GUIGUI You & IYou & I

> 640 Kilobytes> 640 Kilobytes > 640 Petabytes> 640 Petabytes

Windows 2.0 1987Windows 2.0 1987 Windows 2047Windows 2047

Virtual memoryVirtual memory

ACM 97

See you in 2047!See you in 2047!

ACM 97NATHAN MYHRVOLD

Recommended