• PedoFactoryFactory (unregistered) in reply to ExOttoyuhr
    ExOttoyuhr:
    MUMPS... language of pedophiles now?
    You are thinking of Java (url="http://en.wikipedia.org/wiki/Patrick_Naughton)
  • xdfsdfg (unregistered)

    I'd rather program in ColdFusion than MUMPS.

  • Ben (unregistered)

    Alex has some strange notions about language design.

    All the horribleness that is VB is forgiven because it's a beginner's language. The fact that it reinforces the worst cookie-cutter programmer habits, and that every university has avoided it as a beginner's language since Pascal came out doesn't matter. All is forgiven because the name says "Beginner's" in it.

    But MUMPS is awful because: it's named after a disease (incidentally, VB is two letters away from VD), it allows you to save keystrokes on common keywords and variables are defined by use, like most other scripting languages.

    Looking at the earlier article, about the only arguably bad language decisions are not having operator precedence (though you look at C++'s precedence and you might think it's not a bad idea), XECUTE (but that's in most scripting languages in some capacity) and the scoping for IF and FOR.

    It seems like once you learn it (and the syntax is very straightforward) you can be highly productive and use very little machine resources. I really wish there were more languages around like that, and it's too bad no one uses MUMPS any more.

  • wtf (unregistered) in reply to Ben
    Ben:
    I really wish there were more languages around like that, and it's too bad no one uses MUMPS any more.

    MUMPS is used quite extensively in hospital administration - I know two people working in different MUMPS shops today, and there's apparently room for more coders there. You might have to move to Massachusetts, but you can indeed work with MUMPS if that's something you'd like to do.

  • Fred (unregistered)

    From the linked MUMPS article:

    XECUTE [which is my personal favorite, it allows arbitrary execution of code contained in a variable]

    DATA TYPES: one universal datatype, interpreted/converted to string, integer, or floating-point number as context requires.

    DECLARATIONS: NONE. Everything dynamically created on first reference.

    LOCAL ARRAYS: created dynamically, any number of subscripts, subscripts can be strings or integers. Stored in process space and expire when process terminates.

    Yeah, I'm thinking perl. There never would have been a web in 1995, and thus a dot com bust in 2001, without it.

  • (cs) in reply to iToad
    iToad:
    He could get shot just walking down the street. I remember reading somewhere that Ciudad Juarez has had about 2500 homicides so far this year.

    You can get killed walking your doggie!

  • Jack (unregistered)

    Certainly, by now, someone has written an open source VB program to convert MUMPS to Perl, no?

  • Bob (unregistered) in reply to wtf
    wtf:
    Ben:
    I really wish there were more languages around like that, and it's too bad no one uses MUMPS any more.

    MUMPS is used quite extensively in hospital administration - I know two people working in different MUMPS shops today, and there's apparently room for more coders there. You might have to move to Massachusetts, but you can indeed work with MUMPS if that's something you'd like to do.

    Up here in MA, a very well known company created their own language based on MUMPS. They call it MAGIC. Unfortunately Im not kidding.

  • n_slash_a (unregistered) in reply to boog
    boog:
    Wow, what a scumbag. Sounds like Darren deserves to be beaten within an inch of his life. With a 2x4. And a shovel. While he's on fire.

    Seriously, writing code like that is just unforgivable.

    Wait--what? You say he's a pedophile too?

    +1

  • (cs) in reply to KirbyG
    KirbyG:
    The article makes it sound like letting him work on them pesky foreign Mexican timezones was some sort of major concession.

    Mexican time zones are Central, Mountain and Pacific.

    Perhaps "Mexico" is part of the obfuscation. Perhaps the person is actually a foreign national who's fled home to a country on the other side of the globe. Perhaps a link to the story has already been posted in the comments here, and a little more Googling would fill in the blanks.

  • Larry (unregistered)
    DG18(DG1, DG2)
    Reminds me of a program written by someone who was told to use variables, not constants, because hard-coded values were "bad". So a file of constants was read into an array. Need a "one"? Just use "A(17)". Because of course A(1) wouldn't be one, that would be too easy. Constants were added to the end of the file as needed. Besides, you don't want to go writing A(1) anyway when "one" is in the file. You'd have to say A(A(17)). See?

    And the lovely naming convention -- everything has to start with "DG" -- was a standard established way back when General Electric made computers and thought it would not be much different than making refrigerators, given that they were about the same size and used electricity, a corporate area of expertise. All vendor-supplied subroutines (if they deserve such a glorified title) started with "GE", kind of like how today two thirds of the items in your start menu begin with "Microsoft". But I digress.

    Names could only be six characters (stored in one 36-bit word of memory, I kid you not) and the first two characters were always "GE", leaving only 4 characters to do anything with. The closest thing to a readable name in the entire system was the routine to abort your program -- a frequent need. Simply call "GEBORT".

  • Dan (unregistered) in reply to Bryan the K
    Bryan the K:
    The REAL WTF is that this story is far from plausible.

    Very, very true... I was just looking for the "Unsubscribe" button in Google Reader when I hesitated and thought, "well, it's sucked for some months now, but sometimes there are good posts here."

    I sincerely don't know what's going on with this crap. Getting tired of reading fiction short-stories that make me go, "how retarded do you think we are?". Is Popawhoknowswhat on the bottle or something?

  • Jay (unregistered) in reply to Toster
    Toster:
    Death:
    Code does not get like that by accident or even incompetence. Darren was covering his ass, in case something went wrong. Apparently it worked.

    Yep.. he probably keeps the real source and has a MUMPS to DG translation script :D

    Now that you mention it, that sounds like a good idea. :-)

    Captcha: jumentum. I think this is an anti-Semitic pejorative.

  • Dan (unregistered) in reply to Dw
    Dw:
    I don't believe this story. The employees of the company held a collection to pay the founder's bail? Said founder subsequently skips bail but is secretly rehired by the company?
    1. The employees of the company cannot be that stupid
    2. The executives of the company must be exposing themselves to all kinds of lawsuits.

    At a friend's company, they got a surprise visit from policemen who arrested one of the employees there on charges of pedophilia. They also confiscated his computer. Nobody else who worked there had any idea about his proclivities. Now, imagine if said employee were a critical part of the company. Would you still be so accepting of the person's guilt? And while #2 is a risk, how big is the risk that they go out of business because they can't find someone else with the desire to figure out their product soon enough to deliver something to their customers? Either way they're screwed, but perhaps they can slip out of legal trouble through plausible deniability and a good lawyer.

    Of course, while the text says they "found someone", it does not actually state that they in fact hired him though.

  • C.K. (unregistered) in reply to Pete

    Pete: ...Although it would mess up source control.

    Does this sound like the sort of project that would use source control?

  • Jay (unregistered)

    Okay, I've never had to deal with MUMPS, but I did once have a job working on a system where the original author named all his integer variables N1, N2, N3, etc, and all his string variables S1, S2, S3, etc. And just in case you figured out what a variable actually contained, he would re-use the same variables for different things elsewhere in the same module. So at the top S1 might be customer name but halfway through it would suddenly become zip code.

    I finally figured out that the only way to work on these programs was to first take the time to figure out what all the variables contained and and then do a mass search-and-replace to rename them. This was tough when a variable was re-cycled because it wasn't always easy to break it in to two variables -- you had to figure out where it was used for what. And a mistake on a rename might be harmless, but a mistake on breaking a variable in two could break a working program.

  • ExOttoyuhr (unregistered) in reply to wtf
    wtf:
    ExOttoyuhr:
    it's a field in urgent need of new members.

    Is that really the best choice of words, all things considered?

    Sorry, my mind's not adequately in the gutter.

  • ExOttoyuhr (unregistered) in reply to wtf
    wtf:
    Ben:
    I really wish there were more languages around like that, and it's too bad no one uses MUMPS any more.

    MUMPS is used quite extensively in hospital administration - I know two people working in different MUMPS shops today, and there's apparently room for more coders there. You might have to move to Massachusetts, but you can indeed work with MUMPS if that's something you'd like to do.

    Be sure to look for keywords other than MUMPS and M -- many jobs will reference Caché, Intersystems' expanded version of ANSI MUMPS. Look for Veterans' Administration-related things, too, and a number of large hospital projects that use it. As I said before, there's lots of room in the field -- a lot of 'old MUMPSters' are retiring, and not being replaced.

    Captcha: "eros." Mein Gott...

  • wtf (unregistered) in reply to Jay
    Jay:
    Captcha: jumentum. I think this is an anti-Semitic pejorative.

    Not at all. What is it that makes the Chosen People such a force in world history? It's jumentum!

    And they're not held back by conventio.

  • oninoshiko (unregistered) in reply to Ben
    Ben:
    Alex has some strange notions about language design.

    All the horribleness that is VB is forgiven because it's a beginner's language. The fact that it reinforces the worst cookie-cutter programmer habits, and that every university has avoided it as a beginner's language since Pascal came out doesn't matter. All is forgiven because the name says "Beginner's" in it.

    You need to review your language history a tad. VB was release in 1991. Pascal has been around since 1970. I suppose you might have intended to talk about BASIC, which was created in 1964.

    the real WTF is noone else posted this.

    CAPTCHA validus: "I have a gwate fwend in wome named validus"

  • Ken B. (unregistered) in reply to Toster
    Toster:
    Death:
    Code does not get like that by accident or even incompetence. Darren was covering his ass, in case something went wrong. Apparently it worked.
    Yep.. he probably keeps the real source and has a MUMPS to DG translation script :D
    One would think that MUMPS wouldn't need to be obfuscated.
  • Mumps Coder (unregistered) in reply to xdfsdfg

    There's also a language called CACHE based on MUMPS. A very well known EMR developed by Epic Systems in Verona, WI uses it. Around 30% of the US population's medical records live in the system.

    I am a programmer for a large medical center in Chicago that uses it, and I can say that at first MUMPS scared the hell out of me. Now I find mumps/cache to be a nice language/DBMS. Fast, scalable. It keeps up with the millions of transactions that take place daily on patient records.

    Before you trash a language, try using it a bit first. It ain't VB (thank god) or Ruby (again, thank god), but you might be able to wrap your little minds around it if you try.

    Oh, and the code in the story isn't well formed, and won't produce any results in MUMPS.

  • longLiveTehZombies (unregistered) in reply to ExOttoyuhr
    ExOttoyuhr:
    snip... 'old MUMPSters' are retiring, and not being replaced ...

    good riddance

  • (cs) in reply to Jay
    Jay:
    ...This was tough when a variable was re-cycled because it wasn't always easy to break it in to two variables -- you had to figure out where it was used for what. ...
    That's one refactoring I haven't seen in any IDE, although in principle it's not too hard. After all, compilers do it to improve their register allocations.
  • Franz Kafka (unregistered) in reply to pjt33
    pjt33:
    Jay:
    ...This was tough when a variable was re-cycled because it wasn't always easy to break it in to two variables -- you had to figure out where it was used for what. ...
    That's one refactoring I haven't seen in any IDE, although in principle it's not too hard. After all, compilers do it to improve their register allocations.

    Sure, but they do it when generating machine code. Doing it in source is insane.

  • verto (unregistered) in reply to oninoshiko
    oninoshiko:
    Ben:
    Alex has some strange notions about language design.

    All the horribleness that is VB is forgiven because it's a beginner's language. The fact that it reinforces the worst cookie-cutter programmer habits, and that every university has avoided it as a beginner's language since Pascal came out doesn't matter. All is forgiven because the name says "Beginner's" in it.

    You need to review your language history a tad. VB was release in 1991. Pascal has been around since 1970. I suppose you might have intended to talk about BASIC, which was created in 1964.

    the real WTF is noone else posted this.

    CAPTCHA validus: "I have a gwate fwend in wome named validus"

    Naw, TRWTF is we all know the history of VB/BASIC intimately after the last week of bashing, and you just got trolololololed...

  • (cs) in reply to Mumps Coder
    Mumps Coder:
    Before you trash a language, try using it a bit first.
    Fair enough; I'll admit I've never used MUMPS before.

    So tell me then, is the article A Case of the MUMPS at all accurate in its description of MUMPS features? How about the MUMPS FAQ (particularly Part 2, Appendix 5)? Because if MUMPS is anything like it is described in either of those sources, then I will happily trash it as much as I feel necessary, despite having never used it.

  • drusi (unregistered) in reply to Ymer
    Ymer:
    wtf:
    TRWTF is, this guy gets a job and it turns out he has to figure out a GUI written in a difficult language used only in closed environments, therefore without the infrastructure of assistance available for the languages we all know and love, a language whose structures are not like anything he's famliiar with and which allows all sorts of obfuscatory shortcuts, and the person who wrote the code is unavailable to assist because - get this - he's on the lam due to a pedophilia sting.

    Yep, that's pretty much a real WTF.

    Thanks for summing up the whole article!

    Thanks for explaining the joke!

  • onlyme (unregistered) in reply to Jay
    Jay:
    Okay, I've never had to deal with MUMPS, but I did once have a job working on a system where the original author named all his integer variables N1, N2, N3, etc, and all his string variables S1, S2, S3, etc. And just in case you figured out what a variable actually contained, he would re-use the same variables for different things elsewhere in the same module. So at the top S1 might be customer name but halfway through it would suddenly become zip code.

    I finally figured out that the only way to work on these programs was to first take the time to figure out what all the variables contained and and then do a mass search-and-replace to rename them. This was tough when a variable was re-cycled because it wasn't always easy to break it in to two variables -- you had to figure out where it was used for what. And a mistake on a rename might be harmless, but a mistake on breaking a variable in two could break a working program.

    sound like a system I worked on in the early 80's. Code was written in D-Basic ( basic-d ??) and was limited to 64k. On one complex program, they resorted to removing all the comments, then eventually replaced all the variables with x,y and z. Over and over. Why they never saved off the old code with the comments and proper variables I will never know. There was no source control. They did have all the latest version, if they remembered to print, stored in a fireproof filing cabinet. When I got there, there were files named code.good, code.bad, code.better, code.usethis and so on scattered over several directories. Oh, joy!

  • Darren (unregistered)

    So what? You guys would have done the same thing.

  • (cs) in reply to wtf

    I live in massachusetts and work in the health care industry as a software dev/dba. out of curiosity whats the average salary for a mumps developer?

  • Trylks (unregistered)

    I refuse to believe this story. It has a strange feeling that makes it look completely like fiction.

  • Ouch! (unregistered) in reply to Darren
    Darren:
    So what? You guys would have done the same thing.
    Hmm, the thing with the girl, jumping bail - possibly. That code - NEVAR.
  • (cs)

    Roman Polanski called...

  • AT (unregistered) in reply to boog
    boog:
    Wait--what? You say he's a pedophile too?

    He can't possibly be a pedophile based on the facts in the article. A pedophile is technically an adult attracted to pre-pubescent children. The article explicitly says his target was "nubile"--which means "sexually mature".

    He's an underageophile.

  • (cs) in reply to AT
    AT:
    boog:
    Wait--what? You say he's a pedophile too?

    He can't possibly be a pedophile based on the facts in the article. A pedophile is technically an adult attracted to pre-pubescent children. The article explicitly says his target was "nubile"--which means "sexually mature".

    He's an underageophile.

    That still doesn't excuse his coding style.

  • Jon (unregistered) in reply to Mumps Coder
    Mumps Coder:
    There's also a language called CACHE based on MUMPS. A very well known EMR developed by Epic Systems in Verona, WI uses it. Around 30% of the US population's medical records live in the system.

    I am a programmer for a large medical center in Chicago that uses it, and I can say that at first MUMPS scared the hell out of me. Now I find mumps/cache to be a nice language/DBMS. Fast, scalable. It keeps up with the millions of transactions that take place daily on patient records.

    Before you trash a language, try using it a bit first. It ain't VB (thank god) or Ruby (again, thank god), but you might be able to wrap your little minds around it if you try.

    Oh, and the code in the story isn't well formed, and won't produce any results in MUMPS.

    I used to work for a company in the UK whose primary product was based on MSM. I really enjoyed working with it (actually I was supposed to be supporting DOS/Windows and the printers, but often messed around with code too).

    It's a shame they moved over to SQL Server for some reason or I'd be trying to get myself employed using MUMPS - I often miss it. :)

  • Daniel (unregistered)

    No article better defines this site that this article.

  • Wow (unregistered) in reply to Pete
    Pete:
    I think if I found that code I would probably try and write a parser to turn all the N's into new and I's into if's and whatever other shortcuts there are just as a starting point to make it a bit easier to read. Although it would mess up source control.
    If donew't thifnewk that would work the way you thifenwk ift should!
  • owen (unregistered) in reply to boog

    LOL...and I'm pretty sure we've got an extradition treaty with Mexico. Si Senor we hire you. When he pick up his paycheck...Federales. We don't need no steenking badjes

  • Obey The Law (unregistered) in reply to Mumps Coder

    Hey Judy,

    Go back to illegally denying people jobs based solely on their age and stop advertising your company here.

  • (cs)

    I trust that the near future will tell us the story of Sarah, the other original found that the company lost around the same time as Darren last year. She was mentioned briefly and then dropped unceremoniously from the narrative.

  • Ducky (unregistered)

    I work in helpdesk support at the moment and at the point in my life where I decide where I want to move to next... Stories like this make me not want to be a programmer :P

  • ExOttoyuhr (unregistered) in reply to longLiveTehZombies
    longLiveTehZombies:
    ExOttoyuhr:
    snip... 'old MUMPSters' are retiring, and not being replaced ...

    good riddance

    Pray to your zombie gods that you never go to a hospital.

  • anon (unregistered) in reply to da Doctah
    da Doctah:
    I trust that the near future will tell us the story of Sarah, the other original found that the company lost around the same time as Darren last year. She was mentioned briefly and then dropped unceremoniously from the narrative.

    Sarah's his wife. It was pretty clear.

  • Ahhnold (unregistered) in reply to anon
    anon:
    da Doctah:
    I trust that the near future will tell us the story of Sarah, the other original found that the company lost around the same time as Darren last year. She was mentioned briefly and then dropped unceremoniously from the narrative.

    Sarah's his wife. It was pretty clear.

    She divorced him, re-assumed her maiden name of "Connor", and moved to LA where she was relentlessly pursued by a robot from the future until she met and had sex with a man who wasn't even born yet. Now how's that for pedophilia?

  • (cs) in reply to boog
    boog:
    Wow, what a scumbag. Sounds like Darren deserves to be beaten within an inch of his life. With a 2x4. And a shovel. While he's on fire.

    Seriously, writing code like that is just unforgivable.

    Wait--what? You say he's a pedophile too?

    He's in Juarez. He's probably going to be shot dead by drug dealers, the fascist Federal Police or the military. Bad choice for residence!!!!

  • (cs)
    Article:
    The application that this company made wasn't written in Java or VB. Oh, it has some Java and VB clients. Clients that didn't actually contain any real code. Clients that asked a MUMPS system, "At pixel (34,53), what should I render?"

    This is the real WTF. How the blazing FUCK is a MUMPS client rendering images?

  • Anon (unregistered) in reply to boog
    boog:
    Mumps Coder:
    Before you trash a language, try using it a bit first.
    Fair enough; I'll admit I've never used MUMPS before.

    So tell me then, is the article A Case of the MUMPS at all accurate in its description of MUMPS features? How about the MUMPS FAQ (particularly Part 2, Appendix 5)? Because if MUMPS is anything like it is described in either of those sources, then I will happily trash it as much as I feel necessary, despite having never used it.

    Considering that the features listed in the article are from that very FAQs section that you are pointing out, I'll just ignore the article for the time being.

    As a MUMPS programmer (very possibly for the very company described in A Case of the MUMPS, although if it is, that article describes the company as it was many a year ago) I want to agree with the Mumps Programmer from Chicago. Yes, these "features" seem downright idiotic at first, but most of them are comparable to other languages.

    Data types: I honestly have nothing on this one. I can say, though, that due to the simplicity of the data types in question (string, integer, floating point), the worst thing I've seen happen from data type mismatch is bad array sorting. Booleans: Most languages operate in the same manner, unless they have specific TRUE/FALSE/FILENOTFOUND definitions for boolean. Declarations: Yeah, there are these things call standards. If we try to put in code that doesn't specify all of its variables, and name them well, we get booted back into development. You don't have to, but don't. Lines: Annoying, but look at Perl/Python/Other scripting languages. There are constructs to make this less confusing. Case sensitivity: Commands/intrinsics are case insentive because they're actually case sensitive, but defined in both cases to make sure there wouldn't be confusion between $P (the Piece function) and $p (that joke function some guy made to look like your computer just crashed). Again, standards are good. Good companies rarely accept a lack of standard and create their own. Postconditionals: a = (b == c) ? d : e; You were saying? Arrays: Bad in theory, awesome in practice. See other scripting, especially PHP. Global arrays: Lots and lots of checks in place to make sure people don't mess with these the wrong way. Locking, wrapper functions, etc. Indirection: aka eval Operators: Since when have you used a string of operators without parentheses? Those still work here.

    Sorry for the wall of text. tl;dr: MUMPS ain't terrible, ya hear?

  • (cs) in reply to Xero
    Xero:
    They can be a little bit tricky since Mexico doesn't do Day Light Saving Time. And as someone who grew up in El Paso (directly across from Juarez where they have enough problems without this guy) I sure hope they catch him.
    You're terribly outdated. You must've been living in El Paso sometime before 1996. Ever since then:
    • DST has been adopted by Mexico, nationwide, since 1996.
    • Juarez has been moved to Mountain Time; it used to be that El Paso was on MST/MDT, but Juarez was on CST/CDT. Ugly!

Leave a comment on “Diseased”

Log In or post as a guest

Replying to comment #:

« Return to Article