dApp development

A General Review of dApp Development

Globally, dApps are becoming more and more popular. dApps (decentralized applications) connect users and developers directly without the need for a middleman to host and manage the code and user data. Permission is not needed to build a dApp and there is no company or centralized group of people that can change the rules of the platform. Today there are over 1000 dApps built on Ethereum, the leading dApp platform. A dApp has its backend code running on a decentralized peer-to-peer network. Contrast this with an app where the backend code is running on centralized servers. A dApp can have its frontend code written in any programming language that makes API calls to its backend. Furthermore, its frontend can be hosted on decentralized storage such as IPFS.

The biggest difference between dApp development and traditional app development is the level of rigour by which code must be scrutinized before it’s pushed to production. dApp development is actually more like hardware development than software development in that respect. In hardware development, rigorous testing and prototyping need to be done before the product is offered to the public. A hardware recall costs lots of money, takes a long time to fix, and tarnishes the reputation of the manufacturer. Likewise, in dApp development, a smart contract can’t be changed once it’s launched. A bug in the smart contract loses users’ funds and tarnishes the reputation of the dApp developers.

Traditional app development, in contrast, tends to emphasize fast iteration cycles as the best-practice. As a developer, you want to build a minimum viable product, get people testing the product, and release updated versions as quickly as possible. Traditional apps like Facebook have the motto of “move fast and break things,” which isn’t exactly the best motto for dApp development.

Ethereum was the first major Blockchain-based platform to build a Turing-complete language for writing smart contracts on-blockchain and quickly became adopted as the platform of choice for dApp development. 91 of the top 100 dApps are built on Ethereum, up from 76 more than half a year ago. Ethereum also has 30 times more developers than the next blockchain community.

Solidity is the standard language for programming dApps on Ethereum. Despite the popularity of Solidity, there are many issues with its language design. Several new programming languages under development right now could become alternatives to Solidity for programming smart contracts.

Vyper is an experimental language that is much simpler than Solidity. Vyper increases security, simplicity, and auditability by making the code as human-readable as possible and thus making it difficult to write buggy code. As a result, Vyper is far more limited in what it can do. It doesn’t support many features of Solidity, such as modifiers, class inheritance, inline assembly, operator overloading, recursive calling, infinite-length loops, and binary fixed point.

Given the importance of security in smart contracts, formal verification is a lot more common in dApp development than in traditional app development. Formal verification is the process of checking whether an algorithm satisfies some logical requirements. Using formal verification tools such as Isabelle and Coq, you can prove code is bug-free just like how mathematicians prove a theorem is true.

Simplicity belongs to the family of functional languages (Haskell, Clojure, Lisp, OCaml, etc.) Functional languages are generally unpopular among developers; in fact, none of the top 15 most popular languages on Github are functional languages. Nonetheless, another dApp platform Tezos uses a functional language Liquidity for programming smart contracts. If security becomes a major problem for Ethereum dApps, then functional languages could become more popular in the future. Decentralized apps remain a space to watch for key disruptions in the technology industry. With all the advantages that they present to businesses, dApp Builder makes it much easier to create dApps that would enhance business operation. From the above discussion, the business can now know what dApps are to adopt them in their business strategy for competitive advantage.


May 31, 2018 2 years ago

Back to Blog Listing
How to Monetize mHealth Apps
AI and contactless payments are the future
How AI and Adaptive Learning is shaping the Classrooms of future

Have a product idea in mind?
Talk to us about it!