First exposure to Caché
I’m working with a client who is considering a migration from Universe to Caché and I needed to get on the fast track to get familiar with the MV hooks that have been built in. Here are some comments.
Technical
- Installation is simple and the environment is easy to use.
- I invested around 15 hours of time reading docs and poking around the environment to get familiar with it, run code, etc. This was in complete isolation. I’m sure having someone to guide me through the process would have cut this down to some small number of hours but I like to learn at my own pace.
- The environment is quite familiar to Pick people but I very quickly formed an appreciation for the Caché features, the object-oriented syntax, and the near-transparent blend between these environments.
- Almost all code converts immediately and the rest (that x% that we all expect in a migration) is mostly handled with option flags or adjustments for code that took advantage of platform-specific nuances.
- There are flavor switches to emulate just about every MV platform in this market. How well they do each I can’t say but it’s obvious that they intend to support a very broad scope of existing applications.
- I enjoyed working with the software and look forward to more.
- I think the software and docs need some tweaks but they’ve done a great job with it so far and they’re obviously eager to make appropriate changes to satisfy their target audience (you).
- Caché by itself is already a powerful environment, so adding MV to it is sort of like putting it on steroids.
Business
- InterSystems is very eager to ensure their clients are happy with this. I spent three days with their people in a working environment and was impressed with their dedication.
- I really like the idea that MV is not a bolt-on for this environment. It’s truly integrated into the Caché product. This needs to be emphasized. This is not just a migration effort, and calling this MV Caché or even Caché for MV is no longer valid. They are extending Caché for everyone to use the MV hooks, including non-MV people. MV BASIC can be invoked from the Caché shell just as easily as Caché features can be invoked from the MV shell. Their literature for their other products mentions Multivalue as just another database type right along with relational. This is important because it lends credibility to MV as first-class citizen in the database market, and that will make it much easier to sell MV apps running in this environment.
- As always, InterSystems is a major marketing engine in ways that none of the MV companies are. Any company that partners with InterSystems will derive benefits from this value-add. The relational world doesn’t cringe at the mention of Caché as they do with "the P word", and that should make the marketing and sales process easier for MV vendors who want to sell apps to new markets.
- I like their tempered approach to this market. They aren’t jumping into this market like cowboys with a white hat. They’re taking their time, employing the right people, making sure this is done right. They could easily have made many mistakes in their approach to this endeavor. I see places where they could be doing a little better in approaching this market, but in terms of their business demeanor and their technical offering I think they’re doing well – and personally I appreciate a company that has a clue about business.
- For any VAR considering migration I think this environment bears investigation. I’m not suggesting or discouraging full migration, but at least get familiar with what they have to offer, compare it to what’s available and what’s needed in this market, and maybe consider a port as just another supported platform.
I expect to go to the InterSystems DevCon in March. I think the best approach is for MV people to get a taste of the environment and then to get immersed at DevCon. By the time that conference comes along, people should have some familiarity with the environment so that they know what sort of questions they want to ask, hit the right sessions, and talk to the right people.
Our local Pick user group, CDBMA intends to host a hands-on session with this software at the end of this month. The Seattle Area Pick User Group (SAPUG) is also having InterSystems present at their local meeting soon. More details will be available here soon. Contact me if you’d like InterSystems to present to your local group. I can put you in touch with the right people.
I don’t know where my path will lead for this software but I do expect to spend a lot more time with it. I’ll volunteer to be a familiar contact point for MV developers who want more info. I should have sprinkled this post with links but I don’t have time at the moment. I just thought I’d share some thoughts and I’ll post more later. Heck, I might create a new category just for Caché related to MV. Comments and questions are always welcome of course.
One of the first questions might be "how do you get that acute E in Caché?" The answer is Alt+130. Type c-a-c-h, then hold down the Alt key, hit 130 on your numeric pad, then let go of the Alt. So now people will know you’re talking about a database and not disk or RAM cache.
See? We’re getting to be experts with this stuff already!
2 thoughts on “First exposure to Caché”
Leave a Reply
You must be logged in to post a comment.
I hope the “flavor” switches don’t turn off features like UniVerse’s COMO command, and type 19 files, which D3 doesn’t have.
I don’t believe flavors turn off features, but if the functionality required for a feature is changed then another flavor-specific command may not work. I believe COMO works no matter the flavor.
BTW, I believe D3 v9 now has COMO, or at least it’s in the queue because I requested it. 🙂
Also, D3 does have files similar to type19. You don’t create a DIR file in D3, you just ensure that you can read/write from a host OS path, then setup a q-pointer like this:
01 q
03 /tmp/somepath
or
01 q
03 c:\abc\def
This is called OSFI and I’ve written about it extensively, split up between this blog, the TigerLogic forum, and comp.databases.pick.
You can also open directories directly from basic:
OPEN “D:\MYPATH” TO FV…
or use paths from TCL:
SORT /home/me/foo WITH A1 NOT “X” …
Enjoy!