Reference Page

Chris Bonnici's
M Reference Page










WHAT IS M?

M is a procedural, general purpose language with well developed database handling capabilities. Many M implementations are interpreted, yet one can also find M compilers. It is a complete environment in that both data and programs lie within one or more operating system files. The language allows untyped variables, and has powerful dynamic array handling features that can store both numbers and letters. It's string handling commands are well developed. Indirection allows data held in string variables to be interpreted at run-time as if they were commands.

M has inbuilt multiprogramming and multitasking support. Being an encapsulated environment, a typical M implementation would contain various manufacture routines that allow users to maintain the data and program files (called Globals and Routines), and perform certain "M operating system" tasks. Development tools and other programs that are normally necessary to operate in a multi-user environment are included as standard.

Today, besides the text based versions of M (typical of all the languages of its era started off like this), M supports GUI's and has various third-party products that increase it's functionality and usability. Check the Links Page for more about these products. The M community is constantly growing and this is depicted by the number of job vacancies that are posted. M is used as a development platform by organizations in all branches of business.



¦  Go to the beginning  ¦ Scroll Down  ¦  Go to the beginning  ¦ Scroll Down  ¦





HOW DID IT COME ABOUT?

MUMPS is one of a languages that got created in the decade spanning the late 50's to the early 70's. Although hundreds of languages got written (as they still do today), many remain laboratory bound. Others attempt a go at the commercial scene but simply don't make it (as is the case with failed actors and musicians). Others are niche languages suitable for only one particular (or a limited) purpose and are therefore used by a small roup of people.

MUMPS is a general purpose language comparable to the likes of C, COBOL, PASCAL, FORTRAN and BASIC. Placing MUMPS of a gauge with languages that came out during those score years, one can say that it is seated towards the lower end of scale with regards to popularity
(see FROM MUMPS 2 M).

MUMPS stands for Massachusetts General Hospital Utility Multiprogramming System. As the acronym demonstrates, Massachusetts General Hospital sponsored it's creation. Dr. Octo G. Barnett (who is still at MGH) obarnett@warren.med.harvard.edu headed the MGH group listing down the specifications for the language. Dr. Barnett wanted a better system for the computer laboratory system, than the one in use. A PDP-7 was the hardware on which the language would execute. In 1966/67 the language was implemented.

Dr. Barnett's group split up and by 1969 there was Meditech (founded by Dr. Neil A. Pappalardo and Dr. Curt W. Marble) and Decision Systems Group (headed by Dr Robert A. Greenes greenes@harvard.edu). During this period MIIS was also providing a commercial version of M. This indicates that the market for M had been created, although probably it was restricted to the medical sector.

As MUMPS grew and expanded there seemed to be a need for the various MUMPS users to get together, and the MUMPS Users Group (MUG, which later became the MTA) was born. Local user groups also came into existence from all around the world in a drive to promote M locally and meet with M folk living close by. MUG had its first meeting in December of 1972 in Boston, and was attended by 40 people. As the years crept on, the MUG meetings grew, and more and more people started using more and more different dialects of MUMPS.

Finally, to try to guide this development, the MUMPS Development Committee was formed (intimately connected with MUG from the start). They hammered out their first standard in 1975, and it was approved by ANSI in 1977 as the third computer language to gain American National Standard status.



¦  Go to the beginning  ¦ Scroll Down  ¦  Go to the beginning  ¦ Scroll Down  ¦





FROM MUMPS TO M

Many feel that one of the major drawbacks of M were not it's capabilities, but it's original name. Having been born out of the needs of doctors, and carrying a name that is better know from it's medical aspects, the industry opted for a change of name. Reasons for this can be summarized as:

  • The name depicts a medical disease familiar with many, contagious and unpleasant.
  • Having a medical name and originating from the medical industry, many felt that this causes (new) users, unfamiliar with the language, to get the impression that it is limited to the medical industry. This false impression may severely restrict the use of this language in other industries. If you think it's only good in a hospital, you wouldn't dream of using it to write an accounting package. (Would you use a statistical package to write such a system?).
  • It could also be that the choice of a single letter was to get a free ride from the popularity of C, a single letter compiler which is very popular.
M is also known as M-Technology, which some say should be the formal new name of MUMPS.

And then they say, "What's in a name?"



¦  Go to the beginning  ¦ Scroll Down  ¦  Go to the beginning  ¦ Scroll Down  ¦





M CHRONOLOGICAL HISTORY

1969 The first two papers written about M:
1. Greenes RA, Pappalardo AN, Marble CW, Barnett GO; "Design and implementation of a clinical data management system"; Comput Biomed Res; 2:469-485
2. Greenes RA, Pappalardo AN, Marble CW, Barnett GO; "A system for clinical data management"; AFIPS Conf. Proc Vol. 35. Montvale, New Jersey: FJCC, AFIPS Press; 207-230
1974 Hoskyns moves into M. It implements one of the earliest M system in the UK on a PDP 11.
1975 First standard created. It lists the minimum which would be compatible between the different implementations, and assured portability across different hardware platforms.
1977 The 1975 standard gets approved by ANSI (American National Standards Institute). This gives rise to the ANSI M Language standard. It is the third language to gain ANSI accreditation.
MUG-Europe meets for the first time in Amsterdam.
1978 InterSystems Corp. founded by Terry Ragon.
The first M implementation goes live in Finland.
1980 Terry Ragon wrote an official request to the MUMPS Development Committee, requesting a change of name from MUMPS to M.
Micronetics was formed by Richard T. May, David J. Marcus, and Bernard S. Schoch.
1982 MUG-UK's first meeting takes place in London.
1984 MDC/ANSI standard revised to incorporate language enhancements and cleaned up and formalized the text of the standard.
1986 M approved as a Federal Information Processing Standard (FIPS).
Cybertools incorporated by Mark Roux.
1987 Extensao Software founded in Rio - Brazil.
The New England M Users Group is the first user group dedicated to this programming language.
1988 KB Systems, Inc. formed by Richard Sulzer and David Middleton.
1989 (Feb 2) MUG Finland holds its first meeting in Helsinki.
(Mar 8) German MUG is formed.
(September) Atlas Development Corporation founded by Robert Atlas.
1990 Added block structured features, extrinsic variables and functions, encapsulation features enhanced looping commands and improved database handling.
M accepted as an international standard by the International Standards Organization (ISO).
1993 The name M (or M-Technology) becomes an officially used nickname of MUMPS. Although there was and still is a lot of debate on what the official name should be, is seems that today the majority of those who produce and provide M-related services and products have adopted the new name. Many user groups have also renamed themselves to reflect the new name.
The FIPS standard is revised.
1995 The Standard added a suite of M-related standards: language standards, Open M Interconnect, binding, M/X Window System binding, M TCP/IP binding, M Windowing API, transaction processing and error processing.
Extensao changed its name to X-Tension Software Corporation and went global through its office in Florida.
1996 (April) Chris Bonnici's M Home Page is born.
(December) The first issue of M Web Magazine goes online.
1998 (June) Micronetics acquired by Intersystems.



¦  Go to the beginning  ¦ Scroll Down  ¦  Go to the beginning  ¦ Scroll Down  ¦





M PAPERS, BIBLIOGRAPHIES, ETC

This section houses some of the papers directly related to M.

Design and Implementation of a Clinical Data Management System
System Performance: A Benchmark Study on MUMPS and Other Systems
Software Engneering, Programmer Productivity and System Performance
A System for Clinical Data Management



¦  Go to the beginning  ¦ Scroll Down  ¦  Go to the beginning  ¦ Scroll Down  ¦





THANK YOU

Finding information about M is very difficult as there is so very little of it, especially photographic evidence (I couldn't find any). This page still needs further refining. Refining must come in the form of greater depth and breadth of details presented here. If anyone can contribute more information to this page please drop me an e-mail, attaching or including relevant material.

Revision (June 1996):Thanks to
Arthur B. Smith for the info and tips. Some of the data in this page came from the M Technology and MUMPS FAQ.
Revision (July 1996): All alterations are accredited solely to Jon Diamond. The wealth of information (and tips) will enhance the quality and usability further.



Chris Bonnici

Add/correct information? All info accredited.


Last Updated: 4 April 1999

The Index or Go UP
1