From The Unfinished Revolution: Human-Centered Computers And What They Can Do For Us.
by the late Michael L. Dertouzos, Director of the MIT Laboratory for Computer Science • HarperCollins, New York, 2001
… Big, clunky programs everywhere try to do a lot more than they should, in an effort to maximize their market. I’m sure you have a few you’d like to rage about. The result is confusion and very often the unjustified sense that you, the individual, are inadequate in your ability to use “modern” technology. We should all revolt and ask why people of our stature and ability should have so much trouble using a program that is touted by its maker as “user friendly” (grrrrr, for the last time, bordering on violence). [p. 126]
Today’s operating systems, such as Mac OS, Linux, and Windows, offer from a few hundred to a few thousand such calls to the application programs that run on them. These calls, taken together, form the operating system’s applications interface, or API. The API doesn’t stand still. New calls are introduced in new versions of an operating system to offer new capabilities. And because it is easy to make calls to these system routines, applications programmers are motivated to exploit the new capabilities of the API in new versions of their applications. To be sure, these new features may not always be useful, but they look good on the spec sheet and advertisements. Useful or not, the calls provided by an operating system penetrate all the applications that run on it, and give them a certain common character and feel, which makes us say, “this looks like a Mac application.”
Unfortunately, in the four decades we’ve been using operating systems, their APIs have not risen much toward the human level. There is a myriad of low-level calls in today’s operating systems—things like “close this window,” “put this window in front of that window,” “redraw this window’s contents because the user moved the window hiding it” . . . just to pick on a handful of window management calls. Because applications reflect the underlying system capabilities, it is no wonder that when we are in the middle of some specialized activity, an application suddenly and stubbornly refuses to redraw or move a window. …
…To be fair, innovations in ease of use were made through the introduction of graphical user interfaces (GUIs) with their windows, icons, and menus. And even though these changes were modest, they evoked enthusiastic reactions from users, because they were so much easier than the old text-only approaches.
Such a revision must take place once again, but at a far more ambitious level, to bring applications closer to the level of what people want to do. The information technology terrain has changed sufficiently to warrant the design of such new operating systems. To succeed, these systems should be built from scratch, with a mind-set rooted in people’s paramount need for greater ease of use and increased human productivity. In other words, they must include full support for the five basic human-centric forces, through a new and powerful set of calls to handle speech, automation, information access, collaboration, and customization. And they must support a new information model that is meaning oriented…
The applications interface of computer operating systems must rise from its current machine orientation to a user orientation by exposing to users and applications alike the human-centric technologies. That is the most important foundation software makers can construct and application programmers can exploit to make human-centric computing a reality. Only then will application programs be freed from the low-level machine shackles of today’s computers and soar to new plateaus of human utility.” [pp. 131-133]