Actualmente existen muchas implementaciones de EVM (Java, C++, Python, Go, etc).
Por ejemplo: usaré Solidity para escribir DApp sobre EVM-Java y EVM-Python, ¿por qué querría usar EVM-Java en lugar de EVM-Python?
¿Por qué y cuándo quieres usar uno sobre el otro?
¿Por qué y cuándo quieres usar uno sobre el otro?
La respuesta de alto nivel es que no lo harías, no te importaría. Es similar a elegir un sistema operativo según el idioma en el que está escrito.
Si todo lo que desea hacer es desarrollar y ejecutar sus propios contratos inteligentes, los clientes en los que se ejecutan esos contratos se abstraen.
Si realmente desea ejecutar su propio cliente, en lugar de solo desarrollar Dapps, puede haber razones por las que algunas personas prefieran una sobre la otra:
Tenga en cuenta, sin embargo, que solo en el último de estos está haciendo una elección basada en el idioma subyacente del cliente.
Usaré Solidity para escribir DApp sobre EVM-Java y EVM-Python,
Como mencioné anteriormente, a) crear un Dapp yb) ejecutar un cliente, son ortogonales. No necesita ejecutar su propio cliente/EVM para implementar su Dapp. Los contratos inteligentes asociados se ejecutarán en todos los nodos de la red, por lo que no puede elegir qué tipos de clientes ejecutarán sus contratos.
Aquí hay algunos argumentos:
Estas son las principales razones por las que nacen otras implementaciones.
Espero eso ayude.
Elegiría uno en función de dos factores (similar a las opciones con cualquier biblioteca)
1) Mantenimiento de la biblioteca.
2) Su comodidad en el uso del idioma.
Tal vez esté creando un proyecto que ejecuta transacciones dentro de su propio código y no desea implementar todo el EVM, por lo que usaría uno de ellos. Por ejemplo, si su aplicación está escrita en Java, tiene sentido usar ethereumJ.
0xgoku
CPereez19