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.
What it is
Section titled “What it is”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.
Who it is for
Section titled “Who it is for”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.
Where it is
Section titled “Where it is”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.