Home

Awesome

<h1 align="center">ditto</h1> <p align="center"> A small, pure functional language that targets other languages. <br><br> <a href="https://github.com/ditto-lang/ditto/releases/latest"> <img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/ditto-lang/ditto"> </a> <a href="https://github.com/ditto-lang/ditto/actions/workflows/ci.yaml"> <img src="https://github.com/ditto-lang/ditto/actions/workflows/ci.yaml/badge.svg?branch=main" alt="CI status"> </a> <a href="https://github.com/ditto-lang/ditto/actions/workflows/security-audit.yaml"> <img src="https://github.com/ditto-lang/ditto/actions/workflows/security-audit.yaml/badge.svg?branch=main" alt="Security audit status"> </a> <br><br> <img src="./images/hello-ditto.svg" alt="Hello world program in ditto"> <br> <em>Syntax highlighting coming soon</em> </p>

Elevator pitch ⏱️

Ditto is a mashup of my favourite features from other languages.

It's functional, statically typed, and pure. But unlike many other languages in this category, it also aims to be ruthlessly simple - the syntax is small and the type system is low power.

It has no runtime of its own. There are far more mature compilers and ecosystems out there that I want to make use of, and would be naive to try and replace. So ditto can be thought of, instead, as an alternative syntax for other tools.

Ditto is not just a compiler, it's the language swiss army knife. Package management, linting, formatting, etc, are all handled by the ditto executable. Although this violates the Unix philosophy it is my hope that it makes for a better developer experience. Because developer experience matters.

Disclaimer ⚠️

Ditto is still pre-v0.1 and very unstable. It is only for the curious at this stage.

Design notes