Comment by pavlov

2 years ago

For context, MUMPS is from 1966. It’s a database access language created for hardware constraints which are hard to fathom today:

”Early MUMPS memory partitions were limited to 2048 bytes so aggressive abbreviation greatly aided multi-programming on severely resource limited hardware, because more than one MUMPS job could fit into the very small memories extant in hardware at the time. The ability to provide multi-user systems was another language design feature. The word "Multi-Programming" in the acronym points to this. Even the earliest machines running MUMPS supported multiple jobs running at the same time. With the change from mini-computers to micro-computers a few years later, even a "single user PC" with a single 8-bit CPU and 16K or 64K of memory could support multiple users, who could connect to it from (non-graphical) video display terminals.”

(https://en.wikipedia.org/wiki/MUMPS)

How would you design a programming language that operates concurrently on a large shared database with just 2 kilobytes of scratch memory available for each process?

Oh, and the CPU to execute these concurrent jobs clocks at 0.5 MHz, and Unix won’t even be invented for another five years, so your implementation will of course be in machine code. You’re practically designing the operating system as part of the language.

It’s fascinating and somewhat horrifying to think that a system designed for this bygone era still survives in its own special vertical.

Many major medical systems used in hospitals are run on MUMPS. It's currently branded as Intersystems Caché.

https://www.intersystems.com/cache/

>It’s fascinating and somewhat horrifying to think that a system designed for this bygone era still survives in its own special vertical.

Why is it horrifying?

I know someone who built a business selling software on such systems. Business BASIC -- so basically, regular BASIC with COBOL-like data access primitives and decimal math. The machine had 64 KiB of RAM and could support 8 users at once. Even when I was growing up, a machine with 64 KiB wasn't worth really taking seriously. Those were for kids like me -- the C64 and that. But back in the 70s they ran whole businesses on one.

Horrifying for developers, but such longevity is great for the client

  • Yeah, there are downsides to old tech like this (hard to find developers, for one) but some of these old systems (especially the AS/400) seem to have an appliance-like operational profile that modern stacks make hard or impossible.