For most developers, the question of whether blockchain (opens in new tab) will have a transformative effect on their jobs is settled. For those still to be convinced, the very fact that different blockchains are fundamentally networks with protocols for sharing and storing information should indicate how they will reconfigure the internet stack. However, it is still an emerging technology with underlying issues that need to be resolved.
This phase isn't unfamiliar if you are used to seeing different languages, frameworks or approaches fade out of the limelight. That's why, for now, the best approach is to remain blockchain agnostic. But this is very different to ignoring the technology. Instead, you should understand the fundamentals, understand the issues and take your first steps into developing for this future state.
Why blockchain matters
Probably the most important things to understand about blockchain technology are that it's distributed, immutable and transparent. The reason so many people are excited about it is because they believe it could become the foundation of a new internet. Bitcoin, as well as other cryptocurrencies, have seen their prices spike as a result. Yes, there are speculators involved, but you only have to look at the list of investors to understand how significantly some of the biggest names in tech are taking this.
They believe that one or a number of blockchain protocols will take their place at the base of a new decentralised internet, with layers of other protocols and apps sitting on top. In some ways, this will mirror what exists today. This is why it's so important for developers to immerse themselves now, so they understand the technology that will underpin their future work. At the same time, they need to have an understanding of why this technology isn't established yet.
The big issues
Multiple potential paths lay ahead for blockchain, as it grapples with a number of problems. One of the most significant right now is scalability. The cryptographic consensus approach of validating the shared ledger makes it trustworthy and extremely secure. However, as more and more transactions have needed to take place, the computer power required has increased to the point where real scale seems impossible.
This is a problem across blockchains, but multiple solutions have been proposed. One is bigger blocks that can store more transactions, an approach that resulted in the Bitcoin Cash 'fork'. Another is proof of stake, where a stake is put up as collateral against false transactions, rather than proof of work through cryptography. Another possible solution is the idea of off-chain protocols, such as the Lightning network (opens in new tab) or Raiden network (opens in new tab), facilitating fast transactions and only interacting with the blockchain at specific points.
Right now, none of these have emerged as an all-conquering winner, so developers would be naive if they were to focus all their efforts on one solution. Instead, they should focus on building apps that can be deployed on any blockchain.
Let's push things forward
While you might think it's better to wait until these major issues have been resolved before you jump into blockchain technology, that would be the wrong move. You can start to develop decentralised applications without committing them to a single blockchain. While tools and processes are still emerging, open-source software is oiling the wheels of progress as highly capable developers try to push the technology forward.
Finally, it's important that developers understand the big picture behind the value they provide hasn't changed in the slightest. They should focus on building applications that solve real problems for people because that's the most important thing, both now and in the future. A decision on which blockchain they choose to deploy it on can wait.