And the obvious follow-up: if we want Julia to advance faster as both a language and as an ecosystem of cooperating, reliable libraries, we need some way to encourage developers to gain the relevant experience to become compiler developers that know how to work on Julia and its libraries. Doing so involves a mix of things:
- Better developer documentation for Julia’s internals and library internals
- Better inline code documentation in Julia’s compiler
- Examples and tutorials for leveraging Julia’s codegen and reflection capabilities to do useful things like AD, “from scratch”
- Examples and tutorials for doing development at the level of Julia IR and LLVM IR, from Julia
- High-level and mid-level documentation of how Julia’s key features (JIT, multiple dispatch, etc.) work in practice