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.