Why developers must be blockchain agnostic for decentralized apps
|Ben Gorlick in Enterprise Monday, December 4, 2017|
Why developers should be blockchain agnostic when it comes to creating decentralized apps.
Many developers have foreseen this change and are investigating how it might affect them. Even if their research hasn’t gone much further than owning a small amount of cryptocurrencies, attending a blockchain meetup or digging into smart contracts online, this effort will be invaluable in future proofing their careers in the medium to long term.
Solutions that make it easier to build and deploy decentralized apps are emerging but any upskilling now will pay dividend in the future. Blockchain still has some obstacles to negotiate before it becomes the dominate foundation of the internet. Whichever blockchain or blockchains emerge as the winner(s) though, the point is that it will be the infrastructure on which applications are built.
App developers would be well advised to understand the fundamentals of the technology and monitor how the scene progresses. Most importantly though, they should be thinking about how they can use it to build apps that businesses and individuals really want.
Understanding the fundamentals
Currently, Blockchain is at the point where you can’t easily pick a winner. This is a stage that all emerging technologies go through and one that will be familiar to web and mobile developers. In fact, a single winner might not emerge and we could end up in a situation where multiple different blockchains exist, with slightly different benefits but a set of core characteristics that are consistent between them.
It’s important to think of blockchain as a future foundation technology and keep in mind some analogies of how other areas of IT have progressed over time. The browser wars began roughly 25 years ago, when Mosaic and Internet Explorer fought it out. Now, Chrome is the global market leader but a whole host of smaller players still exist in different locations and markets.
The same can be said for operating systems, where Microsoft used to dominate but, with the re-emergence of Apple and the rise of the smartphone, iOS and Android now play a huge part.
Developers are used to these changes and how a mixed technology landscape affects individual projects. As a result, they usually have a deep specialism in a particular field while also trying to retain a working knowledge of the areas that surround it. This is exactly how app developers focused on building services that solve problems should see the blockchain - understand its core benefits and how it can be used to answer customer needs.
Monitor how blockchain technology progresses
The benefits of blockchain are there for everyone to see.
It removes the need for a centralized authority in any market. It empowers a network of individuals to exchange value without having to rely on a central organisation to validate these exchanges or hold information to itself. It allows participants to access all of the records of ownership and transaction that have taken place over time through a so called shared ledger, which every participant holds a copy of. Finally, it is highly secure and difficult to hack because of its decentralized structure and the cryptography used to record transactions.
However, as the blockchain (particularly the Bitcoin blockchain) has increased in size and usage, some issues of scale have emerged. At present, a key issue revolves around the ‘proof of work’ process. This is to do with how transactions are cryptographically stored on the blockchain and how the most up to date and correct version of the ledger is agreed. It takes a lot of computation effort to validate transactions, making this process expensive. As a result, transaction times are slowing and/or prices for validating them are going up.
It’s clear that, if this continues, blockchains have a problem of scale that needs to be sorted. One alternative to ‘proof of work’ is ‘proof of stake’. However, it’s not yet clear if this approach will be employed or by which blockchains. The point is that the dust hasn’t yet settled on what the future of blockchain will look like and developers would be well advised to keep their options open.
Focus on building a great decentralized apps
Instead of focusing on which blockchain will eventually win, app developers should focus on the problem they’re trying to solve for the market they are targeting. Considering that the Ethereum blockchain was specifically developed for application development that the Bitcoin blockchain did not support, it’s worth getting your head around. However, it’s not the only blockchain with that intention at its heart and has its own problems to fix.
Ethereum also suffers from the scaling problem that Bitcoin faces and it’s possibly even worse when you consider that it was designed as a framework from decentralized apps, rather than to handle a single specific task. Vitalik Buterin, Ethereum’s co-founder, has acknowledged this by saying scaling issues could take as long as five years to fix.
Just as with other areas of application development, there are solutions and services emerging to make aspects of the decentralized application process easier. When it comes to choosing which blockchain to deploy an application on, it’s no longer necessary to nail your colors to the mast.
App developers that embrace blockchain technology and the emerging decentralized internet as a whole will be well placed as more and more decentralized apps need to be built. Over time, and as more decentralized app development solutions come available, it will be easier for businesses to develop these apps themselves.
For now though, app developers should remain blockchain agnostic. They should combine a good understanding of the key characteristics and benefits of blockchain with their ability to design customer-centric apps that solve real problems. This will ensure they’re able to take advantage of this transformational technology in the long run.
Learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathematics, programming, or cryptography is required. Terminology is explained through pictures, analogies, and metaphors.
Write and run code every step of the way, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, play sounds, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development.
How to create a profitable, sustainable business developing and marketing mobile apps.
This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.