5 ms·
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 reada
by tommmmmm 13y 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.
- mumpster 13y agoIt'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.
- quink 13y ago> 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é.
- quink 13y ago> 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.
- tommmmmm 13y agoUnfortunately 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.
- quink 13y ago> We have to stick to ANSI M. I'm so sorry. Nothing more fun than manually keeping indices in MUMPS :|