Back in May 2017, when Dan Larimer gave his EOS presentation during that year’s Consensus, the excitement in the blockchain community was almost palpable. A year of ups and downs has flown by and, today, on June 14, 2018, EOS finally launched its mainnet. This means that the time has come to see whether EOS lives up to its claims of being the “Ethereum Killer”.
As a blockchain engineer, I’ve had a lot of experience with Ethereum and the wide range of tools that have been built for it over the past couple of year. I know, for example, that Ethereum is pretty easy to install have, however, it does lag and crash. It will also heat up your computer to make it into a perfect hand warmer, which is not the best use case for the Californian summer. I have, however, never jumped right into EOS. For this article, I decided to see whether a developer with little to no C++ experience (me) would be able to create a custom smart contract for the EOS blockchain. So let’s get to it!
Are Ethereum and EOS contracts all that different?
To the casual observer, the end result may appear incredibly similar. Creating an EOS contract is nothing like creating an Ethereum contract though. When Ethereum was first launched, it gained popularity because the installation process was simple and developers could create all types of contracts without many additional skills or knowledge.
Ethereum smart contracts are developed using Javascript/Solidity. This means that most developers can jump right in. EOS contracts, on the other hand, are developed in C++ which isn’t a language that’s as ubiquitous, or as friendly as Javascript. Therefore, though C++ is still a hugely popular programming language, it could still be perceived as a barrier to entry by many developers.
So, what’s under the hood?
The first EOS smart contract I created was called EOSCRUD, (Create, Read, Update, Delete). This contract is fairly straightforward: it’s designed to hold a simple database of an ID, username and a text comment. While this smart contract will not move us closer to world peace or even become the new Wordpress, I am also not a C++ professional at all. Simple functionality like this allowed me to really test the alleged simplicity of EOS.
After spending about 2 or 3 hours digging through the examples listed in the EOS Contract Repo, I was able to build my first EOS smart contract without throwing my computer out the window. I am well aware that this contract is not very well written, but it does work, which is the ultimate goal.
I’ve mentioned this a number of times already, but I’d like to reiterate: I am not a C++ developer. I normally use Go, Ruby, Node/JS with sometimes a dash of C# and a couple of others thrown in. With this arsenal of knowledge, I was able to develop a very basic C.R.U.D. contract comprised of 79 lines or thereabouts.
Granted, this contract is completely devoid of security, but it does work on the EOS test network and runs on my local machine. The fact that EOS smart contracts are written in C++ could expand the functionality of blockchain contracts. Ethereum smart contracts are pretty cut and dry, with EOS smart contracts could potentially be built to include C++ libraries like HTTP.
ETH vs EOS — the showdown
So, after building my first EOS smart contract, how does the platform really compare to Ethereum? Let’s find out:
- Ease of use: Unless you’re a C++ guru, Solidity is much easier to jump right into and start playing around. I would argue that even a complete n00b can start building on Solidity with minimum discomfort. Ethereum wins.
- Setup friendliness: Ethereum is fairly straightforward to install and, if you do manage to run into trouble, there is a huge community ready to help. EOS is not as simple and very few people are sharing their knowledge. Ethereum wins.
- Contract features: Ethereum contracts are pretty limited in the spectrum of features they can hold. Though there are applications like Oraclize which allow your contract to do HTTP calls, Ethereum is very primitive when it comes to functionality. It does work though! If EOS contracts allow developers to implement C/C++ libraries, this could broaden their capabilities significantly. EOS wins.
- Look and feel: At this stage, I can’t say EOS has any look and feel at all. Most of the contract building work I did was done through the terminal. There is no fresh-looking UI, or any user-facing application at all at this point. Ethereum is more user-oriented. Ethereum wins.
Conclusion
So, can I say that EOS is the “Ethereum Killer”? No. At least not yet. While the C/C++ libraries implementation could give this system a very big leg up, there are some significant barriers when it comes to how easy it is to use. With the launch of the EOS main network today, the jury’s out on whether C/C++ libraries could actually be used in EOS smart contracts. There is also a lot of work to be done on how accessible the system is. This is still the early days for EOS, but, for now, Ethereum is the more usable and functional of the two.