5 things I wish I’d known before starting to develop dApps
1. Blockchain is still like Spectrum
Many developers have heard about blockchain scalability issues and that blockchain is not about highload totally. But when I just got interested in blockchain, I didn’t fully realize what lay ahead. Sasha Ivanov once said in his article “You can’t calculate on the blockchain” that the current blockchain level is similar to 8-bit Sinclair ZX Spectrum computers.
Those computers played an important role in tech development, but, compared to contemporary PCs and smartphones, they look like nothing but programmable calculators. In terms of computational capacities required for each separate app, blockchain is not unlike ZX Spectrum. But that’s nothing surprising: blockchain is about cutting out intermediaries rather than computation speed.
Blockchain limitations have an impact not just on software complexity (for instance, very few decentralized applications — dApps — have hundreds of thousands of code lines), but also on the way developers think. The picture below is a good illustration of issues that blockchain developers currently face and which are very similar to those game developers faced back in 1996.
Regular app developers can forget about many issues dApp face:
- the need to fight for every byte and every computational operation
- the inability to easily update your dApp and deliver the update to customers (in this respect, the Waves blockchain has an upper hand over competitors as it provides such an opportunity)
- The high cost of a bug.
Certainly, these limitations also have advantages. For instance, the inability to put whatever you want in the code limits security issues. I spoke about some other advantages at San Francisco Blockchain Week 2019. A video of my speech is available here.
2. Different user experience
Back in 2014, when I first looked into blockchain app development, I didn’t realize that alongside changing principles of app business logic description, user experience is also changing.
For instance, it’s habitual for users to authorize in an app with a login and a password, while for a dApp, signing with a private key is required.
A private key is normally stored in a browser extension (see Waves Keeper), which is an extra hindrance for computer users and a major headache for those using mobile devices.
Also, for each new transaction, an extra step is added, which could completely kill user experience and create major problems for a business.
Recently, products have arrived in which users are offered habitual patterns without jeopardizing decentralization and security. One example is Waves Signer. However, this segment is still in very early stages.
Under these circumstances, it’s vital to explain to users why blockchain is required in a specific app, what advantages it brings and why they need to tolerate a decline in user experience.
3. Decentralization is not a value by default
When starting off, many dApp developers believe that just about any product can be approved by the addition of blockchain and decentralization. But this is not true as blockchain, apart from decentralization, leads to changes in user experience that are often for the worse.
An understanding of why you need blockchain can save you months or even years of developing a product that with blockchain will only get worse. As a famous investor and entrepreneur Peter Thiel put it, to attract customers and conquer a market, your product needs to be 10 times as good as your competitors’. And blockchain is no exception.
Decentralization is a great concept, but adding it to a process should make its value in the user’s eyes at least several times higher. You wouldn’t say that your product is better than your competitors’ because it’s based on PostgreSQL. The same applies to blockchain.
There is no universal formula for determining the value of blockchain in a specific solution. But you should always start with the question: “What parties are involved in the process and why can’t they trust each other?”. If there is just one party or there is no trust issue, it’s quite likely that you don’t need blockchain.
4. Composability power
For many startups and companies, the NIH (Not invented here) syndrome is typical. In the blockchain space, a desire to do everything by themselves can lead to very undesirable consequences.
Blockchain’s major value is that it’s a unified interface for communication between various dApps. If you are familiar with the concept of an enterprise service bus, there is a similarity between it and blockchain. Just imagine that in your code execution environment, data of many other apps is accessible.
Another analogy that helps understand composability is Lego toy bricks, from which something unique can be built.
For instance, the Waves protocol uses the LPoS consensus algorithm, which enables users to collect an income from leasing (staking). Neutrino dApp from the Ventuary Lab team uses this algorithm in its stablecoin, facilitating coin staking by users. Any other dApp can accept Neutrino stablecoins as payments. This is composability: dApps are based on other dApps, using and complementing them.
Many Web 2.0 services have APIs that support integration. However, there are several major differences:
- in Web 2.0 apps, users often need to register and obtain API keys that allow access to data and can be at any point withdrawn by the providers. To obtain data or call methods of dApps, you don’t need access keys as all dApps are executed in the same environment.
- for traditional Web 2.0 apps, a range of protocols for API operation exist (such as authorization, data coding, etc.). For dApps, this issue doesn’t exist. For you, it’s sufficient to know what arguments accept what functions. Even if a dApp doesn’t have documentation, you can see it yourself on the blockchain.
5. It’s just the beginning
Bitcoin is more than 10 years old, and some might think that all dApps have already been built, all fresh ideas have been executed and the era of interesting blockchain startups is over. But this is not true. Every few years, new trends, opportunities and technologies arrive in the blockchain space. It’s possible to say that every few years or even more often the market offers chances to new players. The most interesting projects are still ahead of us!
I stressed that blockchain is developing rapidly in my retrospect of 2019, which I suggest you check out if you haven’t yet! New products, such as Gravity, open up vast opportunities for a range of innovations. For instance, the arrival of Gravity will facilitate the building of dApps that can work in several blockchains. Those who will grab this opportunity, and take advantage of the best in, Bitcoin, Waves and Ethereum to name a few, will certainly have the ability to invent cutting-edge technology.