Picking up a new language is easy. Picking up its
philosophy and infrastructure is what's harder. Philosopy was always there, LISP takes a lot different kind of thought than COBOL, for example, We think lambdas are cool as a new feature in
Java, but LISP was
built on lambdas.
JOSS is a military dialect of COBOL and was one of the myriad of custom languages that Ada was intended to replace.
The salient features of COBOL are:
1. Pretends to be English so that Pointy-Haired Bosses can think they understand the code.
2. As originally implemented, was a pure procedural language with the entire program generally being in a single source file (build systems weren't yet a thing, much less Structured Programming or OOP).
3. Can really stress your carpal tunnel syndrome. Instead of "A = B + 7" you code "ADD 7 TO B GIVING A". Verbosity, thy name is COBOL.
4. Interfacing to databases and online transactions systems is generally cumbersome. COBOL programs generally only did I/O using magnetic tape (150MB 9-track reels, for example), Disk a/k/a DASD (350 MB was a huge disk back then). And, of course, punched
cards. LOTS of punched
cards.
If you want to play with COBOL on a Linux machine, install the
gnucobol standard package along with the
gcc compiler. The gnucobol program translates COBOL into C and then
gcc compiles the C code.
Or, if you want the full vintage experience, you could run the original IBM D COBOL compiler under DOS/VS os OS?VS on the Project Hercules mainframe emulator. But operating a mainframe console is a challenge in its own right.