WEB3DEV Español

Delia Viloria T
Delia Viloria T

Posted on

¿Hardhat o Truffle? Cuál elijo como desarrollador principiante en Blockchain

En la vida de un desarrollador blockchain, una de las dificultades más dolorosas es encontrar el framework más adecuado para él/ella. Las personas pasan días o semanas intentando encontrar la herramienta más adecuada para ellas.

De forma similar, en el mundo del Blockchain, uno de los mayores debates es escoger entre Hardhat o Truffle.

Estos ambientes de desarrollo ayudan a los desarrolladores a administrar muchas de las tareas que son inherentes al desarrollo de aplicaciones descentralizadas y de los smart contracts.

Si estás apenas comenzando tu carrera en el mundo del blockchain, al igual que nosotros, puede que desde hace algún tiempo, te estás preguntando cuál elegir: Hardhat o Truffle, entonces ¡estás en el lugar correcto! 🥳🥳

En los párrafos siguientes, discutiremos ambos frameworks y haremos una pequeña comparación entre estos dos tipos.

Herramienta Hardhat

Herramienta Hardhat

Hardhat es un entorno de desarrollo para Ethereum diseñado para desarrolladores que permite realizar tareas frecuentes.

Mucho más que sólo implementar (deploying) y ejecutar pruebas, Hardhat también ofrece algunas funcionalidades adicionales que lo hacen más potente y único.

Consideremos estas funcionalidades una a una.

1. La Red Hardhat

El framework Hardhat ya viene con la red Hardhat incorporada, un nodo Ethereum de red local, diseñado para el desarrollo que incluye muchas funcionalidades tales como: mensajes de error automatizados, forking de la red principal y modos de minería.

De esta forma, si utilizas Hardhat, entonces por defecto ya estás usando la red Hardhat. Esta mina un bloque con cada transacción recibida en el orden y sin ningún retraso.

2. Plugins

A continuación tenemos los plugins.

Plugins, en palabras sencillas, son extensiones que se pueden cargar en un programa para mejorar su funcionalidad.

Hay más de 30 plugins usados para el desarrollo con Hardhat, esta es la razón por lo que son considerados la espina dorsal de Hardhat.

A continuación se enumeran algunos de los plugins más populares con sus funcionalidades:

3. Ambiente de Prueba

Hardhat ofrece un procedimiento muy simple para la prueba de los smart contracts, lo que permite a los desarrolladores escribir pruebas automatizadas al desarrollar los smarts contracts.

Hardhat ofrece una excelente documentación para entender los métodos de prueba con Hardhat.

Si eres nuevo en las pruebas con Hardhat, mira nuestro artículo anterior para obtener una mejor comprensión de las pruebas con Hardhat.

El Universo de las Herramientas de Truffle

Herramientas Truffle
Al igual que Hardhat, Truffle también es un entorno de desarrollo dedicado al blockchain de Ethereum.

Truffle es un framework de desarrollo muy popular y tiene una amplia comunidad detrás de la herramienta.

Para el desarrollo de aplicaciones descentralizadas, el desarrollador usa Truffle Suite.

Truffle Suite es un ecosistema para el desarrollo en Web3 que consta de tres herramientas diferentes: Truffle, Ganache y Drizzle

Truflle, Ganache y Drizzle

  • Truffle: es un entorno de desarrollo que utiliza EVM para el desarrollo de smart contracts.
  • Ganache: Ganache es una herramienta para configurar localmente tu propia blockchain de Ethereum que puede utilizarse para implementar y probar tus smart contracts.

Además, Ganache permite a los desarrolladores evitar el pago innecesario de tasas de gas durante el proceso de desarrollo.

  • Drizzle: Drizzle es una colección de bibliotecas frontend con una tienda Redux en su base.

Con esto el desarrollo frontend se vuelve mucho más fácil para los desarrolladores.

Truffle ofrece diversas funcionalidades tales como:

1. Administración de Smart Contracts

Truffle ayuda en la gestión de artefactos de los smart contracts, de esta manera, es posible centrarse en otras partes del proceso de desarrollo y gastar menos tiempo en la organización de los archivos.

2. Migración por Script y Deployment

Con Truffle es posible escribir los scripts de deployment que te permiten tener en cuenta que tus Dapps cambiarán con el tiempo.

3. Potente Consola interactiva

Truffle ofrece dos diferentes consolas para elegir la mejor herramienta que se adapte a tus necesidades.

(A) Consola Truffle: una consola interactiva básica conectada a cualquier cliente Ethereum. Para abrir la consola utilice el comando: truffle console. Cuando la consola se abra, verás inmediatamente el siguiente prompt:

prompt

La consola Truffle te permitirá conectar con los contratos desplegados (deployed) en el cliente EVM e interactuar con los contratos de forma similar a la realizada a través de javascript

(B) Truffle Develop: una consola interactiva que también implementa un blockchain para el desarrollo. Sirve al mismo propósito que hardhat node.

Puedes abrir Truffle Develop simplemente utilizando el comando: truffle develop.

truffle develop

4.Truffle Dashboard

Recientemente, Truffle introdujo Truffle Dashboard, ofreciendo una manera más fácil de utilizar su cartera Metamask existente para tus deployments y transacciones. Utilizar Truffle Dashboard no sólo es fácil, sino que también es *plug and play. También puedes utilizar Truffle Dashboard dentro de cualquier proyecto Hardhat. Truffle ofrece una excelente documentación para ser seguida y utilizar Truffle Dashboard en tu proyecto.

¿Cuál de los dos es más potente?

¡Vamos a comparar algunas de sus funcionalidades y obtener una respuesta final para nuestra pregunta!💪

1. Debugging

Solidity es difícil de depurar. Solo recibes un mensaje de error cuando algo no funciona y en la mayoría de las veces es doloso depurar, exactamente, el error.
Afortunadamente, Hardhat introdujo algo conocido como console.log para Solidity.

Así puedes simplemente importar el plugin de la consola y utilizarlo dentro de tus funciones.

Así es como se ve:

Debugging

Agrega console.log dentro de las funciones

console.log

La salida de log se mostrará cuando ejecutes tus pruebas:

hardhat test

La EVM creada por Hardhat soporta específicamente esta funcionalidad y, por lo tanto, es nativa del nodo Hardhat. Nada más esta funcionalidad, le da mucho más peso a Hardhat.

Por otro lado, Truffle está mejorando su depurador y también tiene algunos plugins para esto, sin embargo, Hardhat es considerado una herramienta más fácil y potente para depurar.

2. Bibliotecas (Ethers y Web3)

Hardhat usa ethers.js por defecto, pero puede ser fácilmente modificado para usarlo en Web3. Mientras que Truffle utiliza Web3 como plugin por defecto para el desarrollo.

Puedes usar también Ether.js con Truffle pero es considerado más complicado y difícil para implementarlo.

Aunque ethers.js y web3.js son similares, sin embargo hay un mayor número de desarrolladores usando ethers.js por defecto; esto puede darte una pista sobre cuál deberías/podrías elegir para desarrollar.

3. Nodo local de la red Ethereum

Hardhat ya viene con el Nodo Hardhat incorporado. Sin embargo, no viene con una interfaz gráfica para que los desarrolladores vean las informaciones de la cuenta en tiempo real.

Truffle, por otro lado, usa Ganache que debe configurarse por separado. Sin embargo, viene con una interfaz por comandos lo que posibilita una mayor flexibilidad al desarrollador.

Si prefieres la interfaz gráfica, deberías elegir Ganache.

4. Implementar (Deployment)

Al implementar (deploy) un contrato, Hardhat usa scripts de javascript básicos para el deploy, entonces es fácil de empezar con eso y es relativamente simple de usar.

Por otro lado, Truffle usa un procedimiento de implementación (deployment) que se basa en la migración (estos son también archivos js, pero tienen un orden secuencial de ejecución) el cual es un poco más complicado para los principiantes, pero puede ser de gran ayuda en el largo plazo, ya que debe tenerse en cuenta que tus necesidades de deployment pueden cambiar en el futuro.

Pero por la facilidad de comenzar con la implementación (deployment), Hardhat definitivamente se lleva el premio.

5. Pruebas

Para realizar las más diversas pruebas, ambos Truffle y Hardhat usan la bibliotecas Chai Assertion y Mocha como frameworks de prueba, pero Hardhat también incluye waffle. Ambos son fuertes cuando se trata de probar.

6. Estadísticas

Antes del lanzamiento de Hardhat, Web3 era el framework más popular para probar los smart contracts.

Un tiempo después, como podrás notar, las tendencias cambiaron y Hardhat viene ganando más popularidad en comparación con Truffle.

Según las estadísticas del NPMJS, Truffle tiene casi 30 mil descargas por semana. Mientras que Hardhat tiene 86 mil descargas por semana, lo que es el doble, en comparación con Truffle.

estadísticas NPMJS

7. Disponibilidad de soporte / Una mano de ayuda

La comunidad Truffle en Github es bien activa y servicial, pero Hardhat ofrece un servidor en Discord para el auxilio de la comunidad. Debemos resaltar que todo framework Truffle es apoyado por Consensys y, por lo tanto, puedes esperar un tratamiento de “soporte técnico” especializado. Hardhat está también desarrollado y mantenido por una organización: La Fundación Nomic, que también tiene un increíble y buen sistema de apoyo, a través de su servidor en Discord.

Conclusión

Es muy complicado afirmar cuál de ellos es el mejor. La elección entre Truffle y Hardhat depende de la preferencia personal de cada uno y de cada caso específico, siendo que ambos son dos poderosas herramientas.

Si eres principiante en el uso de cada framework, entonces deberías explorar ambos y decidir cuál de los dos es el mejor para ti.

Sin embargo, esperamos que este artículo te haya dado una idea sobre las diferencias entre ambos y te pueda auxiliar en la elección de cuál de ellos usar.

Cuéntanos cuál de estos frameworks prefieres escribiendo a @web3dev_es en Twitter.

Deja tu like si te gusta nuestro trabajo.

Autores (abiertos al feedback)👇
Pari Tomar, Mayon Francis y Amateur-Dev

Este artículo fue escrito por Pari Tomar, traducido por Delia Viloria T. y su original se puede leer aquí.

Discussion (0)