Raven documentation
Raven is a pragmatic, typed application language for .NET that makes functional composition, algebraic modeling, and object-oriented design complementary parts of one toolset, with direct access to the .NET runtime and ecosystem.
Raven is under active development. These pages describe the compiler as it works today and identify areas whose design is still changing.
Learn Raven
- Choose a learning path based on your programming experience.
- See Raven in 60 seconds for the language's core ideas in one small program.
- Install and run Raven from a source checkout.
- Follow the language introduction for a guided tour.
- Use Raven for C# developers to translate familiar .NET concepts into Raven.
- Read Transform code with macros for Raven's compile-time transformation model and the authoring path.
- Read Raven for absolute beginners for a slower introduction to programming and the language.
Language and tooling
- The language documentation organizes syntax, features, and common language rules by topic.
- The language feature guides explain everyday Raven constructs through focused examples.
- The language reference documents each feature in depth, including syntax, detailed behavior, and interoperability rules.
- The tooling documentation covers projects, compiler commands, diagnostics, analyzers, distribution, and editor support.
Documentation status
Tutorials and reference pages describe implemented behavior unless they explicitly say otherwise. Compiler implementation notes, investigations, and language proposals remain in the source repository, but are intentionally not part of this user documentation.
Related project: neoCLR
Raven's official target is currently .NET. neoCLR is a related experimental platform exploring its own runtime, metadata and native compilation for Raven. Integration is under development and does not imply that .NET libraries or every Raven feature work on neoCLR. Its project website tracks that work separately from Raven's .NET release and documentation.