Most will agree that Ethereum has been a pillar of strength within the blockchain scene. Indeed, it’s the foundation upon which so many crypto projects are built. It’s also helped popularize the term “smart contract”; unveiling to the world their potential when implemented on a distributed ledger. Without like-competition, Ethereum has become synonymous with blockchain development in the context of smart contracts.
Solidity is a relatively new contract-oriented programming language developed to enable smart contract construction on blockchain platforms like Ethereum. Unfortunately, this means that Ethereum platform developers must add yet another language to their repertoire in order to create DApps. Sure, some developers have an interest in blockchain technology and its applications. And they will make the effort to learn Solidity. But all others have two hurdles to clear: first, gaining enough interest in blockchain technology, and second, taking the next step to start learning a new programming language. Now if a developer could code in a language they are familiar with, it would be so much easier for them to tell think “hey I’ve got some spare time, I think I might give this blockchain thing a try”. It’s that simple.
According to the 2018 Stack Overflow Developer Survey (of over 100,000 developers), Solidity did not rank high enough to merit a mention in programming languages used. Moreover, a 2018 Google search analysis revealed a similar result, with no mention of Ethereum’s chosen language on the list. This is perhaps more telling than the Stack Overflow result, as Google’s data reveals that even interest in Solidity remains relatively low. This does not bode well for smart contract adoption given global increases in cryptocurrency awareness. Limited interest means limited development, which will inevitably curtail adoption. In other words: a bottleneck.
Developing new programming languages is hardly controversial – if they are actually needed. Why Solidity is supported by Ethereum has been the subject of much debate. Critics suggest it was chosen primarily “as a marketing tool for enabling and onboarding people onto the Ethereum platform.” Indeed, Solidity’s most contentious issues arise from its status as a new language. Lack of documentation and debugging support are particularly noticeable, with former Ethereum COO Stephan Tual asserting that “formal verification, assertions, etc… are all out of the window as of the time of writing even though we knew these were badly needed way back when we launched the project.”
Solidity security remains an additional concern. Critics assert that the language retains an inordinate amount of design flaws. And this study suggests that Ethereum’s many security vulnerabilities derive from the language’s semantics being at odds with mentally intuitive programming. This is particularly concerning given the tremendous amount of funds that Ethereum contracts are tasked with securing.
I’m not anti-Ethereum; it’s an amazing project. However, even great projects have flaws that need to be discussed (particularly if those discussions are beneficial to blockchain technology as a whole). The fact that many developers view Solidity as flawed considerably decreases the likelihood that they will learn it. Given that Ethereum is the world’s number one DApp platform, the need to learn Solidity creates an impenetrable bottleneck for blockchain applications,.
Thankfully the number of alternatives to Solidity/Ethereum is growing. The XTRABYTES DICOM API (Distributed Command Message Application Programming Interface) is currently being created by a team of four developers, including XTRABYTES’ lead developer Borzalom. The DICOM API will allow for XTRABYTES modules to be created in Visual Basic, Java, C++ and several other languages. In essence, XTRABYTES DApp development will be code-agnostic, a feature having massive implications for blockchain adoption. It may well open the door to the millions of developers who have been thinking “I’d give DApp development a go if I could do it in my favorite language”.