Is Ethereum ready for developers?
There is a lot of things happening with Crypto currency, it is really exciting, and I really feel the latest uptick in the value of Ether has made Ethereum a more serious platform.
I looked at Ethereum 9 months ago and decided it was not for me, there were several things that were for me still too immature and that I hoped would be improved.
But many of the same things are still a problem today.
What do I want?
The main problem I have is that I personally don’t have the problem in my daily life of moving money around, but I do see the potential to use it. A lot of open source work could be financed/led by these crypto currencies. I could also easier do stuff with friends and communities. But that is the problem, these does not revolve around money, but more about the custom functionality that you can do with these public ledgers.
So I want something that I can do simple and share with others without them having a huge buy-in.
First problem
The whole idea about crypto currencies is that it is distributed, that means nobody central is in charge. Each person in the community need to have the history of the public ledger on their computer and the only way to get that is from others peer-2-peer, which is not instant, but it needs to download a lot of data. Right now the whole Ethereum blockchain is 30 GB, not really something you can have on an iPhone.
There is an discussion about how can you run this on a mobile phone, something where you would download a subset that would be pre-calculated, but it is still in the talks. Here is a link to the main repository talking about it, https://github.com/ethereum/go-ethereum/wiki/Mobile%3A-Introduction
Ethereum Wallet
The first thing you would do is that you will try to download the Ethereum Wallet and begin to initialize that. It is a really slow process and will take a long time depending on your internet speed + taking up a lot of harddisk space. It took me more than 2 hours doing the “fast” syncronization on a 100 Mbit connection and more than 12 GB of space.
And that is connecting to the real network! You can also connect to the testnet, which is even larger because many more people are testing.
Second problem
You don’t have any money on Ethereum or Ether as it is called. You can’t do anything with Ether. As said before, there is a testnet where you can connect to and you could begin to start mining and see if you are lucky to be awarded some Ether for your work. There is also a website where you can go and put in your testnet account adress and they will give you 1 Ether. http://faucet.ropsten.be:3001/
If you want some real Ether coins you should go to Coinbase and buy them there where you will get another wallet address.
Now you can finally try out some of the code examples
There is a couple of examples on https://www.ethereum.org but none of them are really exciting from a developer perspective as they are either too advanced for a simple demo or don’t take into account that you want to make something useful that you can share.
No of the demo’s explain really good how you are suppose to share what you just built. That is especially sad when you are enticed by the headline “Build unstoppable applications”! What good is a unstoppable application if nobody can find it?
Let us just mention the three examples they have on the website:
First example: “Design and issue your own cryptocurrency”
This is the first example and I am already super confused about what this has to do with unstoppable applications, I understand what it means but not why it is really useful as the first example on the website.
Nobody that I knows uses Ether, why would I make yet another cryptocurrency?
Second example: “Kickstart a project with a trustless crowdsale”
A much better example, this is actually cool! But for a demo of what you can quickly build that is unstoppable this requires quite a lot to get started and convincing people to use it. But cool example, but not for the first prototype.
Third example: “Create a democratic autonomous organization”
This is actually super cool, something useful and where the main focus does not seem to focus on money but around the decentralized trust, what I really want!
Okay, let us try it: 234 lines of code! Quite a lot i must say for an simple example, but okay I give it a try! It assumes that I have the wallet open and presumable ready with Ether in.
And when I try to do the same, it does not work!? It says that it can’t compiled because of a unused variable!
What have others build?
If we can’t build something quick ourselve and test, then there must be others that have made something cool, right? If you google around, you will quickly find this url: https://dapps.ethercasts.com
The problem is that half of the apps are not working and the other half requires you to install something called Metamask for Chrome. A Chrome Extension that allows you to visit dapps as they are called without them having access to your local installation of Ethereum. How frustrating! I understand that it is the option if you to do something, like lend out money or send money, but only for browsering? That seems extremely user hostile. Why can’t I see the app and what it does without?
And now the programming Solidity
There is multiple programming languages to develop these “smart contracts” in. The one that will properly be the most popular is the on based on JavaScript. Is is based on because it is not JavaScript, but Solidity, because it has some new features and because it will in the end be compiled to bytecode. They do however have some more nice documentation that explains certain things more in details. You can read more about it here: http://solidity.readthedocs.io/en/latest/index.html
Conclusion
Ethereum is super exciting and there is no doubt that this is the future of computing and the internet, but I don’t think it is ready for developers yet sadly! There is simple too much that you need to know before you can even get started. There needs to be a 5 minute tutorial and not a tutorial that takes you 2 days to complete. It does not even have to be a real-life tutorial but just a online tutorial that walks you through to your first success.
The ethereum platform has very recently seen the value skyrocket possible because the people that missed out of the upticks in Bitcoin does not want to miss out. It is good, it means that there is more people that has bought in to the platform and want to see it succeeding, but if the developers never get onboard the platform then I don’t believe it will ever succeed.
Let us change this!
Edit:
There is something called testrpc, but not a single tutorial that I have seen uses this. https://github.com/ethereumjs/testrpc