I love trying to extrapolate trends and seeing what I can learn from the process. This past weekend I spent some time thinking about the size of computers.
From 1986 (Apple //e) to 2012 (Motorola Droid 4), my "computer" shrinking 290-fold, or about 19% per year. I know, you can argue about my choices of what constitutes a computer, and whether I should be including displays, batteries, and so forth. But the purpose isn't to be exact, but to establish a general trend. I think we can agree that, for some definition of computer, they're shrinking steadily over time. (If you pick different endpoints, using an IBM PC, a Macbook Air, or a Mac Mini, for example, you'll still get similar sorts of numbers.)
So where does that leave us going forward? To very small places:
Year | Cubic volume of computer |
2020 | 1.07 |
2025 | 0.36 |
2030 | 0.12 |
2035 | 0.04 |
2040 | 0.01 |
2045 | 0.0046 |
In a spreadsheet right next to the sheet entitled "Attacking nanotech with nuclear warheads," I have another sheet called "Data center size" where I'm trying to calculate how big a data center will be in 2045.
A stick of is "2-7/8 inches in length, 7/8 inch in width, and 3/32 inch" or about 0.23 cubic inches, and we know this thanks to the
military specification on chewing gum. According to the chart above, computers will get smaller than that around 2030, or certainly by 2035. They'll also be about 2,000 times more powerful than one of today's computers.
Imagine today's blade computers used in data centers, except shrunk to the size of sticks of gum. If they're spaced 1" apart, and 2" apart vertically (like a DIMM memory plugged into it's end), a backplane could hold about 72 of these for every square foot. A "rack" would hold something like 2,800 of these computers. That's assuming we would even want them to be human-replaceable. If they're all compacted together, it could be even denser.
It turns out my living room could hold something like 100,000 of these computers, each 2,000 times more powerful one of today's computers, for the equivalent of about two million 2014 computers. That's roughly all of Google's computing power. In my living room.
I emailed Amber Case and Aaron Parecki about this, and Aaron said "What happens when everyone has a data center in their pockets?"
Good question.
You move all applications to your pocket, because latency is the one thing that doesn't benefit from technology gains. It's largely limited by speed of light issues.
If I've got a data center in my pocket, I put all the data and applications I might possibly want there.
Want Wikipedia? (14GB) -- copy it locally.
Want to watch a movie? It's reasonable to have the top 500,000 movies and TV shows of all time (2.5 petabytes) in your pocket by 2035, when you'll have about 292 petabytes of solid-state storage. (I know 292 petabytes seems incredulous, but
the theoretical maximum data density is 10^66 bits per cubic inch.)
Want to run an web application? It's instantiated on virtual machines in your pocket. Long before 2035, even if a web developer needs redis, mysql, mongodb, and rails, it's just a provisioning script away... You could have a cluster of virtual machines, an entire cloud infrastructure, running in your pocket.
Latency goes to zero, except when you need to do a transactional update of some kind. Most data updates could be done through lazy data coherency.
It doesn't work for real-time communication with other people. Except possibly in the very long term, when you might run a copy of my personality upload locally, and I'd synchronize memories later.
This also has interesting implications for global networking. It becomes more important to have a high bandwidth net than a low latency net, because the default strategy becomes one of pre-fetching anything that might be needed.
Things will be very different in twenty years. All those massive data centers we're building out now? They'll be totally obsolete in twenty years, replaced by closet-sized data centers. How we deploy code will change. Entire new strategies will develop. Today we have DOS-box and NES emulators for legacy software, and in twenty years we might have AWS-emulators that can simulate the entire AWS cloud in a box.