Today I had something interesting come across my desk: Requirements to write a Web interface to access a legacy system. As I was scanning, I came across requirements such as these:
The official API for dequeuing a task is: DQ^%ZTLOAD set ZTSK=task #
The official API for deleting a task is: KILL^%ZTLOAD set ZTSK=task#
The following is an un-official way to delete a task:
S XUTMT=task#, XUTMT(0)="D" D ^XUTMT
Wow, what the heck kind of weird language is that?
After throwing up several times and cursing the darkness, I decided to finally turn on the light and see what this was all about.
It turns out it's 'MUMPS' or just 'M' for short.
Looking at some of the sample code, this languages looks nearly incomprehensible (but not in the league of Perl, I guess).
I can't even begin to imagine what would be involved in interfacing with a system like this, but some of the authors are quite proud of their baby and it does seem to have a SQL-like and XML-RPC type bridge access.
One interesting quote from that last link:
MUMPS code is not 'compiled and linked', so any code is open to anyone to call. The same is true for the data. This permits an incredible level of integration between applications, but it is 'too open' for some software architects' liking.
(emphasis mine). Sounds oddly prescient doesn't it? Once again reinforcing the idea that everything in computer science today was done/invented before 1970 1980 and done better back then.