I only recently learned of the JOSS language, and then only through a roundabout fashion from an interview with David Ahl where he mentions FOCAL. This led me to read the available manuals for all versions of these languages. And that leads to a mystery...
JOSS is both a language and an operating system. It supports time-sharing and basic file management in addition to a user-facing editor and a program store. Users can enter commands/statements at the command line in "direct" mode where they run immediately, or they can prepend it with a line number, in which case it is entered into the store and can be performed by entering Go
at the command prompt.
Dartmouth BASIC is both a language and an operating system. It supports time-sharing and basic file management in addition to a user-facing editor and a program store. Users can enter commands/statements at the command line in "immediate" mode where they run immediately, or they can prepend it with a line number, in which case it is entered into the store and can be performed by entering RUN
at the command prompt.
This may seem like a forced comparison. It is not. With one major exception, the two languages are almost identical and have 1:1 correspondence between instructions. JOSS has Type
, BASIC has PRINT
. JOSS has Demand
, BASIC has INPUT
. JOSS has Set
, BASIC has LET
. It's not just the instructions, the entire structure is similar.
The major difference is the structure of loops and conditionals. In BASIC, they precede the code they control, for instance, IF X>5 THEN PRINT "YES!"
. In JOSS this order is reversed, Type "YES!" if X>5
. I point this out because of one very interesting fact: BASIC-PLUS allowed either form, and I assume it took that note from JOSS. There are other differences, but overall they are minor.
And finally: JOSS began in 1961 and was running in 1963. It was widely shown to industry in 63 and 64. Dartmouth BASIC started in 1964 and was shipped that year.
Now my question. In spite of reading every history I can find for both languages, I cannot find any mention of JOSS as an inspiration for BASIC. Given the parallels between the two I find it difficult to believe JOSS was not known to the Dartmouth team.
So, does anyone know of an article on either that specifically links the two, or one of the many other offshoots of JOSS?