| 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 still accessed through a telnet interface.
Unlike a disk operating system, Pick is centered around a “multivalued” database. It has database tables referred to as “files”. Think of a Pick “file” like a flat 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). Each file has a shadow table called its “dictionary”, where database developers describe what might be in a field. It's what “might” be in the field because Pick fields don't have datatypes, lengths, default values, or referential integrity by default. One record in a file may be for an open order, and have 32 fields of one kind of data, and another may be for an archived order with 5 fields of XML. 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 PickBASIC? programming language. This is basically (no pun intended) good old BASIC with functions for selecting records and performing CRUD operations. PickBASIC? also has a socket API, but no higher level functions for protocols like HTTP or FTP. PickBASIC? programs are stored as records in a file, usually one called “b”. Modern Pick incarnations include ways to link to C programs, but this isn't well-documented and is rarely used. They also have a system() function to run operating system level programs, and that's much more useful for interacting with the outside world.
Pick records (including PickBASIC? files) are edited using a line editor, like DOS's Edlin but less user-friendly.
