• J Marker (unregistered)

    I'd rather you y'all take a vacation and have no posts than find 'classics' that are only a few months old.

  • francis45 (unregistered)

    Sounds lot like HAL, except HAL has several datatypes: http://www.hansaworld.com/WebHalMain.hal

  • yankee (unregistered)

    Did Brian ever get a job?

  • joomama (unregistered) in reply to yankee

    [quote usre="wtf"]It actually made vi look user-friendly.[/quote]

    Ah, so they were forced to use notepad.

    Seriously, what is with people saying VI is not user friendly? The learning curve is not user friendly per se (although enough to make you fast can be learned in a day), but once you have some clue it is very user friendly and much quicker than textpad or notepad. Everything I need is just a couple key strokes away, unlike notepad where there are no features and I'm forced to use the mouse to cut and paste lines.. bah.

  • BA (unregistered) in reply to joomama

    [quote user="joomama"][quote usre="wtf"]It actually made vi look user-friendly.[/quote]

    Ah, so they were forced to use notepad.

    Seriously, what is with people saying VI is not user friendly? The learning curve is not user friendly per se (although enough to make you fast can be learned in a day), but once you have some clue it is very user friendly and much quicker than textpad or notepad. Everything I need is just a couple key strokes away, unlike notepad where there are no features and I'm forced to use the mouse to cut and paste lines.. bah.[/quote]

    Exactly. I recently forced myself to use vi and learn some commands. You know what? Not that bad. And once I started getting into multiple buffers and yanking lines, I really started liking it.

  • (cs) in reply to J Marker

    I prefer the older Daily WTFs be used.

    Like the YesNoReturn http://worsethanfailure.com/Articles/YesNoReturn.aspx

  • (cs) in reply to joomama

    [quote user="joomama"][quote usre="wtf"]It actually made vi look user-friendly.[/quote]

    Ah, so they were forced to use notepad. [...] Everything I need is just a couple key strokes away, unlike notepad where there are no features and I'm forced to use the mouse to cut and paste lines.. bah.[/quote]

    ctl-x, ctl-v ?

    but you're right; notepad blows.

  • SomeCoder (unregistered) in reply to joomama
    joomama:

    Ah, so they were forced to use notepad.

    Seriously, what is with people saying VI is not user friendly? The learning curve is not user friendly per se (although enough to make you fast can be learned in a day), but once you have some clue it is very user friendly and much quicker than textpad or notepad. Everything I need is just a couple key strokes away, unlike notepad where there are no features and I'm forced to use the mouse to cut and paste lines.. bah.

    vi isn't user friendly. It's very powerful but it's definitely not user friendly.

    Which could your mom use more easily, Notepad or vi? After a few minutes of typing in vi and not seeing anything show up, she certainly would be frustrated with it.

    vi is awesome and powerful but it's not user friendly.

  • (cs)

    vi is not user friendly or intuitive. Once you memorize a bunch of commands and understand the difference between command mode and typing, it's completely usable though.

    Most people who "dabble" in vi do it because they are trying out linux. Copy, cut, paste, and select can all be done in Windows with the mouse or keyboard and it is always the same (unless some jerk screws around with them in a crummy app).

  • RC Pinchey (unregistered) in reply to shambo
    shambo:
    I prefer the older Daily WTFs be used.

    Like the YesNoReturn http://worsethanfailure.com/Articles/YesNoReturn.aspx

    BEST. WTF. EVER.

    It's just... I... but... how... and why?

    The highlight for me is the line with Case "COURT ORDERED". Well, that, and all the other lines.

  • (cs) in reply to RC Pinchey

    I remember when all the entries were like that. The same submitter put in about 4 or 5 of the same quality. Search Tim Cartwright.

  • SnapShot (unregistered)

    Since this article originally came out, I happened to read the Wired 2007 "Rave Awards" and a reference to the WorldVistA project [ http://www.wired.com/culture/lifestyle/multimedia/2007/04/ss_raves?slide=13 ]. Having friends in the medical world I downloaded it to see if it would be a fun project to spends some cycles on. It turns out this things is build primarily in MUMPS! To be honest I don't even know where to start so I think that's a project I'm going to NOT join. On the other hand, Byran, if you are still unemployed there is an open source project waiting for you :-)

  • yokel (unregistered) in reply to yankee

    Yes, Bryan got a job doing C and is a bit happier. Still submitting new WTF as well though.

  • Maximander (unregistered)

    It looks like PHP! One, non-typed datatype, no declarations, integer or string keyed arrays...

    (For reference, I don't hate php: It's my day and night job. Just wish it were a little more strict sometimes.)

  • Rich (unregistered)
    XECUTE (which is my personal favorite, it allows arbitrary execution of code contained in a variable)

    Like "eval", then. Ok.

  • jou (unregistered) in reply to SomeCoder

    vi IS user friendly. It's just picky about its users.

  • Alonzo Meatman (unregistered)

    This was a great WTF. The original thread was filled with a bunch of MUMPS programmers desperately trying to defend their language culture. It was very funny in a LOLLEGACY sort of way.

    I don't know why, but I found myself having a sick sort of fascination with MUMPS after reading the original thread. I wound up reading the MUMPS Wikipedia page AND the FAQ.

    I'm so glad that I don't have to write in MUMPS, or anything like it. Still, it's kinda fascinating (once again, in a sick sort of way) that something like MUMPS can still exist. I hope the programmers who work on it are well-paid!

  • Robert (unregistered)

    Very funny. I was thinking that it reminded me a lot of PHP (I am a full time professional PHP developer, so no bashing... PHP, bash me all you want).

    Funny thing is, a coworker of mine pointed out this article. Seems that about 10 years ago the company was within days of going with an enterprise application built entirely of MUMPS.

    Had it not been for the decision to go with a product that could actually be maintained, I could have been the poor bastard submitting this article.

    CAPTCHA: darwin

  • Pavlik (unregistered)

    This story sounds sooooo familiar. The only difference from mine is that I quit after 1.5 years. Instead of MUMPS we used a MUMPS-like language created by the same wanker that made MUMPS. Unlike MUMPS, it had the additional perk of being proprietary and its very own, home built IDE. In fact the company built all of its internal applications using that language (text editors, IDEs, email clients, schedulers etc) with complete (and I would say malicious) disregard to usability, design and understanding of everything that happened in the IT world since 1969.

  • Anonymous (unregistered)

    What an epic WTF.

  • (cs) in reply to Alonzo Meatman
    Alonzo Meatman:
    I don't know why, but I found myself having a sick sort of fascination with MUMPS after reading the original thread. I wound up reading the MUMPS Wikipedia page AND the FAQ.
    Me too. And the odd thing is, when this article was first posted, I couldn't read over the description of MUMPS without getting a headache. This time, it kind of all made sense.

    I think I need a holiday (aka vacation).

  • bathe (unregistered)

    From the wikipedia page (paraphrasing slightly):

    Uses less memory than LISP and has better database support than FORTRAN.

    That's a pro, not a con by the way, in case you were wondering.

  • Jonno (unregistered)

    I used MSM (Micronetics' implementation of MUMPS) while working for a company providing software/hardware support to GP Surgeries in the UK a few years ago. I have to say I really enjoyed working with it - the fact that almost all commands can be shortened to a single character, and you use "." to show indenting, is fun. I ended up writing nmap and an XML parser in it. I certainly don't believe it warrants a lot of the hate it seems to receive in this WTF - any language is quite capable of producing first-class WTFs imho. ;)

    MSM was great from the point of view of support; you had your software running on a known platform. The major problem was the fact that you could accidentally wipe an entire surgery's database. :)

    The last I saw though, Intersystems have tried to mix MUMPS and SQL and produced "Caché", which really did make me cry. (Incidentally, the company moved to an SQL Server 'solution' shortly before I left which had approximately 20% of the stability of the MSM system, and was much, much easier to inadvertently destroy. Nothing against SQL Server mind you, but at least train people before you let them support it. ;))

  • nobody (unregistered) in reply to bathe
    bathe:
    From the wikipedia page (paraphrasing slightly):

    Uses less memory than LISP and has better database support than FORTRAN.

    That's a pro, not a con by the way, in case you were wondering.

    That is kind of like saying "this uses less gas than a Hummer and carries more than a Mini"

  • James Schend (unregistered) in reply to Alonzo Meatman
    Alonzo Meatman:
    This was a great WTF. The original thread was filled with a bunch of MUMPS programmers desperately trying to defend their language culture. It was very funny in a LOLLEGACY sort of way.

    You see the same thing when any site with a lot of readers criticizes Lotus Notes. 20,000 Notes developers come out of the woodwork and suddenly start going on about how great Notes is, and how it's crappy at email because it does 'so much more', how it's secure.

    Of course any rational non-IBM employee can see that Lotus Notes is a huge, slow, difficult-to-use, WTF-worthy application. But if you were born and raised in 18th century China, you'd think foot binding was normal, too.

    (Watch, I bet an hour after posting this, we'll get a Notes developer starting up his standard "Notes is the best ever!" thing.)

  • Tyrathect (unregistered)

    There's a new version of this language out now ... it's called Lua.

  • anonymous (unregistered) in reply to Tyrathect
    There's a new version of this language out now ... it's called Lua.

    WTF? I can't think of two languages more unrelated in history or usage. I'll go out on a limb and say that no one would ever consider replacing MUMPS code with Lua or Lua code with MUMPS.

  • (cs) in reply to Jonno
    Jonno:
    any language is quite capable of producing first-class WTFs imho. ;)

    It's certainly a first amongst equals though :D

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

     [part of Keith Lynch's .signature; it prints a table of primes,        
      including code to format it neatly into columns--DPBS]
    

    (http://www.faqs.org/faqs/m-technology-faq/part1/)

  • joomama (unregistered) in reply to SomeCoder
    SomeCoder:
    joomama:

    Ah, so they were forced to use notepad.

    Seriously, what is with people saying VI is not user friendly? The learning curve is not user friendly per se (although enough to make you fast can be learned in a day), but once you have some clue it is very user friendly and much quicker than textpad or notepad. Everything I need is just a couple key strokes away, unlike notepad where there are no features and I'm forced to use the mouse to cut and paste lines.. bah.

    vi isn't user friendly. It's very powerful but it's definitely not user friendly.

    Which could your mom use more easily, Notepad or vi? After a few minutes of typing in vi and not seeing anything show up, she certainly would be frustrated with it.

    vi is awesome and powerful but it's not user friendly.

    I'd argue with that (and I will). Just because something isn't friendly to a new user doesn't mean it isn't user friendly. Take an HCI course sometime. Notepad might be easy for a new user to use, but offers little to advanced users, easy entry but it limits you to doing anything faster or more advance.

    Normal VI is the opposite, awful for new users and amazing for people willing to get over the learning curve.

    The GUI'd version of VI (GVIM avail for windows) can allow you to even use your mouse and good old ctrl-C and ctrl-V, which makes it much more friendly than notepad.. people familiar with notepad can use their old habits and can slowly learn VI commands.

    Just because your grandma can't use it doesn't mean something isn't user friendly.. your grandma isn't the target user of that app. Now a piece of software that has pop-ups every few seconds asking if you want to continue doing what you were doing.. that is not user friendly, or something with a horrid user interface that slows down workflow etc etc.

  • (cs)
    MUMPS FAQ:
    The M "ELSE" statement is a simple executable statement. It is not syntactically paired with an IF. The semantics are, approximately: a special system value, $TEST, is reminiscent of the "condition bits" in some processor. An IF statement sets the value of $TEST according to whether the condition was true or false. An ELSE statement is equivalent to IF '$TEST (the apostrophe is the "not" operator). Unfortunately, the traditional MUMPS subroutine does not push and pop the state of $TEST. Thus,
     If a>b Write !,"a is greater."
     Else  Write !,"b is greater."
    

    performs as expected, but

     If a>b Do REPORT1
     Else  Do REPORT2
    

    may not, particularly if the REPORT1 subroutine itself contains If statements of its own.

    I don't know whether to laugh or cry...

  • James Schend (unregistered)

    Comparing VI to Notepad is stupid anyway.

    Notepad is pretty much a "last resort" editor. Nobody should be using it for actual programming work... they should actually download an editor designed for programming work.

    Compare it to Notepad++ or some other programmer's editor if you want to, but comparing VI to Notepad is apples to oranges.

  • Andy (unregistered)

    I just read this on wikipedia about MUMPS and got an epileptic laughing fit...

    Wikipedia:

    [edit] The MUMPS epoch In MUMPS, the current date and time is contained in a special system variable, $H (short for "HOROLOG"). The format is a pair of integers separated by a comma, e.g. "54321,12345" The first number is the number of days since December 31, 1840, i.e. day number 1 is January 1, 1841; the second is the number of seconds since midnight.

    The reason for this not very obvious choice of epoch is a bit of MUMPS trivia. James M. Poitras has written that he chose this epoch for the date and time routines in a package developed by his group at MGH in 1969: "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.' Since my algorithm worked most logically when every fourth year was a leap year, the first year was taken as 1841. The zero point was then December 31, 1840.... I wasn't party to the MDC negotiations, but I did explain the logic of my choice to members of the Committee."

    (More colorful versions have circulated in the folklore, suggesting, for example, that December 31, 1840 was the exact date of the first entry in the MGH records, but these seem to be urban legends.)

    A piece of MUMPS trivia: $HOROLOG hit 60000 on April 10, 2005; will be 70000 on August 26, 2032; 80000 on January 12, 2060; 90000 on May 30, 2087; and 100000 on October 16, 2114.

    CAPTCHA: tastey .... I think not!

  • namezero111111 (unregistered)

    Uhhm... "non-programmers can easily learn its simple yet rigid syntax, new programmers can see results very quickly" ??

    Just check out the "simple, rigid syntax" example code on Wikipedia:

    %DTC %DTC ; SF/XAK - DATE/TIME OPERATIONS ;1/16/92 11:36 AM ;;19.0;VA FileMan;;Jul 14, 1992 D I 'X1!'X2 S X="" Q S X=X1 D H S X1=%H,X=X2,X2=%Y+1 D H S X=X1-%H,%Y=%Y+1&X2 K %H,X1,X2 Q ; C S X=X1 Q:'X D H S %H=%H+X2 D YMD S:$P(X1,".",2) X=X_"."$P(X1,".",2) K X1,X2 Q S S %=%#60/100+(%#3600\60)/100+(%\3600)/100 Q ; H I X<1410000 S %H=0,%Y=-1 Q S %Y=$E(X,1,3),%M=$E(X,4,5),%D=$E(X,6,7) S %T=$E(X_0,9,10)*60+$E(X"000",11,12)60+$E(X_"00000",13,14) TOH S %H=%M>2&'(%Y#4)+$P("^31^59^90^120^151^181^212^243^273^304^334","^",%M)+%D S %='%M!'%D,%Y=%Y-141,%H=%H+(%Y365)+(%Y\4)-(%Y>59)+%,%Y=$S(%:-1,1:%H+4#7) K %M,%D,% Q ;

    snip

    Yes, indeed very simple, rigid syntax. So much for maintainability...

    captcha "stinky" ... yes indeed

  • Jonno (unregistered) in reply to namezero111111
    namezero111111:
    Uhhm... "non-programmers can easily learn its simple yet rigid syntax, new programmers can see results very quickly" ??

    Just check out the "simple, rigid syntax" example code on Wikipedia:

    %DTC %DTC ; SF/XAK - DATE/TIME OPERATIONS ;1/16/92 11:36 AM ;;19.0;VA FileMan;;Jul 14, 1992 D I 'X1!'X2 S X="" Q S X=X1 D H S X1=%H,X=X2,X2=%Y+1 D H S X=X1-%H,%Y=%Y+1&X2 K %H,X1,X2 Q ; C S X=X1 Q:'X D H S %H=%H+X2 D YMD S:$P(X1,".",2) X=X_"."$P(X1,".",2) K X1,X2 Q S S %=%#60/100+(%#3600\60)/100+(%\3600)/100 Q ; H I X<1410000 S %H=0,%Y=-1 Q S %Y=$E(X,1,3),%M=$E(X,4,5),%D=$E(X,6,7) S %T=$E(X_0,9,10)*60+$E(X"000",11,12)60+$E(X_"00000",13,14) TOH S %H=%M>2&'(%Y#4)+$P("^31^59^90^120^151^181^212^243^273^304^334","^",%M)+%D S %='%M!'%D,%Y=%Y-141,%H=%H+(%Y365)+(%Y\4)-(%Y>59)+%,%Y=$S(%:-1,1:%H+4#7) K %M,%D,% Q ;

    snip

    Yes, indeed very simple, rigid syntax. So much for maintainability...

    captcha "stinky" ... yes indeed

    The funny thing about Wikipedia is that it reflects the article authors' biases. :P

    That program is so obviously written to confuse; it's like posting a huge C function with only single-letter variable names and pointer arithmetic everywhere and saying "C IS HARD TO READ!!!" ... MUMPS has its faults, and I wouldn't go so far to say it's "easy" to learn, but I disagree with portraying things in a deliberately bad light.

  • Jonno (unregistered) in reply to Jonno

    Oops I meant to add - Just because you can write all the commands in MUMPS as single characters, doesn't mean you have to, or indeed should. :)

  • mobiGeek (unregistered) in reply to James Schend
    Nobody should be using it for actual programming work

    You don't work with new grads much, obviously.

    I cannot tell you the number of times I've told co-ops and new hires that they have 4 hours to find a replacement editor before I either re-image their machine or, worse, force them to work with the corporate website team for a while.

  • (cs) in reply to J Marker
    I'd rather you y'all take a vacation and have no posts than find 'classics' that are only a few months old.

    You could always pretend there's no posts and not read the site for a week ;-)

  • Ed (unregistered)

    Here is a great article on the power of Cache.

    http://www.windowsdevcenter.com/pub/a/windows/2006/03/28/oop-c-meets-cache.html

    The WTF is caused by the programmer, not the language.

  • Simmo (unregistered) in reply to Andy
    Andy:
    I just read this on wikipedia about MUMPS and got an epileptic laughing fit...

    Wikipedia:

    <snip/>"...Since my algorithm worked most logically when every fourth year was a leap year..."

    So if this language is used with any data which references dates in March-Dec 1900, there could be a bit of a laugh.

    Presumably too all dates since are one day out?

    (only having a pedantic laugh folks)

    captcha: pirates. arrrrr.

  • Faded (unregistered)

    Did you realize that the Kaiser health insurance is attmepting to roll out an electronic billing and patient record system using MUMPS running on Citrix. The system is supposed to provide electronic records keeping and billing across all exam rooms and offices in the Keiser system. It is suppsoed to keep track of records for 8.8 million people. By 2006 Kaier spent 1.7 billion (with a B) dollars on it. The system regularly suffers from outages lsting between 2 and 40 hours at a time. When the system is out Keiser doctor's offices do not function. Remember, Mumps is a childhood disease and Citrix is a class of fruits that contain vitamin C. Failure to remember this fact will make you sick.

  • Anonymous (unregistered) in reply to BA
    BA:
    Ah, so they were forced to use notepad.

    Seriously, what is with people saying VI is not user friendly? The learning curve is not user friendly per se (although enough to make you fast can be learned in a day), but once you have some clue it is very user friendly and much quicker than textpad or notepad. Everything I need is just a couple key strokes away, unlike notepad where there are no features and I'm forced to use the mouse to cut and paste lines.. bah.

    You can do that in Notepad:

    1. Move cursor to the starting point of the text you want to select.
    2. While holding down the SHIFT key, use cursor movement keys (arrows, home, page up, etc.) to move cursor to the end point of the text you want to select.
    3. Press Ctrl-Insert to copy (or Ctrl-Delete to cut)
    4. To paste, Shift-Insert.

    These keyboard operations have been avaiable in Notepad since Windows 3.0. (Yes, Windows 3.0 -- the one withOUT /386 protected mode, with no TrueType fonts and runs on top of DOS.) I don't think the convention of C-X, C-C, C-v was established as of Window 3.0.

    BTW, I was pleased to find that xterm came preconfigred with support for Shift-Insert for paste!

    Last but not least, don't get me wrong. I hate Windows. I use both vi and Emacs, and like these. Back in my DOS days, I was even familiar with "WordStar-style" editing commands, which many programmer-friendly editors adopted.

  • Anonymous (unregistered) in reply to SomeCoder
    SomeCoder:
    vi isn't user friendly. It's very powerful but it's definitely not user friendly.
    What's the definition of "user", then?

    vi is certainly user-friendly, when user := power-user.

    It is not user-friendly, when uesr := idiot.

    SomeCoder:
    Which could your mom use more easily, Notepad or vi? After a few minutes of typing in vi and not seeing anything show up, she certainly would be frustrated with it.
    That only means that vi is not mom-friendly. That doesn't generalize to being not user-friendly.
    SomeCoder:
    vi is awesome and powerful but it's not user friendly.
    It's just not idiot-friendly. That doensn't generlize to being not user-friendly.
  • Anonymous (unregistered) in reply to joomama
    joomama:
    Just because your grandma can't use it doesn't mean something isn't user friendly..
    That only means it's not grandma-friendly. Nothing more.
    joomama:
    your grandma isn't the target user of that app. Now a piece of software that has pop-ups every few seconds asking if you want to continue doing what you were doing.. that is not user friendly, or something with a horrid user interface that slows down workflow etc etc.
    Too bad that so many people have been drowned by marketing terms like "user-friendly", "object-oriented" without even thinking about what they mean.

    Why are people always talking about "user-friendliness", when they don't even have a clear idea of who the target users are? To a child, a toy is "user-friendly". To an adult, a toy is a toy is a stupid thing. Adults want to use tools to perform real work, not toys. So, to adults who want to get work done, a tool is more user-friendly than a toy.

  • Packrat (unregistered)

    Look at it from the PHB/HR perspective. MUMPS and other languages from hell keep wages down by preventing employee mobility. It's not as if a 10 year MUMPS victim veteran can just walk away and get a better job elsewhere.

    Of course, lack of maintainability drives project costs through the roof, but PHBs aren't known for being able to think that far...

  • El Dorko (unregistered) in reply to francis45

    "Sounds lot like HAL"

    Wow, that was my thought as well, but I never thought anyone else would spot that. Hope you haven't had the "pleasure" of using HAL for anything serious... I had, and it still hurts.

  • TheLurker (unregistered)

    Well, having spent over 10 years fighting with VB (3 to 6) and then VB.Net and C# I still have a soft spot for MUMPS which I used for nearly 10 years ('87 to '96) before being moving into the world of Microsoft.

    MUMPS made it possible to write fast, multi-user database applications on the kit that was available at the time (esp PDP 23, 73, 44 & 84 with DSM-11) and to do it quickly. And because it was ANSI standard it was possible to port your work to other flavours of M(UMPS) with very little effort at all, sometimes none. I think, given the hardware restrictions prevalent before cheap Intel based machines became available, that the designers of the language did a damn good job.

    However, given the massive improvement in SQL database capability and speed in the last 10 years or so together with the rise of the WIMP interface that MUMPS has probably had its day and I wouldn't consider using it on a new development.

    Just think. Twenty years from now, there's a good chance that people are going to be ridiculing the language that you're using right now because they don't understand the restrictions you're working with.

  • Tabilda (unregistered)

    I work on a PC development team (average age 27) alongside a team of 4 MUMPS programmers (average age 54). Yes they are all well-paid (is this an age thing?), but no there appears to be no job satisfaction (one is glued to the BBC sports site all day).

  • Anonymous (unregistered) in reply to Faded

    Kaiser is using the software developed by the company in this WTF.

  • w1f (unregistered)

    I did mumps programming at a company called Sunquest-- the language was alphabet soup, but sort of fun once you learned to visually break up the comands... and remembered that modern mumps supported both direct returns and parameterized function returns using the same code (so the second space in "Q " was very significant and often forgotten).

    Ripe for abuse and mistakes, though, especially since a lot of mumps developers carried over habits from the earlier days of the programming language where everything was interpreted at runtime (instead of using precompiled bytecode). So you would get 200+ column lines of stuff like "S A=A+1 Q:B=A" in a vane and outdated attempt to reduce runtime cycles.

    hey, did I mention that I like ASM too? ((grin))

  • Nathna Friedly (unregistered)

    "plenty of training and should have trouble picking it up."

    Now while the word 'should' is probably accurate for what happened, I suspect that they more likely assured him that he "shouldn't have trouble picking it up."

Leave a comment on “Classics Week: A Case of the MUMPS”

Log In or post as a guest

Replying to comment #:

« Return to Article