- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Pah, that's nothing special. I see carrots every day. Matter of fact, there's one right here in front of me as I'm typing this.
Admin
...
Wow.
I'm not surprised this is happening, but...wow. I feel bad for Bryan, not just because he had to work here, but because he can't find something else because he stayed for 2 years.
captcha:muhahaha, what I'm sure the management is thinking to themselves when someone tries to quit: "muhahaha, you'll be back, there's nowhere else for you to work!"
Admin
That has to be one of the most horrid and evil stories I have ever heard.
Admin
This company wouldn't be based in Madison, Wi would they?
I think I also worked for them straight out of college.. I only lasted a year though.
Admin
See its Wikipedia page: http://en.wikipedia.org/wiki/MUMPS.
Looks like the article wasn't exaggerated one bit. That Wikipedia article is full of wondrous WTFs by itself.
Admin
As someone currently attending UW, I must know who these people are so I can avoid them.
Admin
Also, this reminds me of a friend, who recently finally landed a programming job (he didn't finish his degree) - and promptly got sent on a COBOL class. Poor guy.
Admin
You know someone that works there (everyone in Madison does). They are building a massive campus in Verona, and the company is a huge success. But it sucks being a developer there.
Admin
Ontario Systems is the only company I have heard of who use MUMPS. I thought this was supposed to be anonymous for the companies! :)
Admin
Nice Google ad on the right:
MUMPS to Java and RDBMS Automatic migration from MUMPS to Java and relational databases
Salvation? :)
Admin
You know, some days the stories are kind of bland, boring, so-what. This is not one of those days.
I had to shake my head at every single part of the story. My favorite part was reading the UNIX login and unencrypted password from a file. Obviously, security is of paramount important to these guys...
Admin
Makes me think it is possible that it was my old company.. What they use isn't called MUMPS anymore, it's called 'M'. But it from what I remember M is just what the newer versions of MUMPS are called.
Admin
Admin
Okay, that's really the only local tech company I know. And their Wikipedia entry confirms their use of MUMPS. (Sort of an ironic name for the health care industry, no?)
Admin
It sucks that he had such a horrible experience and now he's having a hard time finding a job. I'd suggest that he get involved in an open source project that uses a more widely-known language. Then he can chalk up some experience and have examples of his work out in the public sphere.
Admin
Note, also, that if you happen to be involved in the VA hospital system (that's the Veteran's Administration for those outside the US), all of your data is in a MUMPS-base somewhere ... Unless it was on that thumb drive that got stolen, but that's another story.
I, too, am unfortunate enough to be in a MUMPS-shop, with no light at the end of the tunnel, unless it's a train.
Edit: And in my experience, everyone that uses it either absolutely hates it, or has consumed the Kool-Aid and absolutely loves it, and will extol its "virtues" at great length. There doesn't seem to be a middle ground with this pile of crap.
Admin
Much of this stuff is not new (sadly). And I say that in the full knowledge that MUMPS is from the 1970s.
APL.
Numerous flavours of BASIC did this.
Not a WTF.
Many forms of BASIC did this, only without the ability to use string keys.
This one is right out of the system/360 playbook, and probably goes back even further.
IBM mainframes still do this.
Admin
From the wiki: "The M syntax allows multiple commands to appear on a line, grouped into procedures (subroutines) in a fashion similar to most structured programming systems.
In MUMPS syntax, some spaces are significant; they are not merely whitespace. There are contexts in which a pair of spaces has a different syntactic significance than a single space. However, extra spaces (in this context not syntactically significant) may always be added between commands for clarity, up to the line length limit in an implementation. Lines are syntactically significant, and carriage returns and linefeeds are not treated as white space; they are statement/function terminators. There is no requirement to put semicolons at the end of commands, and lines may be explicitly continued when needed."
HOLEEE GUACOMOLEE BATMAN!!! A Russian goolag would be preferable to MUMPs developer job.
Admin
Admin
Bah! As an intern I got a desk, a chair and a COBOL manual on the first day, and that was great (back in 1978). I also wrote a small program in MUMPS in the 80s and it was no big deal.
MUMPS may not be buzzword-compatible but it was a good option in the 70s and early 80s when most languages (C, Pascal, Basic) supported only sequential and random access. MUMPS has a very simple yet powerful indexed access - ^Table("Key"). You could also get decent multiuser support from a 16 bit microprocessor (like the good old brain-dead 286). COBOL was another option, but is it really a better language?
Admin
Java? - The savior? Wish for a merciful death. I weep tears of blood.
Admin
This story has to be about IDX/GE Centricity. Their systems are so backwards but hospitals have to use it a lot of times because there simply isn't a better alternative.
Admin
Admin
I worked with the VA for a few years and fortunately never encountered Mumps. All of my work was in C# or older ASP with a database of our choosing.
Admin
First of all, for all you newbies out there, you want to store your code in a global array for performance optimization purposes. You see global arrays get optimized by the compiler making them as much as twice as fast as normal arrays.
And the code in the Application Startup codefiles was probably put there for flexibility purposes, since startup code only gets executed once it doesnt need the performance boost offered by global arrays.
The only WTF about this is why you guys all think this is a WTF. Maybe you just dont understand MUMPS.
Admin
My first job out of college (25 years ago) was a COBOL programming position. (I worked the summer before on a Tandem minicomputer, but I didn't realize at the time how cool that platform was.) I stopped in at the workplace two weeks before my start date to pick up some code examples. (My only experience with COBOL was one course in college, and I wanted to brush up.)
I saw all sorts of WTF code. I figured it wasn't as bad as I thought, so on the first day of work I asked all sorts of questions about programming practices there. I got all the wrong answers.
It wasn't easy to quit my first-job-out-of-college on the second day, but I did it. And I was lucky enough to avoid Bryan's fate. I've never regretted that move.
[And this grammar nazi likes an essay where "caret" and "carrot" are used and spelled correctly!]
Admin
Sometimes I feel like the only person over 30 on the internet.
"Back in the day" MUMPS was considered state-of-the-art. Of course, so were 300 baud modems.
The only real problem I saw in all of this was a company that lacked the vision to build an upgrade path for these legacy applications.
Admin
I like the spec indicates (if I am reading it correctly) that block of code in FOR loops and IF statements must all be on one single line. And we argue over where to put the curly braces!!! Maybe you can use GOTO's to avoid this?
Admin
Wow, how many more of you are from Madison, WI? I saw like three people in the first few posts.
Just seems like a above average number of people from the same place.
Is it the VA hospital in Madison that uses MUMPS? I came dangerously close to working for them, I worked for the school of Nursing in the Hospital.
Admin
I usually feel like the only person who is AND ACTS over 30.
There are plenty of old farts on the internet. They're just all trying to hook up with teenagers on MySpace.
Admin
The company I worked for was a WTF.
MUMPS had some WTF's about it. The big one I remember is being told to keep comments to a minimum because they slow down the code's execution.
It also had some cool features. Being able to store code in a variable and execute it made it easy to customize the app for different clients.
Admin
Back before I was a 'real' developer I was working for a network integration company in the Boston area. We were tasked with a rather large netware upgrade for a Partners facility in Newton (Partners was partly founded by the Mass General Hospital). One of the IT managers found out that I was the 'developer' on the team and tried to get me to jump ship and work for them. In my initial very informal first interview with one of the managers there I was told that they maintain applications written in MUMPS and was told how incredible and deliciously awesome it was to work with such a powerful language that was designed from the ground up for the medical field. I did some talking to a couple of the developers there and was amazed by how much they HATED their jobs.
Needless to say, I didn't take the job.
Admin
Umm... what's so scary about MUMPS?? Looks like quite a few other crappy database resident languages. Epic in Madison?
Admin
I actually almost got a MUMPS job when I graduated in 1989, from a company in Kensington, MD. They wrote healthcare software. Thankfully, it didn't work out, becaue I would most likely have taken the job, due to poor economic conditions then (and poor interviewing skills at the time on my part).
This article makes me glad it didn't work out!
Admin
Admin
That is a sad story. Keep at it Byran! I can relate a bit.
I had a similar experience, but with COBOL, I worked my first job out of college for 1 year working on a system that wasn't nearly as bad as that but antiquated and full of WTF's none the less. Some of the stuff that I had to code was basically writing a relational database that was full of business logic that sat upon ISAM and flat files all written in COBOL! It still makes my head hurt remembering that garbage. I hated that job.
I got out the same way, no job prospects and for a while it looked pretty bleak. It took me about 8 months to find another job (this was in 1996), this time working with modern day tools with a saner environment. There were a couple of times when I wanted to just go into another industry because I thought I might just end up working at another brain dead shop. I'm so glad that I stuck with it.
Maybe play up your experience in MUMPS. Stress how you had to handle a lot of complexity in that environment that modern environments hide from developers. If you spin it right you might sound like a genius developer for being able to write anything at all in it, which is probably true. But it might be better just to say that MUMPS is a highly specialized language for such and such, etc. etc.
Admin
His job skills are at least a little portable: a lot of the skills one needs to maintain and write MUMPS are similar to those need to maintain Perl code!
Admin
My guess would be that people are refering to Epic Systems Corporation, who makes software for the healthcare industry, but I could be wrong.
Admin
There are a LOT of companies using MUMPS in the Philadelphia (PA USA) area. The main industries there that need programmers, are medical, financial, and cable TV.
Re Cache', that explains a lot. I was contacted by one of their recruiters a few years back. They want you to take a test. They fax you the test, and want you to fax back your results! Silly me, I fell for it and did it. Or maybe they were serious.
Captcha: dubya -- don't get me started on a comparison of him and MUMPS....
Admin
From the FAQ :
prints a table of primes,including code to format it neatly into columns 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
Almost as friendly as perl.
Admin
A friend of mine did his PhD thesis on code restructing and tools. Instead of making up fictitious examples, he needed to find real world programs with the most convoluted spaghetti-like call structures he could. His search ended when he found a MUMPS program from a hospital.
When printed out in a visualizer, it looked like the result of putting cobwebs in a blender. His goal was to automatically try to reorganize the code to give it a more understandable structure. But first he had to understand the code himself, and try some manual refactoring. I think this was when he learned the phrase "WTF?".
Interestingly enough, his professor's father was one of the creators of SNOBOL.
Admin
I agree a guy on the thread. Yes, the Real WTF is not having a upgrade path, so better code is posible.
There are people on mainframes that need emulators to run legacy BINARY code because the src is lost, even the src of the compilers is lost. Seems that crap is OK in the mainframe area, because you need giganteous efforts to upgrade, while on microinformatic is lightweight to do a upgrade. So people still use absolute shit like Cobol and this Mumps shit.
Admin
You mean like Progress? How about those 4GL's huh? Woot.
Admin
Build in obfuscation? oO
From http://www.faqs.org/faqs/m-technology-faq/part2/Admin
HAIIII-KU
Admin
So would you say that M is the Enterprise verion of MUMPS?
Admin
I'm currently working in a MUMPS shop directly out of college.
MUMPS (or, M, as it's called now) is not that bad of a language in and of itself, especially considering its age. In fact, M can be maintainable, etc., if it was written well. The system described in the article, however, sounds horrid. I mean, I've seen some bad code, but that just blows me away.
I actually like the fact that an array can have string subscripts. It makes sorting things, etc., much easier. Also, there's a function, $ORDER() that iterates through any array at a specific subscript level ($QUERY() iterates through all subscript levels at once).
M really isn't too bad once you're used to it, and if it's written well.
Also,
Actually, the DO command (used for calling subroutines) serves a double purpose here.FOR I=1:1:10 DO .[code] .[code]
The DO command sends it to the next line, and the block is made up of lines beginning with '.'. Each nested block of code adds a dot, so:
FOR I=1:1:10 DO . code . IF condition DO . . code . . code . code
The syntax does allow for some...interesting uses as well, that I won't get into (for sake of time). At the same time, we don't have to sit around and try to figure out where to put braces...
Granted, M doesn't conform to the ideals of certain programming experts, but that doesn't make it wrong. It's just a different way of doing things that, like anything else, can be abused to heck, but can also be useful when done right.
Admin
I feel this guy's pain. Lots of us are in similar situations.
Admin
I don't see any mention of the timeline for this WTF. Actually I read it once, then got curious about the timeline and I'm too lazy to do anything more than scan through it. But why in the world are they still using this MUMPS thing if this is a present-day story? Of course the language is going to be a POS if it is that old... the decision to continue using it is the real problem.
I also find it hard to believe he is completely out of the job market. He should be able to find an entry level or junior level position easily. After working with MUMPS for two years, he decided not to learn anything marketable like .Net, PHP, and perl in his free time? I'm an idiot and I could still make a living doing PHP, VB.Net and systems administration. Diversify!
Admin
MUMPS sounds like the boogie man of all programming langauges. I pray that I never hear about it again.