Skip to content
ALB Wiki

JOSS

JOSS

JOSS — the JOHNNIAC Open Shop System — was the first interactive, conversational programming language: a 1963 RAND Corporation system where a user at a terminal typed a line and the machine answered immediately. Written by Cliff Shaw under Keith Uncapher's Information Processor Project, it pioneered nearly every convention of the interactive computing era — line numbers, immediate mode, a built-in source editor, predicated statements — a year before Kemeny and Kurtz finished BASIC.[1]

"Open shop" was the point: at a time when programming meant handing punch cards to an operator and waiting hours, JOSS meant anyone could walk up to a terminal and compute. RAND's mathematicians, who had watched colleagues struggle with Marchant desk calculators because raw JOHNNIAC demanded real programmers, finally had a machine that met them halfway.[2]

Green ink for you, black for the machine

A JOSS session ran on a modified IBM Selectric typewriter terminal — and it printed user input in green ink, the computer's replies in black. Two-color I/O as a literal ink cartridge distinction, sixty years before syntax highlighting. And when the machine didn't understand what you typed, the response was a single word:

Eh?

The most parsimonious error message ever shipped — no error codes, no stack trace, just a machine politely asking you to try that again.Eh? error response">[3]

JOSS spoke in English verbs — Set, Let, Demand, Type, Do, Done, Stop, Go, Cancel, Page, Line, To — and distinguished direct mode (evaluate this line now) from indirect mode (store it under a line number for later). That split — immediate calculator, saved program, same terminal — is exactly the model every BASIC ROM interpreter would use for the next twenty years. Line numbers did double duty as edit positions and GOTO targets, which is why your C64, your Apple II, and your ZX Spectrum all counted in tens.[4]

JOHNNIAC to PDP-6

The first implementation ran on RAND's JOHNNIAC in 1963 and proved so popular it bogged the machine down — the nicest possible problem. By 1966 JOHNNIAC was retired and JOSS moved to a PDP-6, ultimately serving hundreds of Selectric terminals. The lineage radiated outward: TELCOMP, STRINGCOMP, CAL, CITRAN, ISIS, PIL/I, JEAN, AID, and — in the direction that mattered most — FOCAL and MUMPS, plus the entire 1970s BASIC interpreter tradition that put line numbers in every home computer.[5]

Where it sits

Before BASIC there was JOSS — the first language built around a conversation rather than a deck of cards. It proved the thesis Willis Ware wrote in a 1959 RAND memo: that future computers would serve "a multiplicity of personal input-output stations." Kemeny and Kurtz get the fame; JOSS got there first, said Eh?, and moved on.

Check your understanding

  • What does the "open shop" in JOSS's name mean?
  • How did JOSS terminals distinguish user input from computer output?
  • What did JOSS reply to input it couldn't parse?
  • What is the difference between JOSS's direct and indirect modes?
Show answers

1 — anyone could walk up and use it — computing for the non-programmer, against the priesthood-of-operators model of 1963. 2 — ink color — the IBM Selectric terminals printed user input in green, machine replies in black. 3 — Eh? — a single interrogative, and arguably still the best error message ever shipped. 4 — direct mode executes a line immediately (calculator mode); indirect mode stores it under a line number — the exact scheme BASIC inherited.

Footnotes

  1. ↑ Shaw, J.C., JOSS: a designer's view of an experimental on-line computing system, RAND RM-5058 (1964) — the primary source
  2. ↑ JOSS history — Willis Ware's 1959 "multiplicity of personal input-output stations" memo and the open-shop mandate
  3. ↑ JOSS — the Selectric terminals, green/black ink convention, and the Eh? error response
  4. ↑ JOSS language reference — the command set, direct/indirect mode, and the line-number editing model
  5. ↑ JOSS influence — the JOHNNIAC→PDP-6 switchover and the descendant language list
Categories: History · Languages · Programming
This page was last edited 2026-10-22 13:30:25 UTC by ALB Team. What links here