Live data from Hacker News

The MUMPS 76 Primer – anniversary edition

github.com

41–50 of 63 posts

Re: The MUMPS 76 Primer – anniversary edition

#43

There are newer versions of M/MUMPS around and some of them are open-source such as YottaDB https://yottadb.com/ and Reference Standard M https://gitlab.com/Reference-Standard-M/rsm . I've never been quite brave enough to try to build something with it.

The project is intentionally about the MUMPS 76 standard and its anniversary, see https://github.com/rochus-keller/MUMPS/blob/main/Readme.md.

Re: The MUMPS 76 Primer – anniversary edition

#44

Built-in hierarchical DB? Neat! DB access using same syntax as local variables? Neat! Datetime epoch in 1841? Ok, sure. Stringly typed with literally no other types? Uh… Appendix 7 on this page http://www.faqs.org/faqs/m-technology-faq/part2/ : runs screaming into the night It had some neat ideas, some alright ideas that were reasonable in the context it was created for, and some absolute nightmare fuel.

Strange it feels worse than both raw asm and apl.

Re: The MUMPS 76 Primer – anniversary edition

#45
post #43

There are newer versions of M/MUMPS around and some of them are open-source such as YottaDB https://yottadb.com/ and Reference Standard M https://gitlab.com/Reference-Standard-M/rsm . I've never been quite brave enough to try to build something with it.

The project is intentionally about the MUMPS 76 standard and its anniversary, see https://github.com/rochus-keller/MUMPS/blob/main/Readme.md .

Agreed, I just wanted to point out that it is still around!

Re: The MUMPS 76 Primer – anniversary edition

#46
post #38

Earlier quoted context omitted.

Quite agree. Some very novel ideas for the time. I’m not a PL historian but can’t think of an earlier language with such a complex runtime to support it. But, woof - no thanks to the stringly typing. The article under discussion treats this as a positive, saying it eliminates conversion and having to worry about it. I don’t believe that’s possible, and would bet my life savings that MUMPS interpreting a string as a n…

My intention was to present the MUMPS 76 standard so it can be appreciated by today's software engineers; it should be obvious that this is a historical treatise, not a guide for today's systems; as mentioned elsewhere, MUMPS 76 was designed to work on PDP machines with 8K to 24K of core memory. Your coercion concerns apply to any dynamically/weakly typed language, and the same coercion-class bugs are rampant in Java…

Thanks for the reply!

I agree with your points about weak typing and coercion being prevalent. Having had direct negative experience with it across 3 of the 4 languages you named, I was prepared to marshal an argument about it most definitely being a source of bugs.

> it should be obvious that this is a historical treatise

It wasn’t obvious to me. Might I suggest amending it to make that more clear?

I do appreciate the tutorial and your commentary though, it gave me a new perspective on MUMPS.

Re: The MUMPS 76 Primer – anniversary edition

#47
In case anyone is wondering why anyone should give a shit about this language, the relevance of MUMPS is that the largest market share holder of EHR systems is Epic, and their core database still runs on MUMPS.

You life, quite literally if you find yourself in a hospital, depends on MUMPS.

The second largest competitor, Cerner/Oracle Millenium, runs on MSFT SQL, and it's on life support. Last I heard, Oracle was looking to unload it.

Re: The MUMPS 76 Primer – anniversary edition

#48

In case anyone is wondering why anyone should give a shit about this language, the relevance of MUMPS is that the largest market share holder of EHR systems is Epic, and their core database still runs on MUMPS. You life, quite literally if you find yourself in a hospital, depends on MUMPS. The second largest competitor, Cerner/Oracle Millenium, runs on MSFT SQL, and it's on life support. Last I heard, Oracle was look…

Millennium has a streak of failed implementations lately, VA in the US, two here in Sweden. It is not just Millennium I believe health care providers are pretty bad at tech.

Re: The MUMPS 76 Primer – anniversary edition

#49

Built-in hierarchical DB? Neat! DB access using same syntax as local variables? Neat! Datetime epoch in 1841? Ok, sure. Stringly typed with literally no other types? Uh… Appendix 7 on this page http://www.faqs.org/faqs/m-technology-faq/part2/ : runs screaming into the night It had some neat ideas, some alright ideas that were reasonable in the context it was created for, and some absolute nightmare fuel.

> Appendix 7 on this page http://www.faqs.org/faqs/m-technology-faq/part2/ : runs screaming into the night

I don't know mumps very well, but this seems pretty straightforward if you put the primer next to it, and I am troubled by your (common!) reaction to alien technology...

> Stringly typed with literally no other types? Uh…

like this example here; SQLite made this choice too. Everyone knows about SQLite by now, right?

All types are strings when the user types them in, whether you are talking source code text, or the patient's weight in kilograms. Pretending you can have other types is something the source code of your application (or the language your application is written in) does.

This is something that makes total sense when you are thinking about things the right way (whatever that means), so when something makes you go "uh" try inverting this equation, and ask yourself, in what way (or under what circumstances) would this decision make sense?

That sort of thinking will get you the right ideas to understand everything else in the software world, and make you less avoidant about filling in the gaps in your own abilities.

> It had some neat ideas

Has. Multiuser support is still almost nonexistent in mainstream programming (and just recently starting to actually show up in SQL implementations!). And besides SQL, the most popular language with global variables you've might have heard of is perl. Understanding these ideas is still in the future.

Putting the ideas in the past, and framing them with such harsh judgement -- especially the ideas like this that you don't fully understand yet -- keeps them out of your mind, and denies you access to what these ideas can do for you.

As an example: A lot of people make a "users" table in SQL for the users of their application. Of course most SQL implementations have "users" of their own, and have a robust implementation that is already there, and yet almost nobody uses it and chooses to make their own rather than learn how to use the one SQL gives them.

Now: SQL exfiltrations are only possible because of this, and when you fully understand why that is you'll probably never make another users table again.

> and some absolute nightmare fuel.

but nightmares? Seriously? There was nothing in that example code that I am going to have nightmares about. It seems very well thought out (unlike say, Python's). It's even Y2K compliant. There is even a few ideas in there I'm going to steal for my own parser.

There is good stuff here; don't give up.

Re: The MUMPS 76 Primer – anniversary edition

#50

In case anyone is wondering why anyone should give a shit about this language, the relevance of MUMPS is that the largest market share holder of EHR systems is Epic, and their core database still runs on MUMPS. You life, quite literally if you find yourself in a hospital, depends on MUMPS. The second largest competitor, Cerner/Oracle Millenium, runs on MSFT SQL, and it's on life support. Last I heard, Oracle was look…

There are several other EHRs that use MUMPS too.
Post reply on HN