1. 13
  1.  

  2. 7

    “Mumps is easily managed without the need for database administrators.”

    50 slides of programming footguns

    One of my favorite bits about Mumps is why dates start at 1841:

    When I decided on specifications for the date routine, I remembered reading of the oldest (one of the oldest?) U.S. citizen, a Civil War veteran, who was 121 years old at the time. Since I wanted to be able to represent dates in a Julian-type form so that age could be easily calculated and to be able to represent any birth date in the numeric range selected, I decided that a starting date in the early 1840s would be ‘safe.’

    1. 6

      I think that’s delightful. It’s no less arbitrary than Jan 1 1970, and at least there’s a cool story to it. Good on MUMPS!

      1. 3

        And for the context MUMPS was designed for - medical records - it makes perfect sense. “What is the earliest date we could ever possibly need to represent?”

    2. 4

      Interesting reading. Mumps gets a lot of flack, such as from https://thedailywtf.com/ , and it looks pretty primitive compared to modern languages, but it actually seems to be way ahead of its time, being created in the 60s and all.

      Not that I’d expect maintaining a system still written in it nowadays to be much fun or anything.

      1. 3

        Includes a NoSQL database with ACID guarantees? Sounds pretty cutting-edge. :-)

        1. 2

          The contents of all Mumps variables are stored as varying length character strings. The maximum string length permitted is determined by the implementation but this number is usually at least 512 and often far larger (normally 4096 in Open Mumps).

          Why would you need anything more?!

          1. 2

            How am I going to put dank meme images into 4096 bytes?

            1. 1

              Upgrade to MS-DOS — 640K will be enough for dank meme images!

              1. 1
                ░░░░░░░░░░░░░░░░░░░░░░█████████
                ░░███████░░░░░░░░░░███▒▒▒▒▒▒▒▒███
                ░░█▒▒▒▒▒▒█░░░░░░░███▒▒▒▒▒▒▒▒▒▒▒▒▒███
                ░░░█▒▒▒▒▒▒█░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
                ░░░░█▒▒▒▒▒█░░░██▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒███
                ░░░░░█▒▒▒█░░░█▒▒▒▒▒▒████▒▒▒▒████▒▒▒▒▒▒██
                ░░░█████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
                ░░░█▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒██
                ░██▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒██▒▒▒▒▒▒▒▒▒▒██▒▒▒▒██
                ██▒▒▒███████████▒▒▒▒▒██▒▒▒▒▒▒▒▒██▒▒▒▒▒██
                █▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒████████▒▒▒▒▒▒▒██
                ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
                ░█▒▒▒███████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██
                ░██▒▒▒▒▒▒▒▒▒▒████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█
                ░░████████████░░░█████████████████
                

                source

          2. 2

            local variables normally persist until the program ends or they are destroyed by a kill command

            You’d think a system designed for hospitals would avoid naming anything “kill”… :D

            trollback — Roll back a transaction

            ha ha ha