Caché is a comprehensive platform that is much more than just a database.
At its core, Caché is a key value hierarchical database that has compact storage, excellent memory caching, fast reads and writes, optimised index traversing, all underpinned with ACID transactions.
A powerful feature of Caché is having unfettered access to this key value storage. It allows developers to come up with innovative solutions to expensive data operations without always having to fit square data pegs into round relational holes.
Caché has a core processing language that compiles down to efficient runtime C code. The higher level language called COS is an object oriented language that is a little unusual at first sight, but easy to learn, and very productive to work with.
Caché has a built in object persistence layer which acts like an ORM. It's not an ORM par se, and does not suffer form the leaky abstractions and complexities that often plague an external ORM. Persistent objects are compiled down into relational like tables, and can be queried using standard SQL. From an ODBC / JDBC perspective, Caché looks and feels like and mainstream relational database.
Being able to store data as objects, tables and/or key value stores makes Caché a unique solution, enabling developers to pick the right storage for the right job, often enabling code driven solutions that could never be achieved by a single database without scalability nightmares.
Caché has a comprehensive set of internal libraries. This includes a great deal of interoperability to connect to and from external technologies. It includes tight bindings for Java and C# and several other programming languages. It also has very strong support for TCP, HTTP, FTP, Mail, SOAP and much more.
One testament to Caché is that Ensemble, a successful Integration engine, is built entirely on top of Caché using mainly its core libraries.
Caché has a built in web gateway with large scale concurrency. Web applications can be developed in a variety of ways. This includes a traditional web page technology called CSP, or with its proprietary web platform called Zen. For a less opinionated approach, applications can be built as pure object solutions, or as a RESTfull back end service.
Caché is not without its peccadilloes and the odd love/hate feature, but then does any technology?
For me, its not the individual parts, be them perfect or imperfect, but its the sum of all these parts that makes it an exceptional platform to work and deploy on.
It is a platform that you have to learn to love at first. It can be easy to install and reasonably quick to figure out, but there will be a few hurdles along the way as you find the best ways to do and not to do certain things. It helps to have an experienced developer around to get the best out of the platform and realise its full potential.
Once you deploy your first greenfield project you will easily get hooked.
In general you will write much less boiler plate code than other stacks. Less code always means less bugs and lower cost of development. Tooling is not perfect, but there are some cool features such as built in code generators that really help churn out generic framework code.
From experience, Caché has been the most reliable database that I have worked on. I've had instances that have been up for years without even the smallest glitch. Even when it does come to an abrupt halt, it typically recovers automatically, even repairing in-flight transactions. Mirroring is simple to set up and very fast to fail over, users rarely even notice. In general, Caché does not need a full time DBA, Caché developers often pick up this role because it has minimal overheads.
On the whole, I feel much more productive with Caché, compared to mixed stack technologies. I always feel confident that my applications will scale and I sleep easy about my deployments.
The COS language is a little imperfect. It could be modernised to keep up with other languages. It could also do with (optional) strong type support, but not everyone who uses Caché will agree with me on this. However, COS is still a solid, optimised language that will deliver all of your needs.
I think the point to be made here is that COS is not a language that will necessarily attract hardcore Java programmers or hipsters into learning COS. Developers with a fresh mind or have a proven record to work outside of a single stack are much more likely to stay for the long run.
Tooling can feel a little underwhelming at times. Intersystems have been making advancements in this area with the release of a new IDE called Atelier. It's too early to say if this is a step forwards or a step sideways, time will tell. That said, good old studio has been a dependable editor all these years and never gets in the way.
There are other things that I could pick up on, but they seem trivial, and as I have said, its not the individual parts of Caché that make it great, its the sum of all its parts.