• Dave (unregistered)

    Back to Bryan's problem, he needs to LIE! He was a VB programer for those 2 years. He can then proceed with a stress-free life in IT.

  • SeaTea (unregistered) in reply to Veinor

    "My programming language of choice is better than your programming language of choice."

    SeaTea

    "While rock guitarists and programmers share a personality style characterized by arrogance, self-absorbtion. delusions of grandeur, and a tendency toward dogmatic absolutism, it is nevertheless the case that guitar players get more women." - C. Thomas

  • b0x0rz (unregistered)

    love the google ad on the sidebar of this:

    MUMPS/Cache Programming InterSystems Cache Certified Expert Programming, Design, Conversions www.mumpsprogrammer.com

    LMAO

  • Tuomas (unregistered) in reply to CDarklock

    "They're just all trying to hook up with teenagers on MySpace. "

    And who wouldn't?

    Must be dead if won't even try. ;)

    "Age is a mental concept."

  • NoHayDeQue (unregistered) in reply to gwenhwyfaer
    gwenhwyfaer:
    me:
    VI is user friendly. Some are thrown off by the whole two-mode thing
    Someone made an observation once that stuck with me, because it makes a lot of sense. The observation was that vi isn't actually a modal editor. It's as modeless as emacs; when you type iSOMETEXTHERE<ESC>, what you're actually doing is beginning an insert command, typing the text to insert, and terminating it with the ESC key. Just like you would in ex, in fact - the only difference is that 'vi'sual mode gives you instant feedback.

    Of course, editors such as vim and elvis have complicated things to the point where you do now have two modes... but originally (and certainly on SunOS 12 years ago) vi wasn't like that.

    As for being user-friendly - very... but only to users of vi (or to those who've never seen a text editor before). It's pretty damn hostile to users of emacs or Wordstar, even though the interaction model is to all intents and purposes the same. The only difference is that printable characters are mapped not to a range of different commands, but to just one - "insert this character into the buffer".

    After 20+ years of coding offshoots of MUMPS, I took to vi/ex like a pig to mud. As a ham fisted typist, I like the way many commands sequence left, right, left. I particularly like how simply I can pipe and replace an arbitrary chunk of text through a filter (ie

    <esc>1G!Ggrep root
    will extract root processes from ps). It serves me very well as a motarboard for buttering bricks of code.

    Metaphor aside, I have no delusions that any code wrought by me will last or serve as well as the most out of plumb brick shithouse. Wrspt these cases of MUMPS, the best development langauge and tools will not make working for assholes a satisfying liveliehood I met some fine people coding MUMPS: I hope it did some good as long as it could.

  • anon (unregistered)

    this bryan guy is full of shit. what's his real name?

  • AC (unregistered)

    Last post!

  • M Expert (unregistered)

    This is just a bad rap for Mumps (M). The language was once famous in the 70s and 80s. It is still used by many big companies such as VA Hospital, Ameritrade, etc... Almost every healthcare system in the US still uses some systems written in Mumps.

    Career in M also is not a bad choice. There are plenty of jobs in the market especially in contracting. It seems to me that you made a horrible case out of something normal in the business. Mumps is no longer popular as before but it's not a scrapy language. It's a structured programming language just like COBOL and FORTRAN. Many old programmers love to work with M. Younger programmers usually don't have patience to deal with old programming languages.

    InterSystems has done a great job in promoting M in its Cache database. The company is robust. It have been selling M products over 100 countries in the world.

    I totally disagree with your analysis because I am a M expert and I am still making more money than many VB programmers.

  • M Expert (unregistered)

    This is just a bad rap for Mumps (M). The language was once famous in the 70s and 80s. It is still used by many big companies such as VA Hospital, Ameritrade, etc... Almost every healthcare system in the US still uses some applications written in Mumps.

    Career in M also is not a bad choice. There are plenty of jobs in the market especially in contracting. It seems to me that you made a horrible case out of something normal in the business. Mumps is no longer popular as before but it's not a scrapy language. It's a structured programming language just like COBOL and FORTRAN. Many old programmers love to work with M. Younger programmers usually don't have patience to deal with old programming languages.

    InterSystems has done a great job in promoting M in its Cache database. The company is robust. It have been selling M products over 100 countries in the world.

    I totally disagree with your analysis because I am a M expert and I am still making more money than many VB programmers.

  • Ex-meditecher (unregistered) in reply to Lianne
    Lianne:
    ... He's good to his employees, and is STILL working here, creating new products and languages, and improving his old stuff. ...

    WTF are you talking about? Meditech pays their DEVELOPERS low thirties in BOSTON, one of the most expensive cities in the country. When I complained that I was having to bring my kids snacks for lunch, I was told, and I quote "Well, you could always get a second job." Meditech is a sweat-shop stuck in the early 80s. It scares the hell out of me that they are in 25% of the hospitals.

  • Ex-meditecher (unregistered) in reply to Jan
    Jan:
    The silliest thing about this account is the fact that the developer left the job off his resume, leaving a blank. Any prospective employer is going to look at a 2-year gap and assume the candidate spent the years smoking dope and playing WOW, or in prison. Even a job in MacDonalds is better than a gap.
    Or they might just assume the person was looking for a development job in the software industry in the mid-2000s. It took me two years to get a job out of college, and that was at Meditech, because they'll hire anyone that can sumbit a resume without drooling all over the place. I had lots of interviews, but in case you didn't notice because you were secure in your comfy job, it was tough work finding a job in the last few years.
  • Current_Meditech_ER (unregistered) in reply to Ex-meditecher

    Let me guess Ex-Meditecher ... did you go into consulting?

    Those who can't do attempt to prentend they know how to tell others 'how to', eh?

    OR are you simply bitter because the stock never went public?

  • Current_Meditech_ER (unregistered) in reply to Ex-meditecher

    If you are scared by MEDITECH ... you should check out HBOC / McKesson.

    Well, at least they are publicly traded. (HA!)

  • AtomicClock (unregistered) in reply to earl
    earl:
    Funny story: someone accidentally took down a major hospital by mistyping. Everything is done on production servers; this person was typing k ^varname to delete (k is short for kill = delete) over a remote connection. Instead of completing the varname and the attributes to delete, this person accidentally hit enter or the connection gremlin decided to screw him.

    What was sent over the terminal was: k ^enter

    which deletes all data. Everywhere. In the middle of a day in a hospital. There was a screamed "OH SHIT" then he ran down the hall to the recovery team.

    Haha.

    What's really hilarious is that you are either stupid enough to believe that anecdote that you probably heard from some other charlatan, or that you're disingenuous enough to spout demonstrably false statements like this knowing that morons will lap it up.

    Assuming you actually worked there they probably fired you, which I suppose is the most pathetic thing in this whole WTF.

  • Ex-meditecher (unregistered) in reply to Current_Meditech_ER

    No,current_meditech_ER, actually I got a job at a real company that develops real software using a real language and operating system with real, functional tools. And I even make enough to feed my family. Enjoy your free sodas though. I'm just here to gloat.

    FYI: A sign at McDonnalds in the Boston area announced they were hiring managers for 35k/yr. That is what Meditech starts the programmers out at. McD's is probably more selective about who they hire too.

  • Nahum (unregistered)

    Thank you for the info. It just helped me to decide about the new job offer i got this week. I will say no to MUMPS... You are all welcome to visim my blog at: http://www.eastern-logic.com

  • Alexx (unregistered)

    What was the first record of mumps? I'm researching it for school.

  • Tommy (unregistered)

    MUMPS/M/Cache is not a dead language/database. It was developed for and is still in widespread usage in the healthcare industry. Many IT vendors including Misys, IDX, and Epic sell widely used applications based on it. The VA's system runs on it. Thanks to Kaiser's installation of Epic (the Madison/Verona company everyone's talking about), InterSystems (which owns Cache and predecessors Open M, ISM, DSM, and MSM) can say the largest healthcare databases use it.

    It takes getting used to but that's just like every other language or database. Once you learn it, it's fun to use and rather efficient in terms of keystrokes required.

    As for security, it's all in the implementation. I'm not sure what type of M is being talked about in the "horror story" but Cache provides API's for all modern programming languages.

    As for migrating away from it...there's no need to. InterSystems continues to develope and update Cache. It runs on OpenVMS (Alpha and Integrity), AIX, HP-UX, Solaris, and Windows.

  • David (unregistered)

    Ahhh... Mumps. Happy days, I was never more productive.

    I am not sure what Bryan did for the three months it took him to learn mumps, there were only about 8 commands that I can remember. I was up and writing new functionality in about 2 weeks.

    According to the manufacturers of Cache it is still significantly faster than Oracle...

    http://www.intersystems.com/cache/whitepapers/warehouse.html

    It wouldn't surprise me, after I watched a large team try to replace a legacy mumps system with new fangled windows and SQL replacements for a number of years.

    Mumps is still used in the UK for a significant amount of healthcare records.

    Having said all that... I am glad that I will never have to use it again.

  • Me (unregistered)

    I have to throw up now.

    CAPTCHA: ewww

  • Chris (unregistered) in reply to Tommy
    Tommy:
    As for migrating away from it...there's no need to. InterSystems continues to develope and update Cache. It runs on OpenVMS (Alpha and Integrity), AIX, HP-UX, Solaris, and Windows.
    ... and Mac OS X
  • David (unregistered) in reply to ilovemumps
    ilovemumps:
    I don't think that much of this criticism is fair. I work for a similar company as Bryan (perhaps the same). I had a hard time getting a job out of college, even though I went to a good school and got good grades with degrees in math and physics. I am glad that this company hired me and has given me some programming experience, work experience, and a salary. There is no way that is a bad thing.
    Exact same boat. I too got a degree in Math and Physics from the best university in the country. Sure I'm now using Visual FoxPro, but only plan to do this for a couple of years or so. And they are paying me heaps, more than I even asked for! Plus this is a great environment, in a very well recognised company.
  • Former Mumps Dude (unregistered) in reply to AtomicClock

    Nope. "K ^" was a lethal combination as were such other "K ^*" situations. "K ^DD" was the killer that happened one day in our shop. Killed our entire data dictionary.

    Yes, AmeriTrade used Mumps up until fairly recently and they may still. Also, APAC bought a company and inherited a Micronetics Mumps implementation.

    I think there is some salvage yard software that is popular and written in Mumps too.

    I liked Mumps but I like the "newer" languages and technologies better. If Mumps had some SQL capabilities, it may be fun to play around with. I hear Cache may support that?

    You could get quite a bit done in a screen or two of code.

  • Saintly (unregistered) in reply to Ed
    Ed:
    Ed:
    NotARobot:
    Did anyone see this further WTF in the Wiki article?

    Reserved words: None. Since MUMPS interprets source code by context, there is no need for reserved words. You may use the names of language commands as variables. There has been no obfuscated MUMPS contest as in C, despite the potential of examples such as the following, perfectly legal, MUMPS code:

    GREPTHIS() NEW SET,NEW,THEN,IF,KILL,QUIT SET IF="KILL",SET="11",KILL="l1",QUIT="RETURN",THEN="KILL" IF IF=THEN DO THEN QUIT:$QUIT QUIT QUIT ; (quit) THEN IF IF,SET&KILL SET SET=SET+KILL QUIT

    That code does not work. There is no THEN command in M. Also, the : is a conditional, so it says "do this command if this condition is true", so you don't need Q:$Q Q Q, it would just be Q:$Q Q.

    I'm not sure what $Q would return without giving it a parameter, it is a function after all.

    There are too many problems with that code here to list them all. It won't run. You will get syntax errors.

    I take that back, it does work, but the spaces at the beginning of the lines are important. THEN is a tag, so DO THEN goes to that tag and does not execute "KILL". I'm still not sure about that QUIT:$QUIT QUIT QUIT. Since this is declared as a function, the last quit needs to return a value, so something like this is probably what the author was looking for.

    QUIT:$QUIT QUIT QUIT ""

    Or not...

    QUIT:$QUIT QUIT QUIT ; quit

    If the caller/calling function is expecting this function to return a value, return the value of the local variable 'QUIT'. Otherwise, exit the routine without returning a value. The last '; quit' is a comment.

    In MUMPS/M, you call a routine differently depending on whether you want a return value or not. If a function returns a value in a context where a value was not expected, that's a fatal error. So is not returning a value to a context where a value is expected.

    I guess you'd hope people would only call your function according to the published API. But the $QUIT function tells you what context your function was called in so you can behave differently. It evaluates 'TRUE' if your context is expecting a value.

    MUMPS functions & routines are never required to return a value.

  • Ray Lopez (unregistered) in reply to the-moss

    Read this carefully. Be afraid, be very afraid... LOL.

    January 04, 2006 11:06 AM US Eastern Timezone

    GE Healthcare Completes Acquisition of IDX Systems Corporation; GE will Accelerate Global Adoption of Electronic Health Records

    BARRINGTON, Ill.--(BUSINESS WIRE)--Jan. 4, 2006--

    GE Healthcare, a unit of General Electric Company (NYSE:GE), announced today the completion of the acquisition of IDX Systems Corporation (NASDAQ:IDXC), a leading healthcare information technology (IT) provider. Together, GE Healthcare, a global leader in medical imaging, healthcare services, life sciences and information technology, and IDX will create a leading healthcare IT vendor with one of the most comprehensive suites of clinical, imaging and business information systems available.

    GE expects the acquisition to accelerate efforts to seamlessly connect clinicians from physicians' offices to hospitals with comprehensive, enterprise-wide electronic health record (EHR) solutions, creating a digital community that supports safe, efficient and cost-effective patient care.

    In 2005, the RAND Corporation, a non-profit research organization, released information indicating that America's healthcare system could save more than $81 billion annually and improve the quality of care if it were to broadly adopt computerized medical records.

    "The combination of these two companies positions GE as a leading provider of global healthcare information solutions and, by further enabling the integration of our customers' IT systems, enhances our ability to help them streamline healthcare costs, reduce medical errors and enhance and improve the quality of patient care," said Joe Hogan, president and CEO of GE Healthcare. "In addition, our expanded IT product offerings will provide healthcare practitioners with powerful new capabilities and tools, like comprehensive EHRs, to help physicians diagnose and treat disease earlier than ever before."

  • Turnip (unregistered)

    Okay, I confess. I am a MUMPS (don't call it M, I hate that name)programmer, and have been for 22 years. I hate to be a me-too-er, but the rabid anti-MUMPSian drivel tha thas been spewing out here is more from ignorance and religious zealotry than anything else.

    Can you write bad code in MUMPS? Of course you can, and much has been written. Can you write good code in MUMPS? Of course you can, and much has been written. I haven't used a GOTO in probably any of the past 20 years (except maybe code that I wrote for my own personal stuff, like games, and the like). Scoping of variables (and by the way, that existed even in the earliest incarnations of MUMPS), block structuring, comments, non-obscure variable naming, etc. should certainly be used. Things like dynamic variable creation, non-existent variable-typing, sparse arrays, and so forth, are strengths, not weaknesses. Security? No problem. When I worked at the DOD (whose hospitals still use MUMPS, as well) there was no bare telnetting as some other poster here suggested was the case with his MUMPS shop. It was secure shell, and even the developer's accounts (which were protected by two levels of passwording) were automatically disabled at the hospitals each day, and you had to re-establish authenicity to have your account reenabled, which involved using DoD-issued CAC cards, which needed an electronic reader, thumbprint and yet another password. So security is what you make of it.

    As others have mentioned, not ony the VA and the DoD use it, but also Ameritrade. And why? Because even in this day and age, it's FAST, and completely scalable. Millions of transactions are handled, accurately and securely, every minute.

    People who think newness is better simply because it's new are the ones who need to get a clue. Yes, some newness is better (examples would be the Internet and cellphones), but other things are simply tools to drive the market economy which collapses if people stop buying new stuff (remember back in the old days when you didn't have to get a new car every five years, because the vehicles actually LASTED for 10-20 years with no problem? That was disaster for Detroit, since not everyone was buying into the "must scrap my old car each year or two, because this one has newer bells and whistles" mentality. So they started making cars that would fall apart basically as soon as their warranty expired.)

  • (cs) in reply to Jeff S
    Jeff S:
    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?

    According to Wikipedia you can use DO command to create new code block for FOR / IF..

    btw - this iz crazy:

    DOW D H S Y=%Y K %H,%Y Q DW D H S Y=%Y,X=$P("SUN^MON^TUES^WEDNES^THURS^FRI^SATUR","^",Y+1)"DAY" S:Y<0 X="" Q 7 S %=%H>21608+%H-.1,%Y=%\365.25+141,%=%#365.25\1 S %D=%+306#(%Y#4=0+365)#153#61#31+1,%M=%-%D\29+1 S X=%Y"00"+%M_"00"+%D Q ;

  • jimjim (unregistered)
    "While rock guitarists and programmers share a personality style characterized by arrogance, self-absorbtion. delusions of grandeur, and a tendency toward dogmatic absolutism, it is nevertheless the case that guitar players get more women." - C. Thomas

    but I presume there's more woman dating programmers than woman dating guitarists,

    without talking of the average pay check...

  • Armin van Harten (unregistered)

    Hi, thanks to turnip for his words. I agree fully. Don't beat the sack if you mean the mule. And if there is something bad about M than it is the same, other languages have encountered over 20 or more years. Many problems come from the fact that MUMPS is OLD.... 1966... had its best times in the 80's and then happend what often happend to systems with a long history : the development of the system stopped, not because the implementors where not interested but the programmers did not want to change. Evolution of the language stopped in 1995 on a level compatible to 1988 (in some companies earlier, sorry about you McKesson folks)) ! That means even structured programming has been a 'wow' innovation for the established M programmer. Therefore M is one of the last languages where GOTO is still a style element (I style cann't stand it!) Since it is never a problem to get a M prog. running even the worst garbage is implemented somewhere in some old software. This is not because the language forces you so, it is because programmers choose it to do so!! There are lots of elements I would like to find in the language but the problems described above are not among them. A fool can write garbage programs in any language. I've seen it in C, C++, Java, Delphi, PHP, JScript etc. If you are stupid, the language won't help you anywhere! Unfortunatly M programs are usually abpout 20-25 years in service and accumulated a lot of stupidity (While a java prog only can acumulate just a few years of crap). Like the example:

    DOW D H S Y=%Y K %H,%Y Q DW D H S Y=%Y,X=$P("SUN^MON^TUES^WEDNES^THURS^FRI^SATUR","^",Y+1)"DAY" S:Y<0 X="" Q 7 S %=%H>21608+%H-.1,%Y=%\365.25+141,%=%#365.25\1 S %D=%+306#(%Y#4=0+365)#153#61#31+1,%M=%-%D\29+1 S X=%Y"00"+%M_"00"+%D Q

    This is definetly 1977 style. Remember: you can even write a C program in one line, but nobody does, so why not write:

    DOW() ; -- function : unknown crap -- N %Y,%H,Y D H S Y=%Y Q Y ; return Y for whatever reason

    DW() ; -- function : return current day of week -- N Y,%Y,X D H ; calling a local label but it is not here ..... S Y=%Y,X=$P("SUN^MON^TUES^WEDNES^THURS^FRI^SATUR","^",Y+1)_"DAY" S:Y<0 X="" Q X

    7 ; -- this label is never called -- S %=%H>21608+%H-.1,%Y=%\365.25+141,%=%#365.25\1 S %D=%+306#(%Y#4=0+365)#153#61#31+1,%M=%-%D\29+1 S X=%Y_"00"+%M_"00"+%D Q

    Or better like this:

    DAY() ; -- function: return name of current day -- N DAYS S DAYS="Thurs Fri Satur Sun Mon Tues Wednes" Q $P(DAYS," ",+$H#7+1)_"day" ;

    The basic problem seems to be MUMPS is different. When I started MUMPS my first impression was I encountered a post mortem dump. I applied simple rules of structured programming and it worked much better and so on. BUT I never understood, why all programmers start writing shit when beginning to write M programms??

    But I must agree to the original author: If you tell your employer, you're a Mumps professional, he most likely thinks, you are one of those stubborn diehard prehistoric species which still refuses any evolution of the last 25 years in IT development. But how can he know, that sometimes there are a few who are not??

    Since I am not usually here, you can flame me on my business mail at: info(at)ifmd-consulting//nospam//.de

    have fun watching them "modern" languages ageing ;-) !! Armin van Harten

  • grrrr (unregistered) in reply to Brady

    Ignorant ???. A lot of smart people thought about making programing languages,databases and methodologies better and if you ever really programmed in mumps cache object-script and are also aware of all that theory than your only conclusion can be that the theory is right and mumps is wrong. The real problem why there is still mumps/cache it is dishonesty and customers ignorance. You probably make more money if your customer has more problems.

  • grrrr (unregistered) in reply to grrrr

    I like to remark that the most important thing thing about databases that gets almost never mentioned in this kind of discussions is database integrity. Is that customer id really a customer id is that id used only one time is that essential piece of data really there? what does a mumps database offer in that regard ? Nothing! That is the real important difference with relational databases.

  • Gringo (unregistered) in reply to grrrr

    Sorry for picking your post out, but this is an example of how most of the people commenting here seem think these days.

    What this user expects are features from an SQL-RBDMS like primary keys, constraints, stored procedures and relations - and he expects this from a system which was designed way before anyone thought about something like SQL. He looks at it and sees that the features he is used to are not there at the first glance and thus the whole product must be bad. Preferably without researching what really is there:

    grrrr:
    I like to remark that the most important thing thing about databases that gets almost never mentioned in this kind of discussions is database integrity. Is that customer id really a customer id is that id used only one time is that essential piece of data really there? what does a mumps database offer in that regard ? Nothing! That is the real important difference with relational databases.

    M was created as an operating system aimed at rapid creation of stable, available, scaleable, concurrent, multi-user data storage, manipulation and retrieval systems - getting the most out of the available hardware as possible.

    The above comment is like complaining about C++ missing RDBMS storage, or word processing capabilities. Comparing it with a modern RDBMS also misses the point, alone because RBDMS only have a subset of the functionality of M. Additionally missing the point because the 'missing functionality' the user complains about is available for this language as a library (see below).

    M is basically exposing the low-level functionality (and more) needed for storage engines (eg the ones used by modern RDBMS) and virtual machines (such as java) to the programmer (and that since about 40 years) - giving flexibility to handle data and code in a performant and portable way:

    • You can build full SQL compatibility on top of M and have it run faster and more stable and scaleable then many other dedicated RDBMS on the market.

    • You can build an OODBMS with it, or a complete OO system (including typed variables if you really feel the need for and willingness to pay the performance impact of it).

    • You can use the included btree storage system as-is (and a carefully tailored storage structure in M can outperform RDBMS for quite some scenarios - because it omits many of the problems for wich stuff like referential integrity checking in current RDBMS burns way to many CPU cycles these days).

    • You can even dump the complete language by writing your own compiler and use M as a VM for the language you create.

    Or you can build something with it which gives you all of this at once. That has been done by intersystems - it's called Caché (drawback there is the pricetag, but compared with stuff like oracle it isn't bad): All the functionality they offer is basically library code running on a classic M system (except stuff for eg. IP connectivity which are implemented as Zfunction language extensions). And it's stable and very fast and scaleable.

    Should you openly look at what functionality they expose to the user (and keep in mind that all this is running on a 40 year old language construct) then maybe you will get a grasp of how powerfull MUMPS really can be given good coders who know what they are doing.

    Sure, you can create unreadable, unmaintainable or fucked up code with any language. And you're shafted with nearly any language available should you not have libraries (which contain solutions to the problems you encounter and make your life easier). Also you could dislike the syntax (which i liked when working with it because i had to type less to express the things i wanted).

    But please stop bashing something after a glimps at a very limited subset of it - when you don't have a clue about what's really there.

  • grrrr (unregistered) in reply to Gringo
    Gringo:
    Sorry for picking your post out, but this is an example of how most of the people commenting here seem think these days.

    What this user expects are features from an SQL-RBDMS like primary keys, constraints, stored procedures and relations - and he expects this from a system which was designed way before anyone thought about something like SQL. He looks at it and sees that the features he is used to are not there at the first glance and thus the whole product must be bad. Preferably without researching what really is there:

    No You are wrong. I have firsthand experience with a legacy mumps application and I know some mumps.
    Gringo:
    grrrr:
    I like to remark that the most important thing thing about databases that gets almost never mentioned in this kind of discussions is database integrity. Is that customer id really a customer id is that id used only one time is that essential piece of data really there? what does a mumps database offer in that regard ? Nothing! That is the real important difference with relational databases.

    M was created as an operating system aimed at rapid creation of stable, available, scaleable, concurrent, multi-user data storage, manipulation and retrieval systems - getting the most out of the available hardware as possible.

    The above comment is like complaining about C++ missing RDBMS storage, or word processing capabilities.

    No your analogy is useless a better analogy is that it is like a car that is missing brakes.
    Gringo:

    Comparing it with a modern RDBMS also misses the point, alone because RBDMS only have a subset of the functionality of M. Additionally missing the point because the 'missing functionality' the user complains about is available for this language as a library (see below).

    M is basically exposing the low-level functionality (and more) needed for storage engines (eg the ones used by modern RDBMS) and virtual machines (such as java) to the programmer (and that since about 40 years) - giving flexibility to handle data and code in a performant and portable way:

    No almost all mump programs that I have seen are a lot slower then the equivalent sql query
    Gringo:
    • You can build full SQL compatibility on top of M and have it run faster and more stable and scaleable then many other dedicated RDBMS on the market.

    • You can build an OODBMS with it, or a complete OO system (including typed variables if you really feel the need for and willingness to pay the performance impact of it).

    • You can use the included btree storage system as-is (and a carefully tailored storage structure in M can outperform RDBMS for quite some scenarios - because it omits many of the problems for wich stuff like referential integrity checking in current RDBMS burns way to many CPU cycles these days).

    • You can even dump the complete language by writing your own compiler and use M as a VM for the language you create.

    Or you can build something with it which gives you all of this at once. That has been done by intersystems - it's called Caché (drawback there is the pricetag, but compared with stuff like oracle it isn't bad): All the functionality they offer is basically library code running on a classic M system (except stuff for eg. IP connectivity which are implemented as Zfunction language extensions). And it's stable and very fast and scaleable.

    I see that yuo have been reading the cache marketing fairy-tales. If yuo had real experience with that database yuo know that that are only fairy-tales.
    Gringo:

    Should you openly look at what functionality they expose to the user (and keep in mind that all this is running on a 40 year old language construct) then maybe you will get a grasp of how powerfull MUMPS really can be given good coders who know what they are doing.

    A coder who knows what they are doing would never code in mumps
    Gringo:

    Sure, you can create unreadable, unmaintainable or fucked up code with any language. And you're shafted with nearly any language available should you not have libraries (which contain solutions to the problems you encounter and make your life easier). Also you could dislike the syntax (which i liked when working with it because i had to type less to express the things i wanted).

    old fashion Mumps does not have the language features to write readable and maintainable code.
    Gringo:

    But please stop bashing something after a glimps at a very limited subset of it - when you don't have a clue about what's really there.

    My well informed conclusion is that mumps need a good bashing . It is a piece of crap.
  • Armin van Harten (unregistered)

    Hi grrr,

    this is a harsch standing you take on one single programming language in a thousand. On what you say, I am very sure, you may know a few statements in M but you know nothing about M. Probably you started out in a very old fashioned M-shop with all your new neat libraries in C++ or java or whatever and finally recognized all that stolen, borrowd and sampled stuff other programmers wrote for you doesn't work here. All the common language stuff is suboptimal here, because algorithmic is very different in M. I am sure, that its people like you who are responsible for some of the worst lines in any M code and now complaining about the language, because they are unable of structured working.

    Nobody denies that because of some historic misdevelopments, this language has some shortcomings, but getting so upset upon this may have different reasons. I've met a lot of younger programmers who where very proud of knowing a lot of libs they can use. They where usually not able to implement a read command with some cursor control but believe themselfs great programmers. Well! OK. But see this: you are in a different department. M is not for YOU, M is for professionals. As far as I see, you ar not even able to decide a programming laguage from a databse from a operating system etc. I thi nk, it could be a good idea to acquire some basic knowlegde and then take a look again. Another point isd, that M is still the only language which allows complete algorithms in treestructured data and associative adressing (PHP has some small approaches but is mixed up). These two elements allow completely different solutions of given problems. Beyond all historic troubles, you will find new ways of thinking working seriously with a tool like this. In M DOM Models are old! But you will never recognize because you are still seraching for some flat tables and SQL add on's. N dimensionality is a was of thinking and ultimate freedom can cause trouble for those who need barriers to find their way. Reboot your brain, and answer yourself one quetsion: if this is so bad, how could it last so long?

    BTW : funny name 'grrr' What are you affraid of?

    Armin P.S. If you need any help with your M problems, let me know, I can support you-.

  • grrrr (unregistered) in reply to Armin van Harten

    I was not angry before but I am now . Your condescending tone and assumptions about me are totally baseless. Do not lecture about professionalism with your pseudo-technical-mumps-speak. Let me teach you something about dimensions instead. Lets take a simple cube of size 3x3 and put the corner points in a sql database and in a mumps database now come up with a couple of simple queries like what points make up a side what points make up a diagonal plane and then come back to and tell me what is the multidimensional database and what is the flat one. In a sql database all dimensions/rows are equal and can all be used to query. in a global one

  • grrrr (unregistered) in reply to Armin van Harten

    Also speaking of ^globals and mumps how about the TDIDT algorithm on a global show me maybe you impress me. You may chose how to do the attribute selection but not the selection the ^global tree dictates.

  • Gringo (unregistered) in reply to grrrr
    grrrr:
    No You are wrong. I have firsthand experience with a legacy mumps application and I know some mumps.
    Read: You have experienced one application and know how to code 'Hello World'.
    grrrr:
    No almost all mump programs that I have seen are a lot slower then the equivalent sql query
    Seems like most of the M programmers whos code you have digested didn't have a clue how to write performant code. Or did you compare the legacy application running on legacy hardware to your SQL system running on current state of the art hardware?
    grrrr:
    I see that yuo have been reading the cache marketing fairy-tales. If yuo had real experience with that database yuo know that that are only fairy-tales.
    I actually used it.
    grrrr:
    old fashion Mumps does not have the language features to write readable and maintainable code.
    Old fashion SQL (which you seem to see as the best since bread in slices) is crap too - compared with todays SQL.
    grrrr:
    I was not angry before but I am now. Your condescending tone and assumptions about me are totally baseless. Do not lecture about professionalism with your pseudo-technical-mumps-speak.
    Why getting personal?
    grrrr:
    Lets take a simple cube of size 3x3 and put the corner points in a sql database and in a mumps database now come up with a couple of simple queries like what points make up a side what points make up a diagonal plane and then come back to and tell me what is the multidimensional database and what is the flat one. In a sql database all dimensions/rows are equal and can all be used to query.
    Your example clearly shows that you don't understand the possible ways to use the storage structure supplied by M.
    grrrr:
    My well informed conclusion is that mumps need a good bashing. It is a piece of crap.
    (plus)
    grrrr:
    A coder who knows what they are doing would never code in mumps
    Well informed. Yea, right.

    <*)))><

    Languages evolve. People sometimes not.

    Gringo

  • Ed (unregistered) in reply to Remco G
    Remco G:
    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.

    My brother went to Anderson Consulting out of college in 1994. All new hires back then went to Cobol class for months. Ironic how everyone (at least PHBs) practically revere Big4 consultants considering their roots!

  • grrrr (unregistered) in reply to Gringo

    " Why getting personal? "

    You painting a picture of me that was a total your fantasy that is a shit thing to do. You can spin it now by just quoting what makes you look good but that is just a cheap trick of a typical technically incompetent person trying to get is his way by bullying instead of argument . I am a mathematician by training and I assure you I can see the how useless nonsense a data-model like that of mumps globals is without the years of mumps torture that made you so stupid.

  • Jose Canseco (unregistered)

    Why is Brian blaming his lack of ability to get a job on his previous company. Did getting experience outside of college worsen your resume? Nope. So if you hadn't gotten this first job, you'd have been unemployed just the same, so there's some other reason you can't get a job and it has nothing to do with MUMPS. Good luck, though.

  • Gringo (unregistered) in reply to grrrr

    I may already handed out the fish, but i couldn't resist:

    grrrr:
    " Why getting personal? "

    You painting a picture of me that was a total your fantasy that is a shit thing to do. You can spin it now by just quoting what makes you look good but that is just a cheap trick of a typical technically incompetent person trying to get is his way by bullying instead of argument . I am a mathematician by training and I assure you I can see the how useless nonsense a data-model like that of mumps globals is without the years of mumps torture that made you so stupid.

    Maybe stick to math then and leave IT to people who are trained in that field?

    Gringo

  • Doug (unregistered)

    As a DSM version programmer back in the 80's and 90's for about 5 years on a cluster of PDP 11/83. Then working on other flavours, I can sympathise with Bryan. However you cannot knock a programming language/OS that has the ability to be so flexible with such limited resources.

    Xrefing multi clusters with ^[uci,sys] and with proper control over your subroutine modules there's nothing (datawaise) it couldn't handle and I am sorry but all my programming was wel documented clear and maintainable!

    The only inherrant problem was the fact in the UK was steering group that didn't take tight enough control over the emerging plethora of backroom spun GUI's comming onto the markets.

    I still say if it was revisited revamped it could still be a goer.

  • macruadhri (unregistered) in reply to use the backups

    Ooh. Mistaken.

    Cerner and HBOC both have MUMPS ( or M, as it's called these days ) based applications. Meditech is even worse since MAGIC is based on their previous proprietary language MIIS...which looks a LOT like M.

    MUMPS was actually the first ANSI standard language back in the early 60's. That's before most of the early work on programming styles was done! If you see any legacy code out there for ANY language that old you're going to see amazing things like GOTOs resulting in spaghetti code. The problem isn't M...or Intersystem's current version called Cache...it's the moronic use by the individual programmer. I've seen VB and C++ code that was far less supportable than M.

    In actual fact, Cache is a true object oriented programming language whose capabilities include SQL querries and a scripting language that is almost identical to C++ with the exception of the object library. Cache even comes with a feature called Cache Server Pages. Yep, web based support to compete with Active Server Pages at no additional cost.

    I don't know about any other programmer out there but I believe opportunities are what you make of them.

  • Billy Bathgates (unregistered)

    You developers extolling java over MUMPS - Look at the deliverables from each platform. java is, or should be great in theory, but the kitchen sink libraries an 'infrastructure' it drags around with it result in crashing systems that must be hardware overspecified, which in this day and age is inexcusable. There are too many just average programmers writing shitty code that gets included as the infrastructure acretes. For a language as young as java, this is horrible. Someone needs to cut out the bullshit, or just start over.

    For the article writer, who was praising VB as an alterative - you need to stop drinking billy gates' white Koolaid! M$ is a cancer on IT. Time to throw away the 'IDE' that lets you produce reams of shit, and work on quality not just quantity

  • s. (unregistered)

    Today, I saw MUMPS on freshmeat: http://freshmeat.net/projects/gt.m/?branch_id=3802&release_id=272308

    seems to be the same thing. I didn't believe this really exists when I read the WTF...

  • Neas (unregistered)

    very interesting, the adage 'you can code in one language you can code in them all' might not always apply. If the skills you have are so esoteric you might be dependent on one company for employment. It might work out that you can hold the company to ransom if there's more jobs than developers but you're the company's bitch if it's the other way round.

  • Tony (unregistered) in reply to Neas

    Every programming language has it's advantages, disadvatages and quirks. That's the one fact that has been the most evident over my 25 plus years of programming expereience. I done COBOL, X86 Assemblr, C, Forth Basic (the Dartmouth version that precede M$), QuickBasic, TurboBasic, Pascal, Turbo Pascal, Delpi and Visual Basic.

    My introduction to MUMPS was with a "competitor called MIIS back in the early 80's. I also beta tested Intersystem's predecessor to Cache in the late 80's.

    I worked continously for the last 25 years inside and outside the MUMPS community. I've worked as a developer, programmer, techie, manager and supervisor.

    The point behind all of this crap? The programming language matters. The skills of the prorammer matters more. The standards, conventions, rules and coding philosphy are the keystone. It takes all three to develop and implement what the client really wants.

  • cod3_complete (unregistered) in reply to Flo

    After looking at those code samples I'm convinced that the programming language is named after the mumps disease and the acronym was made up after the fact.

  • nicki (unregistered)

    I have about 4 years cache experience and im unable to land a job in any other language except for those "fresh from college" ones where i would be paid peanuts. studying java in my spare time now so that i have something to show when going for an interview 1 year java =17k 4 years cache (+csp server pages)=12k (after complaining to my boss) go figure

  • x^2 (unregistered)

    A horrible story indeed, but a lesson for any new programmer. Staying current with technology is essential if you want to continue to be marketable. There is no better leverage than to have options outside your current employer. I have seen too many engineers get swallowed up in high-paying grunt work only to realize that they've been effectively marginalized in the market.

Leave a comment on “A Case of the MUMPS”

Log In or post as a guest

Replying to comment #131986:

« Return to Article