Est. 1963 Beginner

JOSS

The JOHNNIAC Open Shop System, J. Clifford Shaw's interactive language at the RAND Corporation, in limited use from May 1963 and in daily use from January 1964. JOSS let scientists type imperative English sentences at a typewriter and get answers back, and it fathered TELCOMP, FOCAL, CAL and a whole family of conversational languages

Created by J. Clifford (Cliff) Shaw, RAND Corporation

Paradigm Interactive, Procedural, Imperative
Typing Dynamic; numbers only (decimal, 9 significant digits), with subscripted letters, stored formulas and Boolean propositions
First Appeared 1963
Latest Version JOSS-2 on the DEC PDP-6 (in formal operation from February 1966)

JOSS, the JOHNNIAC Open Shop System, was one of the first interactive, time-shared programming systems. J. Clifford Shaw built it at the RAND Corporation in Santa Monica. It went into limited use in May 1963 and daily use in January 1964. Users typed commands at a typewriter in their own office as short imperative English sentences (Type 2+2.). JOSS answered in black ink under the user’s green, and when it couldn’t make sense of a line it replied Eh?. It ran on a vacuum-tube machine designed in the early 1950s and it was built for people who did not want to become programmers. JOSS still set the pattern for a generation of conversational languages: BBN’s TELCOMP, DEC’s FOCAL, Berkeley’s CAL, and, at one remove, MUMPS.

History and Origins

A personal computing service on JOHNNIAC

RAND had built JOHNNIAC, a Princeton-class machine modelled on the IAS computer, in 1950-53. In his 1964 paper Shaw writes that “from the earliest days of construction of the JOHNNIAC computer … it has been the author’s dream to have an economical, personal, remote communication station for on-line control and programming of a computer.”

In November 1960, after years of talking about remote consoles with T. O. Ellis, Shaw proposed that JOHNNIAC be committed full time to “a modest computing service to the open shop via remote typewriters.” He was explicit about what the project was not. The aim was not to make JOHNNIAC machine language available remotely. It was to offer a service “through a new, machine-independent language” designed for the purpose. In 1961-62 Ellis and M. R. Davis designed and built the Multiple Typewriter Communication system that connected the typewriter stations to the computer.

The hardware was severely limited. Shaw’s own catalogue of JOHNNIAC’s shortcomings in his 1964 paper, reprinted in Ware’s 2008 RAND history, lists “no indexing, no indirect addressing, no floating point, no error checking, no memory protect, no interrupts … and a 50-µs add time.” The machine had about 4,000 words of core memory. On this machine Shaw designed the language and the user interface, and he wrote every line of the implementation himself. Ware’s history says “he steadfastly declined help from anyone.”

From austere version to daily service

An “austere version” of JOSS saw limited use during most of 1963, beginning in May. From January 1964 the full system was in daily use. It monitored ten typewriter consoles and served up to eight users at a time. In March 1964 RAND made a 22-minute film about the system, and in October Shaw presented it at the AFIPS Fall Joint Computer Conference in San Francisco.

The service was popular, and it was also unreliable. JOHNNIAC still had other jobs to do, so JOSS ran only from 10 a.m. to 6 p.m. on weekdays. The machine had no tape or disk, so users could not save programs between sessions. Shaw admitted that the system “usually ‘crashes’ every other day.” Users kept coming back anyway. In his 1965 paper Shaw quotes a senior electronics engineer who was arguing for a replacement machine:

People adjust their lives to fit around JOSS… No use coming to RAND before 10:00 am when JOSS arrives, in fact noon or after 5:00 pm is a better time, JOSS is less busy. When JOSS starts typing answers, the titillating pleasure is equalled only by the ensuing anguish when JOSS breaks off into jibberish or goes away commending your program to oblivion. We can hardly live with JOSS, but we can’t live without it. We’re hooked.

JOSS-2 on the PDP-6

RAND funded a production-engineered successor on a dedicated Digital Equipment Corporation PDP-6. Ware’s history says the JOSS-2 design team was led by Charles L. (Chuck) Baker and included Ed Bryan, Joe Smith and Irv Greenwald. Selected users helped debug the new system from its “first coherent words in early November 1965,” and it entered formal operation in mid-February 1966.

JOHNNIAC was shut down on Friday, 11 February 1966. In a small ceremony Shaw programmed JOSS to run a 60-second countdown and then stop the machine, and Bill Gunning, JOHNNIAC’s chief engineer, disconnected the power. Because the old name no longer fit, Bryan noted, “it has been suggested that JOSS should now be interpreted as JOSS Open Shop System.”

Bryan compared the new system with the old one at the November 1966 DECUS symposium:

Measure (Bryan, Nov 1966)JOSS-2 on PDP-6 compared with JOSS on JOHNNIAC
Computational speedabout 30 times as fast
Storage per user5 times as much (after a drum and disc file were added)
Consoles4 times as many
Console speed50 percent faster

These figures are RAND’s own comparison of the two implementations, not an independent benchmark. Bryan also gave usage figures for the fall of 1966. The system had about 500 users, about 300 of them active in a given month, on 34 consoles. Use typically peaked at 25 concurrent users, and the system processed about 3,000,000 JOSS statements in 24 hours at an average of 5.5 ms per statement. JOSS-2 also gained program filing, the ability to save programs between sessions, which JOHNNIAC could never provide.

Ware’s history also mentions a JOSS-3 written at an IBM west coast facility to run under OS/360. RAND had trademarked the JOSS name and was reluctant to let other organizations use it, so, in Ware’s words, “the IBM version was never widely used.” When the JOSS service finally ended is not recorded in any source consulted for this page.

Design Philosophy

JOSS was deliberately a special-purpose system. Baker told a 1966 audience to compare it with “a telephone, a desk calculator, or a slide-rule–always available at a user’s desk.” Bryan was franker about its limits. JOSS was poor at data retrieval, could not handle large files, and was no place for a 40-page FORTRAN program. Its target was the “not large” numerical problem that a scientist could frame and solve in a single sitting.

The main design decisions follow from that goal:

  • The language is English-like. A command fits on one line. It is an imperative English sentence that “may be read out loud.” It begins with a verb and follows ordinary English rules for capitalization and punctuation, so every command starts with a capital letter and ends with a period.
  • Arithmetic is exact and decimal. Numbers are decimal, carried to nine significant digits, and exact on input and output. Ware’s history gives the example that in JOSS the square of the square root of 2 is 2, not 1.99999.
  • The user and the machine take turns. Shaw’s console design gave control of the typewriter to one side at a time. Indicator lights and the change from green to black ink showed whose turn it was.
  • Error messages are short. Eh? covered most mistakes in spelling, spacing or punctuation. Baker argued that its brevity “will be appreciated by the user”, and it kept JOSS from guessing at a user’s intentions and guessing wrong. More specific messages covered other errors.
  • A few features, freely combined. Baker and Ware both stress that the language’s value lay in the user’s ability “to combine a few highly refined basic features in a variety of ways without restriction.”

Key Features

Direct and indirect commands

A command typed without a number is carried out at once. A command typed with a step number is stored for later, and step numbers like 1.1 and 1.2 group into parts (part 1). This was one of the earliest uses of numbered lines as both a program editor and branch targets, the scheme later familiar from BASIC interpreters. JOSS ran a stored program with commands such as Do part 1. or Do step 1.1..

Conditional and iterative clauses on any command

A conditional clause could be attached to any command, and Shaw’s colleagues singled this out as one of the language’s most powerful features. Baker’s 1966 demonstration opens with:

1
2
3
4
5
6
Type 2+2.
       2+2 = 4
Type "ok" if 500<3*6<1000.
       ok
type 2+2.
Eh?

In JOSS * is exponentiation and multiplication is a raised dot (·), so 3*6 is 729 and the condition holds. The third line fails only because it begins with a lower-case letter.

Ranges are written start(step)end, and a for clause can drive any Do:

1
2
1.1 Demand c(i).
Do part 1 for i = 1(1)4.

Formulas and iterative functions

Let defines a formula that JOSS re-evaluates whenever its name is used. The built-in iterative functions sum, prod, max, min and first take a range directly, so many loops never need to be written. The JOSS Primer defines factorial this way:

1
2
3
Let P(n) = prod[k = 1(1)n: k].
Type P(5).
       P(5) = 120

The other built-in functions, as Ware’s history groups them, were the elementary transcendental functions (log, exp, sin, cos, arg) and the number-dissection functions (sgn, ip, fp, dp, xp), which return the sign, integer part, fractional part, digit part and exponent part of a number.

Report-quality output

Users described the layout of their results with numbered forms. Underscores mark fixed-point digit positions and periods mark scientific-notation fields. Type x, f(x) in form 1. then prints values in that layout. RAND considered output that could go straight into a report on 8½ by 11 inch paper a large part of JOSS’s appeal.

Hardware designed for the language

The JOSS-2 console was an IBM Selectric typewriter with a modified character set. According to Baker’s description, quoted in Ware’s history, the standard characters used 73 of the 88 keyboard positions, and the other 15 held mathematical symbols. An auxiliary control box with indicator lights activated the console. The Primer describes it as “a mobile unit that is connected through an office outlet” to the central computer.

Evolution

VersionMachinePeriodNotes
Early JOSSJOHNNIACfrom May 1963“Austere”, limited use
JOSS (later JOSS-1)JOHNNIACJan 1964 - Feb 196610 consoles, up to 8 concurrent users, weekday hours only, no program filing
JOSS-2DEC PDP-6from Feb 1966Baker-led team; around the clock; filing; 34 consoles by fall 1966
JOSS-3IBM, under OS/360date not establishedBuilt by IBM; “never widely used” (Ware 2008)

Outside RAND the ideas spread through derivatives rather than through JOSS itself. Published accounts of these languages, including their Wikipedia articles, describe BBN’s TELCOMP (about 1964-65), Butler Lampson’s CAL at Berkeley (1967) and DEC’s FOCAL (1968) as JOSS-based, and MUMPS (1966) traces part of its design to JOSS through TELCOMP. Wikipedia also lists a DEC PDP-10 language, AID (Algebraic Interpretive Dialogue), among the JOSS derivatives; that was not checked further for this page.

Current Relevance

JOSS is a historical language. No original implementation is in service, and no maintained interpreter or Docker image is available. What survives is unusually good documentation. RAND’s papers and memoranda, among them Shaw’s 1964 and 1965 papers, Baker’s demonstration, Bryan’s implementation overview and the 1967 Primer, are scanned on bitsavers and the Internet Archive. JOHNNIAC itself went to the Los Angeles County Museum after its retirement and is now held by the Computer History Museum.

Why It Matters

JOSS showed early, and on hopelessly underpowered hardware, that people who were not programmers would use a computer directly if the language was designed around them. Many of its ideas became standard in later interactive languages: immediate commands alongside a stored, line-numbered program; one interpreter acting as both calculator and editor; short, polite error replies; and decimal arithmetic that gives the answer a person expects. Its RAND usage logs are some of the earliest published data on how people actually work at an interactive terminal. Shaw summed up his approach in a remark that Ware’s history quotes: “The success of a system depends on thousands of decisions, every one made right.”

Sources

  • J. C. Shaw, JOSS: A Designer’s View of an Experimental On-Line Computing System, RAND P-2922, August 1964 (AFIPS FJCC 1964, vol. 26, pp. 455-464).
  • J. C. Shaw, JOSS: Experience with an Experimental Computing Service for Users at Remote Typewriter Consoles, RAND P-3149, May 1965.
  • C. L. Baker, JOSS: Scenario of a Filmed Report, RAND RM-4162-PR, June 1964.
  • C. L. Baker, JOSS: Introduction to a Helpful Assistant, RAND RM-5058-PR, July 1966.
  • G. E. Bryan, JOSS: Introduction to the System Implementation, RAND P-3486, November 1966 (DECUS Fall Symposium).
  • S. L. Marks and G. W. Armerding, The JOSS Primer, RAND RM-5220-PR, August 1967.
  • T. O. Ellis, Multiple Typewriter Communication System for JOHNNIAC On-Line Use, RAND D-10507, September 1962.
  • Willis H. Ware, RAND and the Information Evolution: A History in Essays and Vignettes, RAND CP-537, 2008.

Timeline

1960
In November, J. Clifford Shaw proposes to the management of RAND's Computer Sciences Department that the JOHNNIAC computer be committed full time to a modest computing service for the open shop, reached through remote typewriters and a new language designed for the purpose
1962
T. O. Ellis and M. R. Davis build the Multiple Typewriter Communication system that connects JOHNNIAC to typewriter stations. Ellis documents it in RAND memo D-10507 (September 1962)
1963
An early, austere version of JOSS goes into limited use at RAND beginning in May
1964
JOSS goes into daily use in January, monitoring ten typewriters and serving up to eight users at once. In March RAND makes a 22-minute demonstration film. In October Shaw presents "JOSS: A Designer's View of an Experimental On-Line Computing System" at the AFIPS Fall Joint Computer Conference in San Francisco
1965
Shaw reports that in the week of 1-7 April JOSS worked for 77 different users, with an average of 31 users conducting 49 sessions a day. In early November the new JOSS on a DEC PDP-6 produces its "first coherent words" for users helping to debug it
1966
JOHNNIAC is shut down on Friday 11 February, with Shaw programming JOSS to run a 60-second countdown before the machine stops. The PDP-6 version (later called JOSS-2) enters formal operation in mid-February. By the fall it has about 500 users on 34 consoles, and it runs 24 hours a day apart from scheduled maintenance
1967
RAND publishes user documentation for JOSS-2, including E. P. Gimble's JOSS: Problem Solving for Engineers (May) and S. L. Marks and G. W. Armerding's The JOSS Primer (August)

Notable Uses & Legacy

RAND Corporation research staff

Mathematicians, engineers and analysts at RAND in Santa Monica used JOSS from their offices for small and medium numerical problems. Shaw quotes one mathematician who used it for "everything from finding the product of two real numbers to solving fifteen simultaneous transcendental equations"

United States Air Force

JOSS was built under the Air Force's Project RAND. Ware's history says JOSS-2 served a limited number of external terminals within the USAF over dial-up telephone circuits. Bryan's November 1966 paper counts five consoles at remote locations, three of them on the East Coast (six in its summary), though it does not say which of them were Air Force sites

Early study of interactive computing

RAND logged JOSS use minute by minute and published the figures (session lengths, concurrent users, lines typed per minute). Shaw's 1965 and Bryan's 1966 papers are among the earliest published measurements of how people actually used an interactive time-shared system

Language Influence

Influenced

TELCOMP FOCAL CAL MUMPS

Running Today

Run examples using the official Docker image:

docker pull
Last updated: