Skip to content

About Emerald

I made Emerald because I wanted one language I was excited to use.

I’m Anthony, and I’ve taught computer science since 2015, mostly to high school students, in several languages. I kept running into the same trouble. Python is easy to start with, but I find it bland to write, and because it is dynamic it leaves a lot of mistakes for you to find yourself. Java gives students types and speed, but asks them to take in a great deal of ceremony before they can print a word. Ruby is a joy to write, but optional parentheses and gets.chomp for input confused my students every year. I admire C#’s design. None of them was the language I wanted to teach, or the one I wanted to use.

So Emerald tries to be simple without being simplistic, expressive without being clever, and typed without being tedious. Where a professional sees a wart that costs speed or maintainability, I see one that costs a student an afternoon, and I have tried to smooth those away.

Emerald is a statically typed, general-purpose language with a small set of ideas that fit together, so that what you learn in one part of the language holds in the rest. Types are inferred, so you rarely have to write them, and your whole program is checked before it runs. When something is wrong, the message says what, where, and what to try.

It comes with the tools you would otherwise have to find and learn separately: a formatter, a test runner, a REPL, a language server, and a standard library for files, dates, JSON, HTTP, and more.

Anyone who wants a friendly language they will enjoy writing. I am quietly building it with classrooms in mind, because I would like to see more variety in the languages students meet first than the two most of them get today. But I have built it to be a language people want to keep using, not only to learn from.

Emerald is in active 0.x development. It is ready to explore, and the language and library will keep changing between releases. The roadmap says what is done and what comes next.

Emerald is free and open source, and its code is on GitHub. To try it, install Emerald and write your first program.