Tuesday, October 08, 2013

Small vs. Fast

The smaller it gets, the faster it goes ... the faster it goes, the smaller it gets ...

I had a small epiphany recently while watching the apps on my phone download and update themselves. Of course it's not necessary to watch, but I have to. Long years of experience on PCs have accustomed me to the virtues of monitoring this activity for signs of trouble. Plus, there's something satisfying about watching the little progress bars turn blue from end to end while the status line indicates a download icon, then an "installing" message, then "installed", then a security scan, and finally "Application X is safe," indicating that all is well with the world.

Only once in a blue moon does anything go wrong. My wi-fi connection might flake out, interrupting the download, or something is amiss with the package on the server so that it won't install. But even then there is little downside. Simply trying again will insure success, if not today then tomorrow, and in the meantime the existing app will keep plugging merrily along.

Gone are the days of waiting hours for a huge file to trickle down through a dialup connection only to have it error out a few percent before completion, making it necessary to start over. Gone, too, are the frequent disasters that sometimes still plague complex software installations on PCs -- be they Windows, Mac, or (dare I say it?) even Linux. Let's face it, Android and IOS have taken the end user experience to new levels of ease and reliability. People who used to stare dumbfounded at a screen asking them to press CTRL-ALT-DEL can now do whatever they want with the swipe of a finger or even by uttering some verbal commands.

But my epiphany was not about ease of use. Instead I found myself marveling over how small and compact all my apps were, and therefore how efficiently coded they must be. Some were only a megabyte or two, while the largest were not much above 20 megs -- miniscule in comparison with 700 meg CDs or 8 gigabyte DVDs. Then it suddenly hit me. Back when we had to install everything from floppy disks, each disk held barely more than a single megabyte (about 1.4). So those 20 meg files I was downloading in a fraction of a minute represented a dozen or more floppy disks -- exactly the sort of packaging that used to be required by something like Windows 95, Adobe Photoshop, or MS Office. In other words, these baby apps are about the same size as major applications used to be, only speed has made them seem trivially small. And the smaller the hardware gets, the faster it goes.

The same thing happened to Unix. If the PCs of 1985 had been able to run it, there would have been no need for DOS, Netware, and Windows (or the Mac OS) to serve as poor substitutes. But back then you needed a huge mainframe to get the resources of memory and disk space that the full-blown, multiuser, multitasking, network-connected Unix had to offer. Ten years later a Finnish computer student was able to create a Unix-like kernel small enough to run on a 386 PC. With the GNU project added on top it became Linux, which now runs on everything from supercomputers down to TV set-top boxes, and yes, Android phones -- while incidentally powering most of the Internet. (A different Unix clone, FreeBSD, lies beneath the pretty skin of OSX.)

So the next time you're fidgeting with impatience at how slow your updates are happening, reflect on the alternative. You could wait for a package to come in the mail, then start feeding one disk after another into that voracious slot on the front of your PC, listening to the measured thunks as the head moved from one track to the next (80 tracks per diskette -- you could count them), while hoping and praying that there were no bad spots or copying errors that might crash the whole procedure.

Don't you feel better now? I know I do.

No comments:

Post a Comment