I’m bringing you less of a deep dive this issue, because this month has involved a relatively menial refactor of the type system implementation. I’ve also been gearing up to announce Raven a little more broadly in April; I realise that I’ve been sending out emails about this project with very little context. I’ll fix that with a public blog post giving a broad overview of the system and its goals, and inviting people to sponsor. I plan to bump the minimum sponsorship amount too, so if you have friends who might be interested, be a good buddy and get them to sign up before Easter.
Raven will still be in a relatively closed alpha, with the repo being sponsors-only for now (and I’ll make sure current members are all added shortly). I want the language to be freely accessible as soon as it can be, but I also want to grow the audience steadily: it’s easy to find shortcomings, and there’s no point having a hundred people hitting the same bug at the same time. Plus this enables my wildly unsustainable approach to documentation, which for the time being involves emailing me for help. Anyone who wants to play with this system right now is going to have to get their hands dirty, regardless of the support available, but as that changes Raven will become ready for a wider release.
My main blocker for the announcement is wanting to write a couple of small sample programs, including a brainfuck interpreter, just to give a flavour. Once that’s all done, my rough plan is to start working on a language server for VS Code, written in Raven itself. This will be challenging but it hits a lot of good notes: simple autocomplete or go-to-definition is a reasonably straightforward but not trivial practice problem; making those tools available (even in a basic way) immediately enhances the user experience; a lot of the work is in important reusable functionality like I/O or JSON parsing; and as the language server evolves into a bootstrapped compiler, we won’t have to re-architect it down the line to get good editor support. (Similar to how the Roslyn project rebuilt the C# compiler with tooling prioritised from the get go.)