Why every Web Developer should look into Ethereum
The Ethereum ecosystem is evolving incredibly fast, which means any web dev would feel right at home.
The past year has been remarkable for cryptocurrencies and blockchain.
Early adopters will remember getting blank stares when they passionately talked about crypto to their families at the dinner table or colleagues at the office water cooler, yet in 2018 it’s suddenly discussed in prime time news, referenced in pop culture and even your grandparents have heard about Bitcoin.
The concept of Bitcoin is exciting and was relatively easy to understand. I had numerous conversations with friends and colleagues who disagreed with its underlying premise, comparing it to fiat currency and claiming “it has no inherent value!” (to which I usually replied that it does — it trivializes trust), but since it dealt with money, which is something everyone is familiar with, it was possible to grasp.
Player 2 has entered the game
Then Ethereum hit the scene. What it promised to deliver was even more exciting, albeit not as sexy.
While Bitcoin was the brilliant but anarchistic, anti-establishment kid sitting at the back of the class (when it even bothered showing up), Ethereum was the smart nerd sitting up front. It didn’t aim to usurp the existing systems, but rather to make them better. Fairer.
Ethereum adopted the engineer’s approach of seeing awesome tech (in this case blockchain) and thinking “OK, so what more can we do with this?”.
It is said that Vitalik Buterin’s desire to create Ethereum came about after Blizzard made a change in the famous MMORPG World of Warcraft game which he deemed unfair. It was at that moment that Vitalik truly realized what horrors centralized services can bring.
Unlike Bitcoin, which is designed to maintain a single application (basically a payments ledger), Ethereum is Turing Complete. Well, almost. Since each transaction has a gas limit it can’t run forever, but for all intents and purposes it is. This means Ethereum’s blockchain isn’t limited to a single use-case like Bitcoin (payments), but is able to run any decentralized application you can think of, also called a dApp.
It’s like comparing a pocket calculator to a smartphone.
Displaying responsible and community-driven leadership, the Ethereum foundation was able to prevent tough incidents (like the whole DAO fiasco) from getting in the way of setting the path for long term solutions. (Homestead, Metropolis, Casper…).
Coupled with extensive documentation, open source code and mentality, and an abundance of conferences with amazing speakers, the developer community warmly embraced the Ethereum framework. As a result, wallets, testing tools, libraries and all sorts of goodness have been churned out.
For a technology that is pretty darn complicated under the hood, the first time experience of creating a dApp has become relatively simple.
This resulted in a strong and large developer community, rivalled only by that of Bitcoin. On certain metrics it even surpasses the nearly decade-old technology.
“Developers, Developers, DEVELOPERS!”
It’s not just sheer numbers — the atmosphere in this ecosystem is astonishing. Sure, plenty of ICOs are questionable at best and possibly pyramid schemes. But go to any dev conference and meet people writing actual code, dive into github projects or log on to reddit where vitalik replies to posts himself, and you’ll see that there is an undeniable sense of being part of something exciting. Something new.
Blockchain technology opened up a whole box of fresh ideas that was immediately greeted by a horde of eager developers.
Such a strong dev community, several magnitudes more than that of any other blockchain, is one of the main reasons why we believe so much in Ethereum and its future.
To further illustrate why, take a look at the following chart:
Why did Android overtake Apple as the dominant mobile OS? Sure, it’s a great OS by Google, I’m not knocking that, but at the end of the day, the developers are the ones who create apps, which in turn drives the platform’s value.
Ethereum has a huge head start in that regard, and just like with the network effect of Bitcoin, it’ll be almost impossible for any other blockchain to overcome it.
Putting the “web” in “web3.js”
The web used to be a jungle of different standards and practices. Just ask anyone that ever had to write web apps that support IE6.
But thankfully, over time, these standards converged. And that convergence gave birth to new protocols which enabled web applications to become incredibly powerful. And just like Ethereum, things move very very fast.
In just a few years, we migrated almost entirely from Flash to web assembly, which lets you run 3d graphics right in the browser. Or how about Progressive Web Apps, which allow code written for the browser to be shipped straight to Android, iOS, Chrome OS, and Windows.
Throw service workers into the mix, which provide push notifications and offline functionality, and coding straight to web starts to make more and more sense. Web technologies aren’t going anywhere. In fact, they’re only growing.
That is why we created Portis for the web. We wanted to get on the ride, both that of Ethereum and the web, and contribute our own library that attempts to achieve that same goal most projects have in these bustling communities: to make something that improves the ecosystem, so other applications can build on top of it to create even cooler stuff. To become facilitators of creativity.
The beauty of writing an application that runs on the Ethereum Virtual Machine is that its decentralized, permissionless and open nature allows complementary applications to seamlessly integrate with each other as first class citizens.
Everything is built around a single shared standard.
The missing piece
While there‘s a lot of similarity between web and Ethereum, there is one aspect where the Ethereum ecosystem is still substantially lagging behind: user experience.
Tremendous strides were made in web in that regard. Users have gotten used to some pretty sweet standards, as well as the developers who now get so many amazing features from browsers, straight out of the box.
For mainstream adoption to take place, dApps need to become as easy to use as existing solutions.
You can’t expect people to embrace a product with an inferior experience when they already know they can have it easier. Right now, the average user will not only never bother going the extra mile to use a dApp, you can’t even be sure they’ll succeed if they were to actually try.
The Portis platform aims to tackle that UX problem by making interactions with the Ethereum platform friendlier to users — more familiar to their experiences in web apps.
As a web3 compliant provider, Portis offers the same functionality as any other existing solution. As a developer, this compliance means that integration is a breeze, as it will automatically work with your pre-existing dApp code. As a user, you enjoy an experience which is exactly like what you’re already used to. No hex values, private keys, gas prices or any of those other terms which may be super interesting to us as programmers but scare off the average non-technical person.
You can check out the smooth experience for yourself on Attendr, a dApp already powered by Portis.
And since Portis is a web service, users can access the same account from all their devices. They still maintain absolute control over their wallets (everything is encrypted client-side). This is one of our core values: delightful UX without compromising security.
You can’t educate users to become technical, you need to make the tech easier to use.
If you’re a web developer, I heartily recommend making a pass at writing a small dApp. Thanks to all the wonderful libraries I referenced before, it’s now easier than ever to set up your dev environment and run the Ethereum equivalent of “hello world”.
There’s a wonderful tutorial by Truffle to get you started on your first dApp.
And what good is building an app if you can’t send it to all your friends to play around with?
That’s where Portis comes in. Instead of hassling them with installing plugins and dealing with technical jargon, set up Portis as your dApp’s web3 provider so your users can focus on interacting with your awesome new smart contract using your sleek frontend, not on safeguarding private keys, understanding gas prices or installing additional apps on their phone just to start using yours.
Edit: you can check out the Portis Pet Shop and play around with the code here:
If you run into any problems, rest assured you’ll be greeted by a wonderful community which is more than happy to help. Besides the plethora of forums, tutorials and videos covering everything from the solidity language to deploying smart contracts to the EVM, you’re always welcome to hop on to our gitter channel or our subreddit for any question, feedback or request.