Forum Discussion
Re: Welcome to the Blockchain AMA!
- Mar 15, 2017
For Ethereum specifically, the big requirement is that your programs compile down to Ethereum Virtual Machine (EVM) opcodes. Theoretically there's no reason you couldn't write a C# compiler for the EVM, though you wouldn't have access to a lot of the standard libraries due to additional limitations of the system - a big one is that all code has to be nondeterministic, because if different nodes get different results, you will have a consensus failure.
Right now the major scripting language for Ethereum smart contracts is Solidity, which is syntactically similar to Javascript. Research is ongoing into other languages that target the EVM.
If you're interested in using C# in a blockchain context, the NEthereum libraries work well for integrating traditional C# programs with an Ethereum deployment. In the future, you will also be able to use C# as the language for Cryptlet development, enabling you to perform off-chain computations in C# and writing blockchain transactions as a standardized data object.
For Ethereum specifically, the big requirement is that your programs compile down to Ethereum Virtual Machine (EVM) opcodes. Theoretically there's no reason you couldn't write a C# compiler for the EVM, though you wouldn't have access to a lot of the standard libraries due to additional limitations of the system - a big one is that all code has to be nondeterministic, because if different nodes get different results, you will have a consensus failure.
Right now the major scripting language for Ethereum smart contracts is Solidity, which is syntactically similar to Javascript. Research is ongoing into other languages that target the EVM.
If you're interested in using C# in a blockchain context, the NEthereum libraries work well for integrating traditional C# programs with an Ethereum deployment. In the future, you will also be able to use C# as the language for Cryptlet development, enabling you to perform off-chain computations in C# and writing blockchain transactions as a standardized data object.
Thanks for the great answer. Although I'm not very clear why a JavaScript like language would do yet C# can't? Since C# is my first language, I would prefer it to be where I should be coding. Defintely not going to learn another JS like nightmare.
I thought Ethereum is open source right? So that maybe we can just start to get C# in it, as early as possible.
Is there good paper/documentation regarding EVM/opcodes and their distribution model? From a programmer's perspective.