Wow I find this hugely impressive !<p>I'm a big fan of reactive notebooks such as Observable in ~javascript and Pluto in Julia.<p>I've been thinking about something somewhat similar using js_of_ocaml instead of Rust+wasm, but I guess it should be similar. The error messages given by chumsky seem very helpful.<p>A couple questions come to mind:<p>- I see that Datalog isn't turing-complete so you added the possibility to run js inside backquotes. Is it possible to add syntax highlighting to make it easier to read ?<p>- Why does it compile to js instead of wasm ? Wouldn't it be potentially faster ? Is it harder because more low-level ? (I don't know much about compilers)<p>- Since the execution happens inside web workers, I guess it could be more scalable than the other single-threaded alternatives ? Are intermediary results cached ?<p>- What do you think could be the killer use-case for Percival ? Exploratory data analysis of public datasets ?<p>- Could it be possible to embed some number-crunching stuff, like lightweight machine learning ?<p>And finally, what did you enjoy the most while building this ? Were there many pain points ?
I also just wanted to mention here, because I saw that many people only saw the technical details in the GitHub README but not the actual tutorial / demo notebook - please see the website below for an introduction to Percival! This was my bad for not being very clear in the description (you don't need to install anything).<p><a href="https://percival.ink/" rel="nofollow">https://percival.ink/</a>