Saturday, June 21, 2008
The Future of Personal Computing
My personal history on computers
My personal history on computers has a long prehistory. When I was an elementary school kid, I was given a PC magazine by my parents. I was amazed at what could be done by computers and I was very interested in programming. Unfortunately, my parents thought that PCs were too expensive to serve as a child's toy, so I could only play with an MSX computer, which my friends owned. My friends used the MSX computer for playing games, but it could be programmed using BASIC. Later I was given a pocket computer, which was a calculator with programming capability in BASIC. It was a nice toy, and I remember it with nostalgia. It was very small and light (it could be held in the palm of your hand) and since it was powered by batteries, you could carry it anywhere. Yet, you could do amazing things (like solving differential equations) using BASIC programming. Unfortunately, it had a very small amount of memory, it only showed 3 lines on the display, and it used audio tapes for external memory. Hence, it was useless for practical tasks like word processing. (Note that pocket computers were developed mainly for laboratories which needed complex calculations during experiments. For this purpose, I think they were very practical. Nowadays, they would be replaced by the ubiquitous PC.) Then, as with any adolescent there came a time when my pocket computer was forgotten on a dusty shelf.
Encountering a UNIX Workstation
My interests in computers were rekindled when I was introduced to a used Sun workstation in my University class. Although UNIX workstations have been around for a while, I was very much in awe of them for a long time. My view was a bit outdated perhaps, because other technology could now compete them already. When they were invented, they provided a unique environment for computing. Unlike “mainframes”, large central computers from this same time period, UNIX workstations were often individually owned. Yet unlike these day’s PC, they could communicate with each other. Therefore, they could be used for collaborative work. Unfortunately, UNIX workstations were expensive, so only rich organizations had them. So, individuals like me needed to attend a University class, or be employed by a high-tech company to use UNIX workstations.
In the university class, we were taught how to setup workstations, use email, share files, browse the World Wide Web, and launch the web server. They were exciting programs, but they took a lot of work. We had to replace the core part of the operating system, and input arcane variables to connect to the internet. There were no automatic update systems for software and no auto configuration of network parameters.
Then, there came a Linux PC. The revolutionary feature of Linux is that it provides the same functionality of a UNIX workstation, yet Linux can run on the ordinary PC. It means that now individuals can own the power of a UNIX workstation at home. Moreover, Linux is more advanced than traditional UNIX workstations. OK, I speak imprecisely. Linux means a kernel, the core part of the operating system. Linux as a kernel is a little more advanced than traditional UNIX. But more importantly, it comes with a lot of advanced tools and functionality. Most Linux “distribution” packages which include Linux kernel, are equipped with automatic update systems. It is for not only for the operating system itself, but also for the system software. We can choose a vast number of free and commercial software and install these programs. The operating system automatically keeps the software updated. Another good thing about Linux is that most software for Linux machines is free, and its source code is published. So, if you have programming skills, you can read the actual code and can learn a lot of things.
I played a long time with Linux on my favorite PC. I setup preferred software, created my favorite desktop configuration, surfed the internet, wrote articles, read and modified source code, played games, and most importantly, developed my own free software.
From Linux to Windows
Unfortunately, the magic of Linux did not last long. Linux is too complex. Linux is too complex partially because it is designed to be versatile. Linux can be used from a server, to an embedded controller in a computer-controlled machine. Linux also has an obsolete design philosophy. Linux follows the ‘UNIX philosophy’ , that is, a system is designed to be an ensemble of tools dedicated to simple tasks and communicating using plain (human readable) text. All configurations are done by writing a configuration file whose syntax differs from tool to tool. UNIX philosophy has the advantage that it allows users do complex tasks using a combination of simple components, and since all data is human readable, it allows users maximum control over what a system does. On the other hand, using multiple tools even for a common task is cumbersome and error-prone. Unless tools are very carefully designed, they often do not work together very well.
Switching to Windows has other advantages. First, Linux often does not support the newest PC hardware. The easiest way to run Linux on a PC is to run it as a Virtual machine (like VMWare) on Windows. So, you have to install Windows on your PC anyway. There are other reasons to install Windows. Most PC vendors do not support Linux officially, so you need Windows to troubleshoot your PC. Sometimes, you may need to run software which does not have a Linux version, such as Microsoft Office. Doing all jobs on the Windows platform simplifies the configuration of your PC and reduces the amount of disk space necessary to run everything.
Because a lot of data occupied the hard-drive of my PC, I removed Linux from my PC and am doing all tasks on Windows instead.
From PC to Cell phone
Windows, however, is not the ultimate answer for all my computing needs. Windows is still too complex. It requires configuration to connect to the internet. You need to manage any software packages that you installed. The software is often buggy and slow.
While fighting with Windows, I was more and more inclined to use my cell phone for communication, instead of PC mail. The biggest difference between a PC and a cell phone is that a cell phone is more casual. PC mail is used more often by technology oriented people in a professional capacity. Cell phones are used by everyone all every time. Usually, a cell phone works flawlessly and you do not need to configure it to use its basic functions. Recently, functionality of cell phones has expanded greatly, and nowadays you can see Web pages, Word documents, and Excel sheets on a cell phone.
As for personal information management, I go back to traditional paper. I now carry a large binder which contains my diary, TODO list, address list, a list of restaurants, and so on. Paper is the most reliable (it never crashes), flexible (you can stick post-it notes to pages, for example), and is an information-rich medium (your handwriting is preserved as is).
I argue that the real personal computing tool ought to be:
· really personal; that is, everyone can own their own computing tools and carry them everywhere
· able to communicate
· specialized for personal use
· centrally managed
In the end, it looks like a cell phone!
First, the real personal computing tool ought to be like a part of someone's body, owned personally, and carried everywhere. The term personal computer is a contradiction because they are often not very personal. They are owned by a company or family, and not truly owned by an individual. Another problem with a PC is its size and weight, which prevent people from carrying it everywhere.
The second important criterion is communication. It is an indispensable part of current computing. The constant ability to communicate is the modern "must" of life. By its universal computing power, computers can mimic any information medium. Combining handiness and portability, computing tools can give individuals the maximal communication ability.
The third criterion is to create a computer that is "specialized for personal use." This idea may need more explanation. Computers have an infinite computing capability. Any computation which can be performed manually can be performed by computers. This capability is the strength of computers. The versatility enables computers to be used everywhere, from kitchen equipment to space exploration. On the other hand, this can be a weakness, since it means that computers can be used maliciously, can perform in an unexpected fashion, and their functionality increases the complexity of the machines in general. The results are software bugs, malware, security problems, and viruses. Therefore, something has to be done to control universal computing power. Moreover, since computers are versatile, computers need configuration before they are used for specific purposes. Configuration costs a large sum during the lifetime of the computer.
By specifically designing a computer for personal use, the ability of computers can be restricted to those specific functions that are needed for personal use. This restriction makes security less problematic. For example, cell phones, a device specifically designed for personal use, allow very few computer viruses. Further, this restriction makes configuration easier. For example, cell phones are used by most people now, while using a PC usually requires more professional skill.
The fourth criterion, “centrally managed,” is in contrast to PCs, which are not centrally managed. Decentralization causes problems in three areas: compatibility, management and security. First, decentralized computers have compatibility problems. They have different software, different version of the same software, and different settings. These differences cause problems when data is transferred from one computer to another, or computers try to connect to each other. Second, decentralized computers have management problems. The same updates and the same settings must be updated onto each computer independently. This means that a large amount of effort is wasted to do the same thing repeatedly. Each computer must be managed and updated individually. If a mistake is made, it will be made repeatedly Third, decentralized computers have security problems. If computers are managed individually, software in some computers would not be updated properly. This causes a security risk.
Centrally managed computers such as cell phones solve these three issues. First, centrally managed computers are compatible with each other, since the software and setup are identical. Second, centrally managed computers eliminate tedious management tasks which should have been done on each computer. Third, centrally managed computers are more secure, since they always have the newest security updates.
How far will we go with the ideal of personal computing? As I have shown, the cell phone is a good candidate for an ideal personal computing medium. Unfortunately, as cell phones become more powerful, they become more and more PC-like; that is, slow, unreliable, and complex. So, in the foreseeable future, perhaps we cannot dispense with paper-based personal information management tools when we need reliability, simplicity and freeness of use.