My new five-year prediction is that we will
see the end of the traditional computer file system,
at least as a user-visible component.
Having to manually keep track of what files to save
data in, and where to put them (local
hard disks and network shares) is just not something
a user wants to be troubled with.
If I create some document, I want it to be immediately
available on all my devices. I do not want to have
to worry about backups and encryption. I may want to have a version
history and unlimited undo. I may want to share it with others.
There are already a few applications that
more or less work this way, most notably online services
like Google Docs.
Something like iTunes is also a step in the right direction
(although terribly limited in what it can do).
All these applications have in common that they let you
work with your data while shielding you from the complexities
of how and where these files are stored.
This month I switched from a Mac Mini to a MacBook Pro
for my primary computer. Thanks to the Time Machine backup,
that was very easy: all my data was immediately available
on the new computer. But this only works smoothly because
I stopped using the Mini completely. If I wanted to simultaneously
use both, that would create terrible synchronization headaches.
The Mac Mini is hooked to the TV now and
in the process of becoming a media center.
Ideally, it would automatically make available
all content from other iTunes and iPhoto libraries
on the network. There is a feature called Home Sharing,
which allows to stream between those libraries,
but this only works when both computers (and the respective iApps) are running.
So instead I have to copy all my media files
to the Mini. Which I am willing to do once,
but what about photos and videos taken after that?
The copying itself was made more difficult by the
conflicting file access permissions of the four different user accounts
involved. And what about all the files duplicated
between user accounts?
Contrast this to how an iPod works
(or an Apple TV for that matter, I wish a Mac Mini could act like one): You buy a new iPod,
connect it to your computer, and it will have all your music on there.
You listen to a few songs on your iPod, give them a star rating, and it will
transmit that information back to your computer.
You shoot some more photos, and the next time
you connect the player, it will automatically copy them over.
Also note that while an iPod is useless without connecting to its master
library once in a while, it does not need
a constant network connection.
One reason that iPod synching works so
well is that it is single-user, master-slave,
and single-master. Things get more complicated
when your various devices are owned by different people,
and act as peers, with each of them being able to add or change
documents. And this is exactly the situation that
everyone is in ever since we moved from isolated
personal computers to a networked gadget world.
There are a number of useful (exciting, frankly) tools
to solve these kind of problems on the file
system level (DropBox, Mercurial, git all fall
in this category), and any application
that properly integrates these approaches
will be immensely successful.
PS: Apple has this week officialy killed development of its ZFS support,
probably due to licensing concerns, now that Oracle
runs Sun Microsystems. Too bad.
I had high hopes for ZFS to play a big part here.