Almost two years ago I started a new employment (in healthcare). It was soon revealed that the language and database of choice was Caché from Intersystems, which is Mumps-based (somehow). I was a little intrigued that I had never heard of it before, since the resident databaseadministrator described it as the Final Answer To All Problems.
I worked through the tutorial, thinking that it would "open up" and give away all these amazing features.
It didn't took me long to realise how wrong he was.
I can't comment on Mumps in general but my absolutly biggest beef with Caché is that all code is stored in the database. All code. Let it sink in for a while... Yes, that's right, you have to use a special application to edit your code. This means no easy backups (you have to either backup the whole database or make an 'export' of your project to XML), no version management system (CVS, Subversion), no auto documentation tools, no analysis tools, no nothing... I can't really tell you how much this sucks. The IDE, Intersystems Studio, is pretty much just a texteditor which highlights syntax errors in red. Thats it. When I complained about Studio a sales representant told me that "we're not a tools company, we're a database company" and then, in the next sentence as an answer to my question about the possibility to use other tools: "no". Go figure.
The programming language has been slightly redesigned in later versions to something called 'Caché Objectscript'. This is a lame attempt to add OO concepts to a basically dead language. It's not enough to add something called 'class' and then be done. No exception handling, no encapsulation, no typing, and so on. Worst part is that the class is 'compiled' into something which is basically Mumps-based. Yes, thats right. You write in one language which compiles into more or less the same language. Smells like a macro-language if you ask me.
Problem is that if a runtime programming error occurs the error refer to the compiled code (!) and usually with a message like: "Error 8002 on line 142 in procedure WTFISGOINGON.inc" (or something to this effect). But it's not line 142 in your code! This is like coding in Java and having the VM point you to the bytecode when something goes wrong... With the error message "it's wrong".
And it doesn't stop there. Remember how popular it was in the end of the 90's to embedd programming languages in HTML-pages? ASP, PHP, and so on? Ofcourse Caché must have its own version, Caché Objectscript Pages or CSP. These are actually stored as regular files, probably because Intersystems use a mod for Apache to handle them. On execution these are compiled to Caché Objectscript classes... Yes, that's right, to something which in turn is compiled to yet another form. Where do you think errors refer?
Ohh, yes... Did I tell you that the documentation absolutely sucks?
They have some documentation available similar to javadoc, but where
the JDK tells you what you need (and usually more) their version is
amazingly sparse. Once I tried to call a static method in a class and
got errors however I did it. Turned out that that particular class
wasn't converted to the new OO system and that you needed to use the
old calling method, but this information was nowhere to be found (it
didn't differ one bit from other classes I used).
I could go on here...
In my subjective not so humble opinion, Caché and its related technologies is one really large WTF. The funniest thing is how the newsletter and other propaganda makes you think of a sect or something. Everything is sooo great and so much faster than everything else. Yeah, right...
These days I have switched to Java, J2EE and Postgresql. I can't say J2EE is the greatest thing since sliced bread, but it's heaven compared to Caché.
(Hopefully I have mentioned Caché, Caché Objectscript and Intersystems enough to rank this post high in search enginges. Let the truth be heard!)
lToro
@lToro
Best posts made by lToro
-
Intersystems Caché -- Gateway to hell
-
RE: Intersystems Caché -- Gateway to hell
@tster said:
This thread has a special [s]pace in my heart. It is because of this thread that I don't work for Intersystems (I was about to accept a job offer from them and then I read this thread and started digging more into MUMPS and asked my hiring manager to give it to me straight if I was to be supporting MUMPS).
Returning back after more than 6 years (!) and finding this response to my thread brings almost tears to my eyes, or at least unspeakable joy! It was actually my intention from the start that it could benefit someone.
Good for you!
@tster said:
That being said, how many times are we going to bump this thread? I mean, it's only 3 years old with at least 3 bumps from deadness already.
Answer: we will continue to bump it as long as Mumps is alive.
It's not without satisfaction that I notice that this thread/page is the first result on both Google and Bing when searching for "intersystems cache sucks" (it seems to be high up in the results when just googling for "intersystems cache" as well, but these days you can't trust Google to give you consistent results).
Having, since the original post, becomed both older and hopefully a little wiser, I would like to make a follow-up comment.
The Internet is full of technology bashing: you can for every programming language under the sun easily find people that for some reason venomously dislike it and advocate something else. But this isn't like your ordinary Microsoft bashing. Most technologies, strange and cumbersome as they may be, still fall within some structure or form common to some other similar technologies. Like, a language syntax may be non-standard, but the source code is still stored in files and passed through a compiler or interpreter to transform into an executable form. Just like most other languages.
Unfortunately, Mumps, Caché and the related technologies are so different from anything invented in the last 30-40 years that it simply doesn't fit. A mind-set impedance mismatch it you like. A true living fossil...
To be fair, I haven't looked at Caché since the original post was written (wild horses couldn't make me). That said, I have a hard time imaging that Caché and Intersystems has managed to make significant progress in the meanwhile.
The thing that disturbs me immensely about Caché is that it's allowed to continue to find its way into critical processes (and I'm thinking directly on health care here). Having a 40 year old dinosaur in the organization process block diagram just can't be good for progress, it just can't... And that is said knowing perfectly well that the latest buzzword technologies seldom manages to fulfill the promises. Still, there are many standard technological concepts that we take completely for granted today, but which have been developed in just the last 20-30 years.
If Mumps would live on to support running legacy software - fine, but to continue to market it as a valid and modern solution for any problem is frankly dishonest. Computer science has learned and matured enormously since Mumps was conceived - please use this fact when planning new systems!
For other articles on MUMPS, please see A Case of the MUMPS and MUMPS-Madness - they may bring additional facts and opionions on the subject. IMO these stand out from other articles on this site being that they are technology focused rather than product/company/person focused.
Latest posts made by lToro
-
RE: Intersystems Caché -- Gateway to hell
@tster said:
This thread has a special [s]pace in my heart. It is because of this thread that I don't work for Intersystems (I was about to accept a job offer from them and then I read this thread and started digging more into MUMPS and asked my hiring manager to give it to me straight if I was to be supporting MUMPS).
Returning back after more than 6 years (!) and finding this response to my thread brings almost tears to my eyes, or at least unspeakable joy! It was actually my intention from the start that it could benefit someone.
Good for you!
@tster said:
That being said, how many times are we going to bump this thread? I mean, it's only 3 years old with at least 3 bumps from deadness already.
Answer: we will continue to bump it as long as Mumps is alive.
It's not without satisfaction that I notice that this thread/page is the first result on both Google and Bing when searching for "intersystems cache sucks" (it seems to be high up in the results when just googling for "intersystems cache" as well, but these days you can't trust Google to give you consistent results).
Having, since the original post, becomed both older and hopefully a little wiser, I would like to make a follow-up comment.
The Internet is full of technology bashing: you can for every programming language under the sun easily find people that for some reason venomously dislike it and advocate something else. But this isn't like your ordinary Microsoft bashing. Most technologies, strange and cumbersome as they may be, still fall within some structure or form common to some other similar technologies. Like, a language syntax may be non-standard, but the source code is still stored in files and passed through a compiler or interpreter to transform into an executable form. Just like most other languages.
Unfortunately, Mumps, Caché and the related technologies are so different from anything invented in the last 30-40 years that it simply doesn't fit. A mind-set impedance mismatch it you like. A true living fossil...
To be fair, I haven't looked at Caché since the original post was written (wild horses couldn't make me). That said, I have a hard time imaging that Caché and Intersystems has managed to make significant progress in the meanwhile.
The thing that disturbs me immensely about Caché is that it's allowed to continue to find its way into critical processes (and I'm thinking directly on health care here). Having a 40 year old dinosaur in the organization process block diagram just can't be good for progress, it just can't... And that is said knowing perfectly well that the latest buzzword technologies seldom manages to fulfill the promises. Still, there are many standard technological concepts that we take completely for granted today, but which have been developed in just the last 20-30 years.
If Mumps would live on to support running legacy software - fine, but to continue to market it as a valid and modern solution for any problem is frankly dishonest. Computer science has learned and matured enormously since Mumps was conceived - please use this fact when planning new systems!
For other articles on MUMPS, please see A Case of the MUMPS and MUMPS-Madness - they may bring additional facts and opionions on the subject. IMO these stand out from other articles on this site being that they are technology focused rather than product/company/person focused.
-
Intersystems Caché -- Gateway to hell
Almost two years ago I started a new employment (in healthcare). It was soon revealed that the language and database of choice was Caché from Intersystems, which is Mumps-based (somehow). I was a little intrigued that I had never heard of it before, since the resident databaseadministrator described it as the Final Answer To All Problems.
I worked through the tutorial, thinking that it would "open up" and give away all these amazing features.
It didn't took me long to realise how wrong he was.
I can't comment on Mumps in general but my absolutly biggest beef with Caché is that all code is stored in the database. All code. Let it sink in for a while... Yes, that's right, you have to use a special application to edit your code. This means no easy backups (you have to either backup the whole database or make an 'export' of your project to XML), no version management system (CVS, Subversion), no auto documentation tools, no analysis tools, no nothing... I can't really tell you how much this sucks. The IDE, Intersystems Studio, is pretty much just a texteditor which highlights syntax errors in red. Thats it. When I complained about Studio a sales representant told me that "we're not a tools company, we're a database company" and then, in the next sentence as an answer to my question about the possibility to use other tools: "no". Go figure.
The programming language has been slightly redesigned in later versions to something called 'Caché Objectscript'. This is a lame attempt to add OO concepts to a basically dead language. It's not enough to add something called 'class' and then be done. No exception handling, no encapsulation, no typing, and so on. Worst part is that the class is 'compiled' into something which is basically Mumps-based. Yes, thats right. You write in one language which compiles into more or less the same language. Smells like a macro-language if you ask me.
Problem is that if a runtime programming error occurs the error refer to the compiled code (!) and usually with a message like: "Error 8002 on line 142 in procedure WTFISGOINGON.inc" (or something to this effect). But it's not line 142 in your code! This is like coding in Java and having the VM point you to the bytecode when something goes wrong... With the error message "it's wrong".
And it doesn't stop there. Remember how popular it was in the end of the 90's to embedd programming languages in HTML-pages? ASP, PHP, and so on? Ofcourse Caché must have its own version, Caché Objectscript Pages or CSP. These are actually stored as regular files, probably because Intersystems use a mod for Apache to handle them. On execution these are compiled to Caché Objectscript classes... Yes, that's right, to something which in turn is compiled to yet another form. Where do you think errors refer?
Ohh, yes... Did I tell you that the documentation absolutely sucks?
They have some documentation available similar to javadoc, but where
the JDK tells you what you need (and usually more) their version is
amazingly sparse. Once I tried to call a static method in a class and
got errors however I did it. Turned out that that particular class
wasn't converted to the new OO system and that you needed to use the
old calling method, but this information was nowhere to be found (it
didn't differ one bit from other classes I used).
I could go on here...
In my subjective not so humble opinion, Caché and its related technologies is one really large WTF. The funniest thing is how the newsletter and other propaganda makes you think of a sect or something. Everything is sooo great and so much faster than everything else. Yeah, right...
These days I have switched to Java, J2EE and Postgresql. I can't say J2EE is the greatest thing since sliced bread, but it's heaven compared to Caché.
(Hopefully I have mentioned Caché, Caché Objectscript and Intersystems enough to rank this post high in search enginges. Let the truth be heard!)