Ethereum's initial and central innovation over Bitcoin was the "programmable blockchain" facilitated by the Ethereum Virtual Machine (EVM) and the Solidity programming language. Programs in Ethereum are called "smart contracts" which, in my opinion, is a horrible name for them. I can only guess that name is a vestige of Blockchain's main focus on financial applications and digital cash. If we think of a blockchain as just a data store then a program that operates on that data should be called a "Blockchain program" which is sufficiently generic to include a wide array of functionality. There are other examples in the Ethereum stack that are also poorly named constructs or metaphors like gas and accounts. Gas? Am I filling up my car here? Accounts - what, like a bank account? Why am I harping on what many would consider trivial issues? Because the objective of any computing platform is to win over developers to build applications on your platform and not your competitor's platform. Let's look at some examples of platform competition:
- iOS vs Android.
- Playstation vs Xbox
- Amazon Web Services vs Microsoft Azure.
Who are these platforms trying to win over? DEVELOPERS! So, when trying to convert someone to switch from their current development platform to your platform, the best way to do that is to give them the simplest path from where they are to where you want them to be. Part of the way you do that is to name similar things in similar ways and to keep the metaphors across the environments consistent. Ethereum fails to do that with some of its naming and metaphors.
But the title of this article is "Why Ethereum will Win!" True, I will get to that.
Ethereum runs these blockchain programs on a Virtual Machine called the "Ethereum Virtual Machine". Virtual machines have been around a long time, with P-code (short for portable code) machines in the late 60's and early 70's. Virtual machines, like the very popular Java Virtual Machine (JVM), offer the significant benefit of allowing developers to write their programs one time and run them on a variety of hardware platforms. As an aside, my day job is developing Java programs (all day, every day). The way a virtual machine works is that each hardware vendor writes an implementation of the virtual machine that runs on their hardware. This enables developers to not have to care which physical hardware will run their program because their source code gets translated into instructions (called opcodes) that run on the "virtual" machine (which is what distinguishes virtual from physical). So, the use of a virtual machine is yet another mechanism to attract developers to your platform. Now, we are ready to discuss why I think Ethereum will win the blockchain platform wars.
1. They have first-mover advantage. This is why Ethereum is the #1 blockchain platform today. But, this alone, is not enough to keep them on top. Competitors like Cardano and Polkadot are attacking Ethereum where it is weak - scalability and proof-of-work (which is also related to scalability). In other words, Ethereum is slow. So, in the best tradition of Sun Tzu, you attack where your enemy is weak! In my opinion, this is a temporary weakness and ETH2.0 will solve the scalability issues (or die trying).
Now, will the current competitors shift their tactics to counter this brilliant strategic flanking maneuver - we will see!