Day 18. Hardhat – Overview of web3 Frameworks –

In the IT world, a framework is a software that provides a group of functionalities for system development. Various frameworks are available in the web3 world as well, making blockchain development more accessible for developers. This guide explains web3 frameworks.

TOC

What are web3 Frameworks?

  1. Web3 frameworks, including Hardhat which is discussed in this tutorial, make each stage of a developer’s workflow relatively easier. The term “relatively” is used to indicate better efficiency compared to development without these software suites.

Specifically, web3 frameworks offer functionalities necessary for each step in the development process, including contract development, testing, debugging, and deployment.

In the IT world, there is a term called “reinventing the wheel.” It is used when someone develops something from scratch, despite the existence of widely known and developed functionalities by others. This phrase typically implies ‘an act of waste,’ except in cases where the new development is more efficient. Mastering frameworks is important from this perspective, as it is more efficient and requires less effort than developing everything from scratch.

In the pre-web3 era, a multitude of frameworks were developed and released like bamboo shoots after rain. In the web3 world too, there are already many frameworks, but choosing the right one for you, with future potential, is extremely important. Future potential means that the development of the framework will continue over a long period. Usually, the most used and considered ‘major’ frameworks tend to be the best choice for long-term use.

From an employment perspective, adopting major technology stacks is also important. Job seekers benefit from a wider range of potential employers, and conversely, team leaders can attract more applicants, making it easier to form the best team (increasing opportunities).

Available Frameworks

There are various frameworks for web3 development, catering to different languages and environments. Below are some of the prominent frameworks.

Hardhat:

  • A framework based on JavaScript/TypeScript.
  • Provides a suite of functionalities for compiling, deploying, testing, and debugging smart contracts.
  • Simulates a pseudo blockchain network locally.
  • Rich in plugins.

Truffle:

  • A JavaScript-based framework.
  • Widely used for project management and smart contract development.
  • Known for its integration with local development environments and built-in testing framework.
  • Boasts a rich ecosystem with numerous available plugins.

Brownie:

  • A Python-based framework known for its concise syntax and ease of testing.
  • Easy to install and set up, offering a developer-friendly syntax.
  • Supports advanced debugging features and gas optimization.

Foundry:

  • A Solidity-based framework.
  • Relatively new in the sphere of web3 development.
  • Characterized by its modern development environment and highly modular architecture.
  • Focuses on on-chain development cycles and security, adapting to new technology trends.

Choice for This Tutorial

  1. In this tutorial, we have chosen Hardhat for mainly two reasons:

Firstly, it is based on JavaScript/TypeScript. In many cases, in addition to developing smart contracts, frontend (web interface) development is also involved. JavaScript/TypeScript has become the de facto standard in frontend development, making development based on these languages a significant advantage.

The second reason is that Hardhat seems to have a higher usage rate in recent years compared to Truffle, which is also JavaScript-based. The following graph compares the trends of the two frameworks (based on download trends in npm, a package management software).

It’s important to continuously monitor the situation, but having a larger share (presumably) is a significant factor in choosing (for reasons mentioned earlier).

Depending on the situation, other options may also be viable. If you are proficient in Python, choosing Brownie could be efficient, and if you want to keep the language consistent, Foundry could be a strong candidate.

Let's share this post !

Author of this article

After joining IBM in 2004, the author gained extensive experience in developing and maintaining distributed systems, primarily web-based, as an engineer and PM. Later, he founded his own company, designing and developing mobile applications and backend services. He is currently leading a Tech team at a venture company specializing in robo-advisory.

Comments

To comment

CAPTCHA


TOC