Later I gave it a try. A few years back I had an opportunity to write a little JS code and, son-of-a-gun, I liked it. It felt comfortable. Were it not for things like closures, it might even seem as straight-forward to write as BASIC and Fortran. Why did we move beyond procedural languages again? No, don’t answer, I’m not in the mood for that discussion.
In Java it might be
Dog myDog = new Dog();
In COS if Dog were delivered for use by us in programming, that would be
Set myDog = ##class(%SystemPackage.Dog).%New()
This is but a small hint at how funky characters are strewn throughout the language. Before I give any more of my two cents about COS, I better note that I am very happy working with InterSystems and with the people who work there. The MV, Zen (AJAX), SQL, and other teams have been very helpful. They hire very intelligent people, many with more patience than I will ever have. The MV implementation is solid, especially for being the newest major implementation of MultiValue. I’ll admit that I’m sucking up (hey, they know the answers to my questions and I’m gonna continue to need their help), but I am not exaggerating.
Anywhere in Cache’ that a developer can write COS, we should be able to write MVBASIC instead, in theory. This has mostly panned out, except in some places in Zen, the AJAX framework, such as those where the code being written is a parameter value that must be written in COS. I didn’t want to have any COS in our source code, but there is a little bit at this point.
Well, shucks. I have been looking at COS code for more than a year now and I hate to say it, but I like it even less than I did when I started. It seems to be the reason why in Zen “everything compiles and nothing runs,” as one developer put it. It is also dog ugly (no offense to canines), with tons of non-alpha special characters to make the language far from Grace Hopper’s vision for computer languages, I suspect.
I’m guessing I should go for some immersion therapy and really try to learn it rather than sticking with my avoidance stance, but for now I’m putting “MUMPS skills” in the same category as great artistic skills–I’m not able to drum them up myself, so someday I might have to pay for them.