Nicely explained. And love the artwork.<p>I prefer interpreters when playing with the syntax. But once you are serious about taking it further, bytecode is a very good choice because you still maintain control over the execution. Once the code is translated to machine code, you lose that.<p>Running bytecode on a JIT machine can be quite fast even if you skimp on the optimization passes.