Table of Contents

Pick Database Development

Field Computers
Went Obsolete 1980s
Made Obsolete By Popularity of Unix operating system and relational databases
Knowledge Assumed Pick database experience, BASIC programming
When useful There are companies out there with legacy Pick systems performing vital tasks

The Pick Operating System (often just called “Pick”) is a multi-user operating system originally designed for mainframes and minicomputers by Dick Pick and Don Nelson. Incidentally, it was originally called Generalized Information Retrieval Language System (GIRLS), a reference to Dick's favorite pasttime. There have been many clones (“flavors”) over the years, and modern incarnations run on top of Windows or *nix. They are accessed via telnet session, or with many versions, web and other gui interfaces.

The Pick System has fragmentted into many similar systems referred to as MV (MultiValue) or Pick. The MV and Pick term is useful in researching the system and is used interchangably.

A large market in development systems catering to extending the MV environment has developed, and the current developer will frequently be required to have skills in both Pick and the toolset being used with the application or site.

Unlike a disk operating system, Pick is centered around a “multivalued” database. It has database tables referred to as “files”. The Pick File is a delimited ASCII text file. Records are delimited with a “record mark” (ASCII 255), fields (“attributes”) are delimited with an “attribute mark” (ASCII 254), and then fields can be subdivided into values and subvalues (ASCII 253 and ASCII 252, respectively).

The file system is implemented using the database capabilities of the underlying system. A three level structure of the a main directory, known to the system, and a singleton, is the System dictionary. A number of Accounts are implemented with the System dictionary containing the records pointing to the accounts master dictionary. All files and verbs, and basic utility dictionary records are contained in each Accounts master dictionary.

Each file has two levels, it's “dictionary”. There are two ways to view the data in the Pick system, one via the report and selection system, and by writing programs in the system programming language, Data/Basic.

The system is constrained in its development over time such that there is very little integration between the report language, and Data/Basic, other than by convention. However the description of the file's data records are described in the dictionary of the file to directly generate reports.

The file system contains records which are composed of attributes. The attributes are further divided into value and subvalues. Pick fields don't have datatypes, lengths, default values, or referential integrity by default. Modern Pick flavors have features to enforce datatypes and referential integrity, but they are rarely used because Pick went so long without them.

Pick is primarily programmed in the included Data/Basic? programming language. Data/Basic is a programming language with a free syntax form and functionality similar to Fortran. Variables have no assigned type, but are assumed to be of either numeric or string type depending on the functions performed on the data. Variables can be either strings of indefinite length, or fixed point float. Some functions in the language force either numeric or string, but string function and numeric functions may be more freely mixed in Data/Basic than in most languages w/o any declaration.

Prudent programming in Data/Basic? will include a full data definition, but it is not enforced by the language, and compiler, and therefore the lack of enforced typing can lead to some difficult to debug problems until the user becomes familiar with the language.

Strings may contain entire file records, or functions may break out the fields into variables for processing, and then reassemble them when writing them to the file.

Data/Basic? also has a socket API, but no higher level functions for protocols like HTTP or FTP. HTTP and other functionality is usually provided by the vendors of extensions to the Pick System which interface with the host system. Data/Basic? Compiled programs are stored as binary blocks with pointer records in the dictionary of the source file.

Pick installations are usually set up with scripting which locks the logins to particular functions. This is controlled by the login functions on the Account level. Familiarity with the verbs as implemented by the Pick system's vendor is the first step in understanding what assets are used for each function on a system. Data/Basic programs may be “cataloged” and become verbs and exist only in object form. Further development may require access to a full system with sources that is very different than a running system, so caution should be taken that such is available when working on legacy systems.

Modern Pick incarnations include ways to link to the underlying operating system. Most languages of the host system may be used in conjunction with the Pick System They also have a system() function run other programs from within Data/Basic.

Pick file records (including Data/Basic? source files) may be edited with the system editor ED, however most work with enhanced editors supplied by the MV Vendor.

MultiValue communities are active and may be a good source of information when approaching a legacy system, or any anticipated development on Pick. A large number of application accounting systems one will encounter quite possibly are some sort of MultiValue or Pick, though many may not have any portions easily accessible for development, other than data definition capability.

 
skills/pickdatabasedevelopment.txt · Last modified: 2010/10/10 02:52 by jws
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki