10

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?

7
  • 4
    IF you look at an original tutorial like rand.org/content/dam/rand/pubs/research_memoranda/2006/…, it seems more appropriate to say "except for the few simple examples you quoted, the entire structures of JOSS and BASIC are different." There is nothing in BASIC that corresponds to JOSS output formatting, "Type formula", "Do step" and "Do section", number dissection functions, iterators like "sum", "prod" and "first", etc, etc.
    – alephzero
    Oct 2, 2019 at 16:55
  • 1
    Note that in BASIC as Dartmouth invented it and I learned it (I think some HP 2000 system), the only conditional was "IF relational-expression THEN line-number". Oct 2, 2019 at 22:49
  • Overall, though, I think there's a certain inevitability to some constructs if you were inventing, in the 1960s/early 70s, what was essentially an interactive programmable calculator BASIC mostly represents the table stakes. Oct 2, 2019 at 22:51
  • 2
    Oh, and Dartmouth BASIC isn't an OS. The OS is DTSS. Early versions may have had BASIC as the only compiler available, but that changed. Oct 2, 2019 at 23:04
  • @another-dave - do you happen to have any materials relating to your dartmouth days? I'm desperately trying to get a user-submitted program listing but my emails to date have failed. Do you or anyone else you know might have one? Oct 4, 2019 at 14:43

1 Answer 1

12

I have a hard time to see any similarities beyond basic structures one will find in any language. And all of the ones cited are of such generic structure - heck, the very same list could be made for COBOL.

BASIC is clearly influenced by FORTRAN - up to the point of being a simplified FORTRAN. JOSS on the other hand focuses on a more natural language like structure with postfix modifiers/conditions. It is hard to find any influence from JOSS in BASIC. In fact, the Wiki article does JOSS a bad favour by referring to BASIC at all.

Of course, I wouldn't argue against being known to the designers of BASIC, but they clearly have decided to not go down the JOSS road.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .