How does a system like Hopper compare to the Ethereum Virtual Machine?
How does a system like Hopper compare to the Ethereum Virtual Machine?
the ethereum vm doesn't have any notion of ownership or authorization built in, those are provided whole cloth by application level authors (have fun doing that correctly for every app!). I could opine more than that, but I think thats the most i should say about the quality of the stack vm specification or its semantics :)
As someone who spends a lot of time with Ethereum, I'd love to hear more. Honestly, I almost never deal with the stack level language (only the higher level Solidity). Isn't it possible to write whatever language you like on top of that stack based language?
A programming language is a combination of many components; assembly optimization and target code generation is just one important part of a much larger picture.
I'm only responding critically because I've seen this trope that LLVM is some sort of universal programming language target way too often now. It misleads people into underestimating the scope of the actual problem. LLVM is not a panacea.
If you really want to make your platform programmable from any programming language, invest time into a well designed C API. Your users will thank you.
1. https://github.com/ethereum/EIPs/issues/48#issuecomment-1690...
One thing EVM gets right is being a deterministic state machine -- giving rise to the possibility of "diffed" outputs, which is a feature of Hopper. This makes it amenable to offering a sidelong key-value store that is 100% verifiable, offering fast restarts and (dirty) reads.
Hopper's main goal is to reduce the surface area of computation, in order to focus on the problem of mass-conservation and transactionality. In EVM you have to code all of this stuff yourself. As we've seen, this requires a LOT of code.
EVM also bundles in a notion of accounts, which Juno does not.