← Back to context

Comment by tommmmmm

12 years ago

For one thing, there's not much of an incentive to port hundreds of thousands of lines of working legacy code to a different language just to make it more readable. Its age isn't a relevant issue either - sure, MUMPS debuted in 1966, but InterSystems Caché and GT.M are still being actively developed. Other databases are pretty old, too - the first version of Oracle was written in 1978.

If Caché had no strengths, I would agree with you, but as a non-relational database, it's pretty good. Sparse associative arrays are the default data structure, so it's very popular in, e.g., medical applications, where you would want to be able to store thousands of different things, but any given patient will only need a few of them.

> Sparse associative arrays are the default data structure, so it's very popular in, e.g., medical applications, where you would want to be able to store thousands of different things, but any given patient will only need a few of them.

Caché has really been moving away from that though... CacheStorage stores data in a big list in the *D globals.

I think the power in CacheStorage really comes from the indices and - very relevantly to the healthcare industry - all the relationships. They've got a very complex schema they need to support and Caché continues to be pretty good at that kind of thing - see the implicit joins in their SQL variety for example or Zen.

  • Unfortunately at my company we don't get to use the fancier Caché features. We have to stick to ANSI M.

    We do make a lot of use of indices, though. Finding records can be incredibly fast.

    • > We have to stick to ANSI M.

      I'm so sorry. Nothing more fun than manually keeping indices in MUMPS :|

It's all legacy stuff, the incentive not to port is that it's too hard to do so. Most of the intersystems cutomers I have worked with want to move away to something more modern but cant.

  • > Most of the intersystems cutomers I have worked with want to move away to something more modern but cant.

    We're pretty happy with it. If, theoretically, we'd need to start from scratch, it'd would definitely be in our top very very few choices. Not least of all because of things like DeepSee.

    I could certainly think of things much worse than Caché.