Hacker News new | past | comments | ask | show | jobs | submit login
M, or MUMPS is a procedural language with a built-in NoSQL database (learnxinyminutes.com)
3 points by jxub on March 14, 2019 | hide | past | favorite | 2 comments



When you have been working with a language for a long time, it is easy to forget what other languages don't have which the language does have. This is especially true for MUMPS. Most languages don't have a built-in data handler that maintains a memory cache of disk data effectively extending what can be stored to the capacity of your permanent storage. This isn't technically in the requirements for the language, but is expected by the marketplace. When contemporary languages during the 1960's (reaching past the 1980s) expected a programmer to know about disk sectors and blocks of disk, MUMPS programmers always programmed at the abstract level of sparse arrays indexed by strings of characters for multiple dimensions. The only difference between persistent data and temporary data was using a circumflex ^ as a prefix for the persistent names. The "MP" in MUMPS stands for "Multi Programming" which was an ancient way of saying that the language natively supports multiple programs running concurrently (or in parallel). The language met needs that particular niche markets required. Multiple people have to be able to access bank records at the same time, just as multiple people in a medical setting have to be able to access patient records.

There are many other aspects of the language, which I can only touch upon here, atomic transaction processing that obey ACID requirements, hierarchical lock spaces of semaphors for interacting parallel processes, highly compressed data stored on disk, I/O processing, all the standard control flow models, string pattern matching equivalents of regular expressions (but different as they were created decades before the rest of the computing field was actively using them). Exact number operations to at least 15 digits of precision, (which means you don't lose pennies during math -- financial organizations love this) An interactive command line and the ability to construct code on the fly to be executed. There are many many capabilities in the language.


The second time the universe slapped me on the face with paulg's Beating the Averages article was a couple years before it was written, when I was introduced to Dataflex 2.x on a Unix machine. It was Rails for the VT-100. If you are interested in Mumps, check that out.

The first time was with Mantis on an IBM 4381, but that's a completely different story.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: