Just to add some context, Strudel is TidalCycles ported from Haskell to JS. IMO, Haskell is a much nicer language for this stuff. Hopefully, now that GHC can output WebAssembly, someone can build a web-based music programming environment around the original TidalCycles instead.
> even python might be too far from the CPU to be a good introduction to computing
That depends on what one considers to be the best way to introduce computing. I personally think kids are a lot less likely to be engaged by a bottom-up approach (start with "this is what hardware does") than a top-down approach (start with "you can make cool things with it").
> AIUI, in this case, the major issue is that it is very tempting to try to impose a constraint that all intermediate states the code passes through are semantically valid. However while superficially appealing this turns out to be a crippling constraint.
This really isn't much of an issue in a language with holes as a first class concept, like Agda or Haskell.
It's quite frustrating to use a language that's so close to Haskell, but without being able to use all the libraries you're used to. And I think now that Haskell's own story for web frontend is improving, some of its appeal is fading.
Having used it in production for a while, tooling was poor, particularly IDE support, and anonymous records are in practice less of an obvious win than I expected. Plus I like laziness.