What is Martian?

Martian is a language and framework for developing and executing complex computational pipelines.

  • Designed for simplicity: simple to learn, simple to develop, simple to run, and simple to debug.
  • Allows combination of software components written in any language into a single pipeline.
  • Powerful support for scaling computationally intensive pipelines from standalone machines, to clusters, to cloud.
  • Rich support for managing the full lifecycle of complex, compute and data-intensive pipelines.

Motivation & Design Goals

  • Simple: things just make sense and just work, no boilerplate.
  • Manages complexity: like any good developer tool, Martian seeks to reduce cognitive load and enhance tractability.
  • Lightweight: compact toolchain, no separate database, web servers or other components required.
  • Familiar: language is designed to be familiar and eschews esotericity.
  • Human-friendly: consistent structure, easy navigability, and rich provenance metadata.
  • Machine-friendly: well-defined machine-parseable interfaces that support loosely-coupled integration.

What Distinguishes Martian

  • Not an extension of an existing language, therefore isn’t stuck with leftover syntax.
  • Does not require a database or persistence mechanism other than a filesystem.
  • Designed to manage complexity and reduce developers’ cognitive load.
  • Designed for robust user experience in diverse, heterogeneous compute environments.