Volume 7, Number 1, Pages 3-4

From the Editor
Open Sesame

by Kate M. Schell

The word open is appearing more and more in software articles these days. Ten years ago, software was described as "open" if other systems could access the data they contained. The Open Software Foundation (OSF), now known as the Open Group, was created to facilitate communication between systems that had not been able to communicate with each other before, and a ritzy new club was born.

In the M world, Open M from InterSystems could be installed on Open VMS, and M system to M system communication was designed using the Open MUMPS Interconnect standard, which implemented layers 5 and 6 of the Open Systems Interconnect protocol.

These days the word open appears in the phrase "Open Source." I've noticed a lot of confusion concerning the Open Source movement, so lets work on some clarification of the definition.

Open source means that the source code is available to you and that you are permitted to modify that source code. Open Source software is not necessarily "free" in the context of no charge.

Open source is actually a very old concept in the M world. Much of M has been implemented in M. Take, for example, DataTree, which had a great deal of M source language functionality. Most of the utilities that are used for operations such as listing the contents of a global or a routine, processing dates, and even detecting and repairing database degradation, are written in M, and the source code for those utilities is usually delivered as part of the system. Not all of an M system can be written in M, though. There is always some language that is closer to the machine, and it is uncommon to receive the source code for that portion.

There are some implementors who may be willing to provide source code and a license to modify it under certain restricted circumstances. There are contracts that require M implementors to deposit a copy of their source code with a third party, as a guarantee that the source code will be available to the license holder in the event that the implementor disappears from the scene. Most of these agreements are very limited in scope and do not qualify as Open Source.

There are various forms of software available at little or no cost. These are described using the following terms:

Freeware - No charge distribution of binaries (no source code)

Shareware - Distributed without charge, as binaries, with an obligation for users to purchase at minimal cost

Public Domain - Software that isn't owned or controlled by anybody

Free Software - Distribution of source as well as binaries

Let's review M-based examples in these categories:

Freeware - MSM Workstation from InterSystems, O'Kane's M Compiler, discussed in this issue

Shareware - M executable files created by MSM workstation, such as MailPost, by Dan Baer, and ICPC Zoekalgoritme, by Henk Westerhof

Public Domain - the Department of Veterans Affairs VISTA. (Now, here comes the curve ball: VISTA is also Open Source. You receive the source code, and you are allowed, though not encouraged, to modify it.)

Free Software - Code posted to comp.lang.mumps, such as the utility postings by Ben Bishop and Armin van Harten

Whether code is "open" or "free," there is still the issue of copyright and the ability to charge for the software. Public domain software has no protection of this type. Most other "free" software, and most "open source" software has some sort of ownership stated and copyright protection claimed. The Free Software Foundation (FSF) came up with the concept of "copyleft": the source code is available, it may be used and it may be modified, but costs for the software must be limited to handling charges.

So, why the lecture and the pile of definitions, and why the inclusion in this issue of articles on Apache and Open Source? M appears to be about to enter both categories of software discussed in this editorial: available for free, and available as open source. There are multiple projects addressing these issues.The GUM project has taken on new life with the donation of the source for a product called "FreeMUMPS." Watch M Computing, the MTA web site, and comp.lang.mumps for developments and announcements.

It has been almost a decade since the last MTA implementation tables were published as an annual issue of this publication. With a tip of the hat to my predecessor, Ruth Dayhoff, I'm going to attempt to emulate her and to compile a table of M[UMPS] implementations. I'd like to hear from M system developers around the world. In the next month or so, I'll begin mailing and e-mailing inquiries to known implementors. If you would like to be certain that your organization is on my list, please send email to cschell@JacquardSystems.com, or send a letter addressed to the Editor - M Computing, to the MTA office. Throughout the coming year we'll provide information on implementations, culminating in a table late in the year.


Kate Schell is President of Jacquard Systems Research in Rockville, MD and the Executive Editor of M Computing. She can be reached through email at: cschell@JacquardSystems.com or through the MTA office at 301-431-4070.