http://home.comcast.net/~lenharding

Len Harding

Software for people who program

1790 Sheridan Drive
Ann Arbor, MI 48104


The Problem A Solution

When I started in the computing industry in 1960, there were lots of people programming, but none of the applications that people take for granted today existed. Many people in the hard sciences, the social sciences, engineering, and business were in a permanent state of writing one program or another, but there were few programmers per se. Almost any question one might pose led to yet another program or some modification of an old one that had taken on a life of its own as a convenient mechanism. For many people, computing became an avocation; for a few, an occupation.

During the last decade or so, programming has gone out of favor for a whole complex of reasons, some real and some specious. For example, the desired programs simply became too large, i.e., the computing industry evolved and matured just as all other industries have done. The "everything has already" been written perspective was wrong, as usual. The evolution of windowing technology, which added a complex and unfamiliar context to even simple applications, raised the bar too high for people who program.

Both xterms and DOS windows are artifacts of a programming environment that should have died. Those organizations and people involved in the development of windowing systems should have considered standards and ensured that simple tasks could be accomplished easily, e.g., by people who program. In the early nineties, I rummaged the Internet for tools or a library for writing windowed applications easily, e.g., windowed analogues of I/O streams. I didn't find anything. Thus, after retiring, I did what we had always done, I wrote it.

The result is my monograph entitled Portable Windowed Applications: Pollsters, Onlookers, and Others that describes the POO software and contains the C source code for implementations of the POO software for the X Window System, Microsoft's Windows, and IBM's OS/2 Presentation Manager. By design, the POO software supports both application and user portability. Multithreading is automatic in those systems that support it.

The POO software is a library containing five functions that are derived from the open, put, get, and close functions embedded in the ANSI C standard and their analogues in the ANSI Fortran standard. None of the POO functions takes more than three arguments, and only standard data types are used. These functions are simple, easy to learn, and easy to use. The fifth function is optional: it accepts the name of your application and performs initialization for a named application. In short, anyone who can write to either the C or Fortran standards can write POO applications that are multiwindowed and multithreaded.

POO I/O streams are displayed in windows that support scrolling, I/O direction, typeahead, input editing, cut-and-paste for input and files, and generalized line re-entry. In addition, the POO software supports function key string assignments, user-managed window attributes, file system browsing, a virtual-memory file facility that handles some portability issues, and a memory file facility that is used to retain information between invocations of a POO application. All POO windows support the command-driven interface.