Because runtime is hard to understand, leave alone sell.<p>Notably LuaJit, Golang (and before Plan9 and Inferno), Erlang, Haskell, Swift, libc++, etc are writing runtimes. The problem is that it becomes a mess very quickly, unless you are Mike Pall.<p>Also, the idea of a VM isolated from an OS is a marketing meme  (how could a mere OS process be isolated from an OS?) So, smallest, thin-layer-over-an-OS  runtime - approach pioneered by Inferno, is a much saner and efficient one.<p>Compilation to machine code + thin layer runtime + native ABI based FFI is still the hardest and still the best way to make a runtime since times of Common Lisp.<p>I am not writing runtimes because I am not Mike Pall, not a Google employee and no one  pays me to do so.))<p>BTW, marrying, say, Arc (or femtolisp, or a sane subset of scheme) to LuaJIT runtime could be a nice project, to have a <i>really</i> powerful scripting language.