Announcing Grain v0.6 Emmer—new module system, labeled+default arguments, and much more!

A modern web staple.

Grain is a new language that puts academic language features to work.

Let's Go

Powered by WebAssembly

Enter the future. Grain compiles directly to WebAssembly, taking full advantage of its speed and efficiency.

Sensible Types

No runtime type errors, ever. Every bit of Grain you write is thoroughly sifted for type errors, with no need for type annotations.

Functional Yet Flexible

Grain has its roots in functional programming, but is flexible enough to accommodate different programming styles for various applications.

Our Vision

Grain aims to modernize innovative features from functional and academic programming languages and bring them to the masses. Many languages have had wonderful ideas, but they have ultimately been dismissed as esoteric or too difficult to learn and, consequently, have struggled to rally a large community around them. Grain hopes to bring new life to these ideas and present them in an accessible form that’s easy to use and understand.

Want to be a part of Grain’s development?

Whether you want to dive into some code, write some docs, give us your ideas, or just come hang out, we’ve got a place for you.

View the Contributing Guide Join Our Discord Server