September 6, 2006
Nathan Myhrvold, the former CTO of Microsoft, is also a bona-fide physicist. He holds physics degress from UCAL and Princeton. He even had a postdoctoral fellowship under the famous Stephen Hawking. Thus, as you might expect, his 1997 ACM keynote presentation, The Next Fifty Years of Software is full of physics and science metaphors.
It starts with Nathan's four Laws of Software:
- Software is a gas
Software always expands to fit whatever container it is stored in.
- Software grows until it becomes limited by Moore's Law
The initial growth of software is rapid, like gas expanding, but is inevitably limited by the rate of increase in hardware speed.
- Software growth makes Moore's Law possible
People buy new hardware because the software requires it.
- Software is only limited by human ambition and expectation
We'll always find new algorithms, new applications, and new users.
Myhrvold goes on to describe software development as a state of Perpetual Crisis. The size and complexity of software is constantly rising, with no limit in sight. As we develop more advanced software-- and as we develop solutions to manage the ever-increasing complexity of this software-- the benefits of the new software are absorbed by the rising tide of customer expectations. Software development will never be easy; new software always has to push against the current complexity boundary if it wants to be commercially successful.
This was all written in 1997. Nearly ten years later, are his points still valid? Software is certainly still a gas. Now that we're entering the multi-core era, there is one crucial difference. Historically hardware has gotten more complex because of limitations in the ability of software to scale; now the software needs to get more complex because of limitations in the ability of hardware to scale. The burden of scaling now falls on the software.
Myhrvold then makes an interesting point about the amount of storage required to capture human diversity. If..
- the human Genome is approximately 1 gigabyte of data;
- the individual difference between any two humans is 0.25% of their Genome;
- we assume a lossless compression rate of 2:1;
The individually unique part of the human Genome can be stored in ~1.2 megabytes. Thus, you fit on a 3.5" floppy disk.
In fact, the entirety of human genetic diversity for every living human being could be stored in a 3.7 terabyte drive array. And the entire genetic diversity of every living thing on earth could be stored in roughly the size of the internet circa 2001.
I'm not sure what that means, exactly, but I love the idea that I can fit myself on a 3.5" floppy disk.
Posted by Jeff Atwood
I see what you're getting at but I think it would be better to say your genetic template would fit on a single floppy. Certainly all the things that make you an individual person would not fit on anything nearly as small. I for one feel that there are many things that go into the human condition that science has yet to quantify.
Once again, this demonstrates the confusion between a creature's genetic code and the creature itself.
Is a cake the same as a recipe for a cake? Is a building the same as its blueprints?
If I download the blueprints for a building to a 3.5" floppy disk, does that mean I can take the floppy to an empty lot and start building, given unlimited supplies?
Your eye color (and mine) may be determined by your genes, but research shows that at least some of a person's characteristics can be influenced by environmental factors, such as hormones in the mother's womb.
Your genes don't know any human or computer languages, they don't have your skills, your memory, your history or your personality. In other words, your genes aren't you. They are only part of what and who you are.
On the other hand, each of our individual brains might be the size of internet.
Yeah, but you'd have to be able to find a floppy drive to read it. ;)
Good point, the brain has 100 billion neurons and these cannot be represented by simple 1 and 0. Also, each neuron is connected to hundreds of neighboring neurons biologically. It would be difficult to accurately model a handful of neurons given today's technology. Imagine an entire brain. And thats on a per-human basis. The idea that you fit on a floppy disk is akin to the idea that your soul fits on a 6X4 glossy photograph some journalist just took of you. Have you ever met identical twins? They may share the same genes, but they sure aren't the same person.
Also, you keep harping on how difficult it is to make software that runs well on multiple cores or how the burden is on us to make software faster. Is multi-threading really that difficult? Really? When you're making decent software, it's par for the course to use multiple threads unless you want the GUI portion of your app to freeze up while the main thread hammers on some algorithm. There are standard ways to deal with the issues it brings up.
Nathan's 3rd Law kept the PC business thriving -- large, bloated MS software requiring bigger, faster hardware.
I suppose that's one way to stimulate the job market...
You fit on a diskette in the same way that me saying to you "picture Marilyn Monroe standing over a subway vent" has the entire content of what you are picturing. There is a huge substrate required for you to fit on a floppy disk :)
To all these people saying what a bad metaphor it is - get over it! It's bloody obvious that the brain isn't like binary and that genes aren't like a computer language. The post is just a nice little rant that provides us with a chuckle before we carry on with our day...
Stop reading into things too deeply and go outside.
I don't know if you heard about Pink Floyd famous song ---- Money, Mr. Waters tells ----
Money it's a gas grap that cash with both hands and make a snatch
I think the software is also like this hit and run ....
Isn't the point with that comparison (as I understood it) that the computers we use today are really extremely slow and inefficent in doing just about anything.
If nature came up with a way to store the complexity of a human in a genom that takes about 1.2G of data then why the need for huge terrabyte drives and 4Ghz dual processors ??
Something is wrong here and the point is someone needs to rethink the approach to computing, I know there are some interesting stuff going on like quantum computing, neural networks and all that but nothing seem to happen with it.
I doubt we ever will have real artifical intelligence unless we can find a way to copy the multitasking of the human brain, which would mean not two way, not four way, but millions of parallell computations going on.
The stronger the machines get, the bigger the software can become. Once, the limitation was hardware...now its usability.
You can now make an app almost unlimitedly big, but usability will kill it!
To all these people saying what a bad metaphor it is - get over it!
It's bloody obvious that the brain isn't like binary and that
genes aren't like a computer language. The post is just a nice
little rant that provides us with a chuckle before we
carry on with our day...
Stop reading into things too deeply and go outside.
I didn't mean to interfere with your daily chuckle. :-) And if you aren't in the mood for some serious comments, feel free to stop reading now.
I like a daily chuckle. And looking at Nathan's slides again, I guess the floppy comment was included for its shock entertainment value.
But he's also taking it seriously because later he talks about the possibility of "uploading humans" (whatever that means) into the fantastic machines we'll have in 40-50 years.
Computer-based technology (hard and soft) will definitely make incredible things a reality in the decades ahead. I don't think anyone can predict what we'll be able to do.
But I put (strong) AI, uploading brains, etc. in the same category as warp drive and food replicators. Science fiction. (Which I like, by the way...) They may occur someday, but not within the lifetime of today's children.
Saying that just because we can store the bits required to represent our own genetic code means that we are "this close" to understanding the mysteries of life and consciousness is a gross oversimplification.
** N.B.: This comment was automatically generated by a computer program.
Sure, the genome fits on a floppy--just takes WinZip nine months to decompress it, which is well outside that free evaluation period.
the seed might store some information, but your entire life as you are born, live and interact with the world, is much more :)
About fitting on a floppy disk, I'm not sure if that's correct even if one believes that the genome (and not the brain itself) is the only thing that one would need to store. The real issue is that, even if the individual difference between two people is only 0.25% of their genome, it's not the *same* 0.25% for every single individual. You can't just take that 1.2 megs, decompress it, and splice it into some common 1022.8 megs, because it's not actually common to everyone.
I'm surprised that a physicist would use such flimsy reasoning!
The rest is gold though. I didn't realize he was the one that said software is a gas - that, I think, will always be true.