⚠️ Final stages: EDiting to re-open shortly ⚠️

Æ Roadmap

  • Content restoration (Mostly done, few things missing that will be restored sporadically)
  • Image restoration (Somehow still going? You can check statistics for more information)
  • Æ Imageboard (Delayed, work to be resumed at a later date)
  • Mediawiki upgrade and backend fixes
  • .onion domain for Tor-friendly editing and viewing
  • CSS overhaul (Fixing things like the videos on mobile, and overall a rehaul of the wiki's look to be more friendly to readers)
  • Paid bounty board for new articles (Won't be managed by me for legal reasons however I will ensure it runs smoothly)
  • Anonymous phone # service for those seeking ban evades from Twitter as well as a phone number not tied to their name (more details at launch)
  • If you have any questions you can join our public Telegram chat to DM me privately or @ me in chat.

    You can also email me via [email protected]

    Merch Status: Merch is in. Waiting for USPS envelopes to mail out.


    From Encyclopedia Dramatica
    Jump to navigation Jump to search

    The Massachusetts General Hospital Utility Multi-Programming System, abbreviated as MUMPS or just M, is a programming language that is absolutely unique in its shittiness. Unfortunately, although it's constructed as one of those shit esoteric languages like Brainfuck or Befunge, people actually use it.

    The primary design goal [of] MUMPS was to create code that, once written, can never be maintained by anyone ever again. [...] A more apt name for the language certainly would have been EXPLOSIVE-DIARRHEA.


    —Alex Papadimoulis, writing for The Daily WTF

    Code samples

    A Hello World program in MUMPS looks like this:

      write "Hello, World!",!

    As TOW explains, the ,! part creates a newline for reasons that are totally obvious. The quit part is necessary because the MUMPS compiler doesn't give a fuck about whether or not you want a routine to end. This is also painfully apparent in the very short routine size limit, which forces most MUMPS programs to consist of a bunch of routines like ASDF1, ASDF2, and ASDF3, all chained together with GOTO statements.

    Alternative version:

    hello() w "Hello, World!",! q

    This last program takes advantage of the fact that you can abbreviate keywords like if in one letter, like i. So does this one, which prints out a beautifully formatted table of prime numbers:

    f p=2,3:2 s q=1 x "f f=3:2 q:f*f>p!'q  s q=p#f" w:q p,?$x\8+1*8

    Language design

    M is a lousy language with one great data type.


    —Steve J. Morris, as quoted in the MUMPS FAQ, part 1

    The data type he's talking about is the string, which is the ONLY data type in MUMPS. That's right: strings are implicitly converted into numbers while performing mathematical operations.

    Speaking of mathematical operations, unlike every other language on the planet, MUMPS evaluates everything left to right. So, in the world of MUMPS, 2 + 3 * 10 is equal to 5 * 10, not 2 + 30.

    Other fun things include the keywords. MUMPS doesn't have any. So this shit:

           IF IF=THEN DO THEN
           QUIT:$QUIT QUIT QUIT ; (quit)

    is perfectly valid MUMPS code. But wait! There's more! We haven't even talked about multi-threading and networking yet. Yes, this steaming puddle of afterbirth does indeed support those features. To access a database (or, an array - in MUMPS, they're the exact same thing, but databases have a ^ in front) on another machine, all you need to do is:

    SET ^|"DENVER"|A(1000)="Foo"

    to set the 1000th element of the database A on the machine named DENVER to "Foo".

    External links

    Softwarez series.jpg

    MUMPS is part of a series on


    Visit the Softwarez Portal for complete coverage.


    MUMPS is part of a series on Programming.

    [2 L337 4 MEEnter the Matrix]