@Cat said:@dtech said: Until recently I always thought MUMPS was just thought up by Alex as general pointer to the WTF'yness (by today's standards) of old FORTRAN, COBOL etc. languages and the problems when dealing with those old system. I cried for the poor developers who support those systems when I found out it actually existed.   Eh, it's actually nowhere near as bad as you might expect.  The obfuscated-beyond-recognition coding style that was associated with old MUMPS is long gone (though yes, I will admit if you look deep enough into the bowels of our code you will find some... I am lucky in that my area of work is one of our newer modules and it's actually decently well written.  I do pity the fools who maintain our core modules, because some of that code gives me nightmares) The articles tend to exaggerate or tell half-truths about the language.  It's really no harder to read or write than any other procedural programming language, e.g. C, once sustainability began to trump speed and coding standards evolved to reflect that.  There are some genuine WTFs but the articles don't really get into the actual ones - things like variable scope and parameter passing are my main dislikes.  Scoping is strange because loops, do-blocks, and procedure calls are all just a new stack level, and every stack level is able to access any variable declared at its level or higher, unless that variable is hidden by declaring a new variable of the same name.  That makes a lot of sense for loops and do-blocks, but not so much for procedure calls.  So when you call a procedure, it's the called procedure that is responsible for making sure it doesn't overwrite its caller's variables.  Now we do have automated tools to detect that, and that tool is run three times by three different people as part of the peer QA process, but it's still a bit strange of a language design choice.Parameter passing is a bit odd as well in that whether something is passed by reference or passed by value is decided by the *caller*, not by the called procedure.  Sometimes that can actually be very useful, though - but it's a bit odd of a paradigm shift.  I've only been exposed to it in passing, but my 50,000-foot view of MUMPS is that it's for people who have heard of RPG but decided to implement it themselves rather than acquire the existing language.