Est. 1997 Intermediate

ObjectScript

InterSystems' object-oriented superset of ANSI MUMPS, the implementation language of the Caché and IRIS data platforms that quietly powers a large share of the world's electronic health records.

Created by InterSystems

Paradigm Multi-paradigm: object-oriented and procedural, with embedded SQL
Typing Dynamic and weak at the language level; optional static types on class properties and method signatures
First Appeared 1997
Latest Version Bundled with InterSystems IRIS (2026.1 release line, 2026); also shipped in Caché through the 2018.1.x line

ObjectScript (historically Caché ObjectScript) is the native programming language of the InterSystems data platforms — first Caché, and now InterSystems IRIS. It is, at its core, a functional superset of the ANSI-standard MUMPS language: any valid MUMPS routine runs unchanged, but layered on top is a full object system, embedded SQL, a macro preprocessor, and modern C-style control flow. ObjectScript is rarely discussed in language-popularity surveys, yet it quietly underpins a remarkable amount of critical infrastructure — most visibly the electronic health records of a large fraction of the world’s hospital patients.

ObjectScript is unusual among programming languages in that the language and the database are inseparable. Its persistent globals — sparse, multidimensional, B-tree-backed arrays — are simultaneously a data structure in the language and the on-disk storage of the database. There is no object-relational mapping layer to cross; the data model is the language.

History & Origins

ObjectScript’s roots reach back to MUMPS (Massachusetts General Hospital Utility Multi-Programming System, also called M), developed at Massachusetts General Hospital in the late 1960s for managing patient and laboratory data. MUMPS pioneered a model in which a built-in, hierarchical, schema-light database was woven directly into the programming language.

InterSystems, founded in 1978 by Phillip T. (Terry) Ragon, spent its first two decades as a MUMPS-technology company. Through a series of acquisitions — DTM from DataTree (1993), DSM from Digital Equipment Corporation (1995), and MSM from Micronetics (1998) — it consolidated the fragmented M-implementation market and became the dominant vendor in the space.

In 1997, InterSystems brought these threads together in Caché, a new product whose native language, Caché ObjectScript, extended MUMPS into the object-oriented era. The goal was pragmatic: preserve the proven performance and the enormous installed base of MUMPS applications (especially in healthcare and finance), while giving developers objects, SQL, and web capabilities that the bare MUMPS standard lacked. Crucially, backward compatibility was absolute — Caché could run legacy ANSI MUMPS routines without modification.

Design Philosophy

ObjectScript is shaped by a single unifying idea: the database and the language are one system. Three principles follow from it.

  • Persistence is native, not bolted on. A global (a variable name prefixed with ^) is automatically stored on disk and shared across processes and sessions; an ordinary local variable lives only in the current process. The same subscript syntax addresses both. This means a developer can build a persistent, indexed data structure with nothing more than assignment statements.
  • Backward compatibility is sacred. Because so many mission-critical systems were written in MUMPS, every generation of the language has remained a strict superset of what came before. New, friendlier syntax was added alongside the terse MUMPS originals rather than replacing them.
  • Pragmatism over purity. ObjectScript freely mixes paradigms — terse procedural MUMPS commands, an object class system, and embedded SQL — within a single method, choosing whatever expresses the task most directly.

Key Features

  • Multidimensional globals. Sparse, B-tree-backed arrays addressed by arbitrary subscripts (numbers or strings), persisted transparently to disk. They serve as the universal storage substrate beneath objects, SQL tables, and raw data alike.
  • An object system. Classes (.cls) with single and multiple inheritance, properties, methods, parameters, and relationships. Persistent classes are automatically projected as both objects and SQL tables over the same underlying global storage.
  • Embedded SQL. SQL statements can be written inline inside ObjectScript methods (&sql(...)), and the same data is reachable through objects, SQL, and direct global access simultaneously — a model InterSystems calls multi-model or “Common Data Plane.”
  • A macro preprocessor. Lines beginning with # define macros, include files, and conditional compilation, expanded before the code is compiled.
  • Dual syntax styles. Classic MUMPS allows abbreviated commands and significant whitespace (s x=1 for SET x=1); modern ObjectScript adds C-like braces (if {...} else {...}, for {...}) and relaxed formatting for readability.
  • A rich function library. Built-in functions — many inherited from MUMPS, conventionally prefixed with $ (e.g. $PIECE, $ORDER, $LISTBUILD) — provide string parsing, list manipulation, and ordered traversal of globals.

A small taste of the dual nature of the language:

/// A persistent class is also a SQL table.
Class Demo.Person Extends %Persistent
{
    Property Name As %String;
    Property Age As %Integer;

    ClassMethod Greet(name As %String) As %String
    {
        // Modern brace syntax alongside classic $ functions
        Set greeting = "Hello, " _ name _ "!"
        Write greeting, !
        Return greeting
    }
}
// Globals: assignment is persistence
Set ^Patient(12345,"name") = "Ada Lovelace"
Set ^Patient(12345,"dob")  = "1815-12-10"
Write ^Patient(12345,"name")   // -> Ada Lovelace

The _ operator above is string concatenation, and the trailing ! in a Write is a newline — both inherited directly from MUMPS.

Evolution

ObjectScript evolved by accretion rather than reinvention. The original Caché releases in the late 1990s introduced the object layer and embedded SQL over the MUMPS foundation. Over the following two decades, InterSystems layered additional platforms on the same engine — Ensemble (2003) for integration and messaging, and HealthShare (2006) for health informatics — each using ObjectScript as its implementation language.

The largest shift came with the IRIS Data Platform, announced in 2017 and generally available from 2018. IRIS unified the database, interoperability, and analytics capabilities that had previously been split across Caché and Ensemble, and embraced containers and cloud-native deployment. Importantly for developers, IRIS kept ObjectScript intact: code and globals migrated from Caché with strong continuity, preserving the decades-long backward-compatibility promise even across the product transition.

Tooling modernized too. Where development was once done largely inside InterSystems’ own Studio environment, recent years brought first-class support for Visual Studio Code through the InterSystems ObjectScript extension, along with server-side source control and Git-based workflows.

Current Relevance

ObjectScript is a textbook example of a “boring but essential” technology: invisible to most working programmers, indispensable to the institutions that depend on it. According to DB-Engines rankings, Caché held the title of the most popular object-oriented DBMS continuously from roughly 2013 until it was surpassed in that category by InterSystems IRIS around 2023 — a handover within the InterSystems family rather than a defeat by an outside competitor.

Its center of gravity remains healthcare. Because Epic Systems and the U.S. Department of Veterans Affairs’ VistA are built on this lineage, ObjectScript and its MUMPS core sit beneath the medical records of an enormous number of patients. Beyond healthcare, the platform appears in financial services, logistics, and large-scale scientific data processing such as the European Space Agency’s Gaia star-mapping mission.

InterSystems remains a substantial, privately held company — surpassing $1 billion in annual revenue in 2023 — and continues active development of IRIS and ObjectScript, including ongoing work to position the platform for analytics and AI/vector workloads.

Why It Matters

ObjectScript is a bridge across nearly six decades of computing. It carries the MUMPS philosophy — that a database and its programming language should be a single, seamless thing — out of the 1960s and into modern object-oriented, SQL-enabled, containerized systems, without ever breaking the code written along the way. Few languages have sustained such uncompromising backward compatibility for so long while remaining commercially central.

Its lesson is twofold. Technically, it shows how far the schema-light, multidimensional global model can scale when it is the foundation of a language rather than an afterthought. Institutionally, it is a reminder that the software running the most consequential systems in the world — the records of who is sick, who is owed money, where the stars are — is often written in languages the wider industry has barely heard of. ObjectScript matters not because it is fashionable, but because so much depends on it.

Timeline

1978
InterSystems is founded by Phillip T. (Terry) Ragon in Cambridge, Massachusetts, initially building and selling MUMPS (M) database technology — the lineage from which ObjectScript would later grow.
1993
InterSystems acquires the DTM (DataTree MUMPS) implementation from DataTree, the first of several MUMPS technology acquisitions that would be consolidated into a single product.
1995
InterSystems acquires DSM (Digital Standard MUMPS) from Digital Equipment Corporation, further strengthening its position as the dominant M-technology vendor.
1997
InterSystems launches Caché, with Caché ObjectScript as its native language. ObjectScript extends ANSI-standard MUMPS into an object-oriented language while retaining the ability to run existing M routines unchanged.
1998
InterSystems acquires MSM (Micronetics Standard MUMPS), absorbing the last of the major rival M implementations and migrating those customers toward Caché and ObjectScript.
2003
InterSystems releases Ensemble, an integration and interoperability platform built on the same Caché engine, extending ObjectScript's reach into application integration and messaging.
2006
HealthShare, a health informatics platform, is introduced on the Caché foundation — cementing ObjectScript's deep association with healthcare data and electronic medical records.
2017
InterSystems announces the IRIS Data Platform, a unified successor to Caché and Ensemble that combines the database, interoperability, and analytics in one product while keeping ObjectScript as a core development language.
2018
InterSystems IRIS Data Platform reaches general availability (2018.1). ObjectScript runs on IRIS with full continuity from Caché, and InterSystems begins offering containerized and cloud-native deployments.
2023
Caché, long ranked by DB-Engines as the most popular object-oriented DBMS, is, by around this time, overtaken in that category by InterSystems IRIS — reflecting the platform shift while ObjectScript remains the shared implementation language of both.

Notable Uses & Legacy

Epic Systems

Epic, the largest vendor of hospital electronic health record software in the United States, has built its EHR on InterSystems technology for decades and adopted the IRIS Data Platform for newer releases. ObjectScript and the underlying global data model sit beneath the medical records of a very large share of U.S. hospital patients.

VistA (U.S. Department of Veterans Affairs)

VistA, the long-running health information system of the U.S. Department of Veterans Affairs, is written in MUMPS and runs on M implementations including InterSystems Caché, making ObjectScript's MUMPS core part of one of the largest medical systems in the world.

European Space Agency — Gaia mission

The European Space Agency selected InterSystems Caché to help manage the enormous data-processing demands of the Gaia mission, which set out to map roughly a billion stars in the Milky Way in three dimensions (announced around 2013).

Financial services

InterSystems' data platform has been used in high-throughput financial environments — including brokerage and trading firms such as TD Ameritrade — where ObjectScript's low-overhead, multidimensional global storage is reportedly well-suited to transaction-heavy workloads.

Healthcare integration with HealthShare

Health information exchanges and hospital networks use InterSystems HealthShare, built on the same engine, to share and reconcile patient data across organizations — with ObjectScript classes implementing the transformation and routing logic.

Language Influence

Influenced By

MUMPS C SQL

Running Today

Run examples using the official Docker image:

docker pull intersystems/iris-community:latest-em

Example usage:

docker run --rm -d --name iris -p 1972:1972 -p 52773:52773 intersystems/iris-community:latest-em
Last updated: