¿Web3.js o Web3.py? ¿Cuál es la API más madura para interactuar con Ethereum?

Comencé un nuevo proyecto de Dapp y estoy tratando de encontrar la mejor manera para un prototipo rápido (desarrollo de back-end y front-end). Estoy más familiarizado con Python, así que busco todos los elementos que puedo para construir una Dapp en Python, y pregunto si el entorno de Python es lo suficientemente maduro para usarse con Ethereum.

Por madurez, estoy preguntando qué idioma es el más popular con la mejor comunidad, con una buena estabilidad y con la mejor integración en el marco Truffle/Ganache.

Gracias !

"Comencé un nuevo proyecto de Dapp": ¿quieres que los usuarios visiten y usen tu Dapp en el navegador? Luego tendrás que escribir esa parte en web3.js. Si tiene otras tareas de automatización que interactúan con la cadena de bloques, es posible que prefiera web3.py. Es más una cuestión de cómo quieres usarlo que cuál es más maduro.
Sí, quiero algunos usuarios en mi Dapp, a través del navegador web, pero ¿por qué no puedo usar web3.py con el marco web de Python como Django o bottle?
Puede usar web3.py en el lado del servidor, pero solo para algunos aspectos de Dapp. Por ejemplo, los usuarios no podrán firmar transacciones para interactuar con su contrato. Para eso, necesita configurar web3.js en el lado del cliente de Dapp.
No entiendo por qué no puedo usar web3.py en el lado del cliente si uso el marco web Django por ejemplo. ¿No es posible usar web3.py configurando la función que se llama desde el front-end?
Como podemos ver aquí: ethereum.stackexchange.com/questions/13128/… - Podemos usar Web3.js con Node.js, entonces, ¿por qué no podemos usar una lógica similar para python?

Respuestas (1)

Beneficios de web3.js

  • JavaScript es el único lenguaje que se ejecuta dentro de los navegadores web y, por lo tanto, no tiene otra opción al crear interfaces orientadas al usuario.

  • La comunidad web3.js es más grande debido a que JavaScript es un lenguaje de interfaz de facto.

Beneficios de web3.py

  • Tenga en cuenta que también puede usar web3.py en aplicaciones de escritorio, línea de comandos, programación del lado del servidor y entornos de prueba.

  • El código que interactúa con los contratos inteligentes es más fácil de leer y seguir debido al uso de subprocesos

  • Probar marcos y probar nuestros contratos inteligentes con web3.py viene con herramientas más maduras, lo que facilita la escritura de pruebas más legibles y fáciles de mantener.

  • Python es el lenguaje de desarrollo EVM de próxima generación (Casper) y mejor para fines de investigación

Muy interesante respuesta, gracias! Según usted, web3.py parece tener un gran futuro en el ecosistema Ethereum y estoy definitivamente de acuerdo con usted, Python es más legible que javascript. Pero efectivamente, la comunidad es más activa en JavaScript y, según web3.py GitHub, algunos errores aún están abiertos. Pero no importa, intentaré construir mi proyecto con python, ¡veamos si funciona!
web3.py gitter es muy amigable y con poca paciencia obtienes buenas respuestas
web3.py no es compatible eth_subscribe con github.com/ethereum/web3.py/issues/1402