Optimizing the Local Development Environment

Hi folks. This is a follow-up to our Developer Tooling Working Group session today where we discussed ways to improve local development and gave you a glimpse into one of early stage projects - the Motoko Dev Server.

There were many questions that came up during that call. I’ve asked @rvanasa to field some of those questions and shed some light on the design and technical details. I’ll also ask @matthewhammer to join this discussion, since he can provide some background on the virtual machine that powers this functionality.

@paulyoung @lastmjs care to start?


It would be great to understand a step down from the highest level how the dev server is going to work.

What I want to know most is how such a dev server could be used for Rust, Python, or TypeScript canisters. I’m unclear on how the Motoko server will get around the Candid typing requirements, if I could understand that more it might become clear how to do this with Python and TypeScript.

I think I was mostly interested in:

  1. If it was possible to use the dev server and maintain type checking in Motoko.
  2. If the dev server could be generalized to other languages on the IC.
  3. How the dev server was different to the emulator (Haskell implementation?) and some other similar efforts.
  4. Concerns around differences between the dev server and the replica.