The era of digital pollution
We have now witnessed the most staggering of ICO’s (Initial Coin Offering, IPO’s for cryptocurrencies), the Tezos one, valued at around USD 230 mln. Bloomberg reported that even some bankers are trading big bonuses for the crypto-market, because the potential revenues are currently so extreme.
Next to the huge amount of money pouring into the crypto-currency market, a lot of very bright minds are entering this niche as well.
But it seems everyone is ignoring the elephant in the room.
Jumping the IT-bandwagons
The IoT hype has shown massive deployment of all kinds of devices in several spaces, from the internet to intranets. A lot of new IoT startups emerged, and existing players wanted a piece of the pie as well. But with this massive adoption we are now witnessing consecutive DDOS-attacks, privacy-breaches and malware-infections on a massive scale as well. This collateral damage has started almost as soon as the deployment reached some critical mass (of impact).
The current hype of crypto-currencies is showing huge adoption as well, and we are seeing incredible hacks and thefts already. The DOA-hack and the recent ether-theft amount to millions of dollars. But next to the wild-west-style criminal aspects (theft by exchanges like Mt Gox etc), the critical aspect is actually the same as with the IoT-hype.
What is it, that massive adoption of some new information technology can results in such massive socio-economic collateral damage so quickly? Even when, in the Tezos marketing-video, they claim that the security of their platform is guaranteed by the implementation of program-correctness tools.
It is because the tooling, with which these technologies are developed, is still archaic. And this is the elephant in the room.
Program-correctness is not the issue. The issue is process-correctness.
Higher abstraction levels anyone?
The software-industry is still developing software at low abstraction levels, just like 40 years ago. There have been attempts at higher level software design with UML and MDA (Model Driven Architecture) and the likes in the 90’s, but these techniques were still too immature to be able to fully abandon low-level implementation. And the attempts are still being done. BPML (Business Process Modelling Language) is the current de facto standard for designing processes, but the step to automated generation of code is yet to be taken.
The good thing of these attempts is that such high-level design languages (with processes, contraints, properties, etc) will prevent naive and buggy low-level implementations of standard functionalities by unexperienced developers. Even more importantly, the designs can actually be validated by domain experts. The case for higher-level languages is evident.
Increasing digital pollution
And now, the collateral socio-economic damage of software that is still being built the old way is becoming so huge, that we cannot afford not to fix this issue first, before jumping the next hype and flooding the world with even more crappy software. Our digital world is being polluted by crappy software almost irreversibly, in fact very analogous to the global natural environmental pollution as a collateral of our industrial revolution.
For example: the programming examples of the new smart contracting language of the Tezos-platform show how to check if the balance of some account is high enough to perform some transaction to another account, at low level. This means that pitfalls like concurrency, race-conditions, and things like that, immediately enter the room as well. This typical problem, however, has been solved numerous times. It is just absurd to develop (yet another) new language for smart contracts that requires the developer to think about and implement this plumbing yet again, while the current hacks on the ethereum-platform display this issue so evidently.
This pattern is strikingly analogous to the events in the financial sector in the years prior to the crisis of 2007 and 2008. Every self-respecting financial institution was publishing their own financial derivatives, yet they were ill-constructed, poorly understood and barely validated. Rating-agencies and supervisory bodies did not stop this, and these products were deployed on a massive scale. These junk-mortgages and related products became the biggest pollution of the financial sector in history (and it goes on with bad car-loans, student-loans, and the immensely destructive HFT-sector.)
The IT-sector, in that respect, shows the same destructive dynamic as the financial sector, with a useless braindrain in its slipstream.
The pollution in our natural environment, our financial environment and our digital environment are already irreversible. The promises of new technologies are consistenly compromised as soon as some critical mass of their adoption emerges.
Saving our IT-industry from getting the same bad image as the financial industry currently suffers from, will require more than big brains.
It will require very big hearts.