Reading this article, you might have heard about the fame of web 3 and its potential to change the future of the internet. In this article, we would look into what web 3 entails, its advantage, and how to get started.
- History of the web
- What web3 entails
- How to get started
History of the web
They have been fast-developing changes to the web through the years. The World Wide Web emerged in 1989 by Sir Tim Berners-Lee who is a British computer scientist. The first invention of the web is classified as web1. Although, the web wasn't titled initially until its development in recent years.
Web 1.0 is a content delivery network (CDN) that enables the display of the piece of information on websites. In simple words, Web 1.0 was a read-only web. It was for reading online content and information.
Web 2.0 is an enhanced version of web 1.0 which focuses on user-generated content, usability, and interoperability for end users. Web 2.0 is also called the participative social web. The introduction of Web2 is generally associated with the rise of social media platforms. The web browser technologies (such as AJAX and javascript framework) are used in Web 2.0 development.
Key Features of Web 2.0
- Access to a wide variety of users
- Dynamic content based on users' input.
- Flow of information and files between website users.
- Developed APIs to allow third-party usage
However, the social web also created issues, namely placing personal data in the hands of those running the main digital platforms which could be altered without personal consent.
On the other hand, Web 3.0 is a term that is used to describe many evolutions of web usage and interaction among several aspects. In this, data isn’t owned but instead shared. Web 3.0 holds the keys to solving a long list of Web 2.0 issues like the centralization of data. To name a few, Web 3.0 enables boosted transparency, greater privacy, eliminates intermediaries, facilitates data ownership and digital identity solutions.
What Web 3.0 entails
Web 3 focuses on improving back-end functionality by moving from a dynamic website to a decentralized website. For a complete understanding of web 3, there is a need to discuss what dApps is.
dApps otherwise known as Decentralised Applications are the backbone of the Web3 revolution. dApps are also called web3 applications, web3 apps, web3 dApps. dApps is an application that combines a smart contract and frontend functionalities on a blockchain network such as the Ethereum network. An integral part of the dApp is called the smart contract.
Smart contracts are self-executing software agreements, pieces of code that run on a blockchain like the Ethereum blockchain. The smart contract automatically verifies and performs a transaction between different parties when a relevant set of terms specified in the contract are met. These contracts can be developed with a contract-oriented programming language such as Solidity. Solidity is an object-oriented programming language that runs on the Ethereum blockchain.
To interact with smart contracts from a browser, there is a need for some libraries such as "web3.js". The web3.js serves as an Ethereum Javascript API that allows developers to create clients or applications that can interact with the Ethereum blockchain.
Using a JSON interface, web3.js is able to create JavaScript objects representing the smart contract, its methods, and events. This JSON interface refers to a json object describing the Application Binary Interface (ABI) for an Ethereum smart contract. The Application Binary Interface (ABI) is the standard way to interact with contracts in the Ethereum ecosystem, both from outside the blockchain and for contract-to-contract interaction.
Now, we are getting into some technical terminologies applied when building a web3 application.
How to get started
Based on the explanation so far, we have looked into the two major aspects of building a web3 application which is the smart contract and frontend functionalities. You can regard the smart contract as the backend functionality of web 3.
There are different programming languages for developing a smart contract on different blockchain networks. Such programming languages are Solidity, C++, Golang, Java, Rust among many others.
For the frontend functionalities, an understanding of web 2 technologies are needed such as HTML, CSS, and JAVASCRIPT.
For the interaction between the smart contract and frontend functionalities, there is a need for some javascript libraries and frameworks. Among others, Vuejs, React and Angular are mostly for the frontend UI. Then web3.js or ethers.js primarily for interacting with the Ethereum blockchain.