Since they are both variations of the Mumps database and language, comparisons between Caché and GT.M are inevitable. The major difference is that GT.M is unapologetically a pretty straightforward pure Mumps implementation with few added frills: the philosophy is that if you need extra functionality than provided by the raw Mumps environment, you can easily and efficiently pop out to the operating system and/or people can write and distribute value added Mumps-based functionality. Our EWD product is a good example of the latter.
By comparison Caché aims to provide a complete playground, albeit a walled one (in licensing terms): you really don’t need to go outside the Caché environment as InterSystems have directly integrated everything they believe you probably need, including:
- an object orientated projection of the underlying database
- simultaneously, a relational projection of the underlying database
- object orientated extensions to the language (referred to by InterSystems as Caché ObjectScript)
- SQL extensions to the language
- report writing tools
It makes for a very attractive and very functional package, but of course the big thing that GT.M has in its favour is that it’s an Open Source product.
And so to the title of this posting. Whilst there’s not that much I personally find missing in GT.M (now that I’ve added all that stuff inside EWD), there are two things that, for others, are crying out to be addressed:
- an Open Source SQL interface (plus an inclusive projection layer on top of the raw Mumps global storage). This should ideally include an industry-compliant ODBC interface. Being able to access Mumps database via SQL would be a huge boon for the many people for whom it’s the de facto means of accessing databases. There are solutions available for GT.M: KBSQL, which I understand to be an excellent product, but unfortunately it’s a proprietary product; and PIP from FIS (the owners of GT.M), but my experience is that PIP is unfortunately way too complex to be usable by most Mumps developers. Until such an Open Source SQL interface becomes available, the best I can suggest is for SQL-oriented developers to check out Chapter 2 of a document that I and my colleague Chris created some years ago: http://gradvs1.mgateway.com/download/extreme1.pdf
- GT.M (and of course Caché) is a highly capable NoSQL database. However, no self-respecting NoSQL database these days is deemed complete without a Map/Reduce query interface. I don’t believe it would be particularly tricky to implement this on top of Mumps global storage using the Mumps programming language.
Those who know me will know I do have one other wish: for someone to port GT.M to the Raspberry Pi (http://www.raspberrypi.org/). How cool would it be to have a complete Open Source Mumps environment, complete with EWD and the Node.js gateway all running on $25 worth of hardware? It could probably run a complete VistA system too! A perfect platform for the next generation of developers to discover the amazing talents of my favourite technology.
So, dear Santa, any chance do you think?