Development tools: An analogy between Web 2.0 and Web 3.0
Tags: blockchain, beginners, webdev, programming
Published: 2020-10-27 13:45:45

If you're looking to get into blockchain development, there are a few tools you'll need to get started. We've drawn some analogies between the blockchain world and the rest of the web development world to make blockchain development easier to understand.

_**Note: From the Ethereum Perspective**_
_This blog is written from the perspective of a developer building on the [Ethereum](https://ethereum.org/en/) blockchain._

At [Decentology](https://www.decentology.com/), we make blockchain development simple starting with [DappStarter](https://www.decentology.com/dappstarter), a blockchain-agnostic platform that generates customized, full-stack project source code for decentralized applications. But after you've generated a dapp with DappStarter, you'll need a few tools to get you started with blockchain development.


In order to develop and build your decentralized application, the following software pre-requisites must be installed:

* [Visual Studio Code](https://code.visualstudio.com/download) (or any IDE for editing Javascript)
* [NodeJS v10.x](https://nodejs.org/en/download/)
* [Solidity v0.5.11](https://www.npmjs.com/package/solc)
* [Truffle v5.0.7](https://www.trufflesuite.com/truffle)
* [Ganache v2.0.0](https://www.trufflesuite.com/ganache) (for Ethereum)

If you haven’t, follow the instructions at the above links to get the software you need installed.

##**Solidity, Truffle, & Ganache**
‍If you have a development background, you are likely familiar with Visual Studio Code and NodeJs. The last 3 items in the list above may have been new, so let’s briefly detail those. Solidity is the JavaScript-like language for coding smart contracts. Truffle is the most popular development framework for Ethereum and Ganache is a blockchain simulator for Ethereum that runs on your local machine. While this info accurately defines the software, it may be helpful to compare them with a context web 2.0 developers are already familiar with. 


##**Web 2.0 to Web 3.0 - Mentally Connecting the Dots‍**
Let’s draw some rough parallels from a web 2.0 developer’s perspective… If you’ve ever used Apache, nginx, IIS, or GWS you can think of Ethereum, EOS,  Harmony, Neo, Stellar, and Hyperledger in the same context. They are similar to web servers that host specific platforms. Keep in mind that everything in web 3.0 is decentralized.

**Languages**
If you’ve developed with Typescript, Go, JavaScript, or C++ you can view Solidity, Vyper, and others from the same lens, they are languages.

**Frameworks**
If you’ve ever developed on Express, Django, Rails, Spring, or .NET then you can consider Truffle, Fabric, Quorum, Burrow, Sawtooth, Enterprise Ethereum as similar technologies, they are frameworks.

**The End Result**
And at the end of the day, web 2.0 developers build web applications. You can view a web application as being similar to a Smart Contract, which is what web 3.0 developers build.


Ultimately, web applications target specific web platforms. Developers code applications in languages that are supported by their chosen web platform. Said differently, a compiler or interpreter exists to transform code so it can run on the respective web platform. Developers use web frameworks to not have to do a lot of grunt-work. 

**Example Scenario‍**
Let’s bring it all home with an example from the .NET world. Web 2.0 developers build web applications programming in C# for IIS using .NET. In contrast, web 3.0 developers build decentralized web applications programming in Solidity for Ethereum using Truffle.


**Keep Rocking Out!**
We hope these analogies help you understand the blockchain development stack a little better. Once you’ve got all of these tools installed you’re ready to rock. And if you want to increase efficiency and reduce coding effort by 80%, try to build your dapp with Decentology [DappStarter](https://www.decentology.com/dappstarter) in three steps:
* Select the blockchain and features you want to implement in your dapp
* Download your full-stack custom source code for your blockchain app
* Customize the code and deploy!