Charles Hoskins, CEO of IOHK, recently hosted a surprise “Ask-Me-Anything” (AMA). In the recorded livestream, Charles answered 26 live questions posed by the community. The full AMA is provided below but for this forum post we have selected one key question to summarize:
How many languages will Cardano support for smart contracts and DApps to be written in?
Answer: The goal of Cardano is to both principled and pragmatic. To achieve this, Charles and the team at IOHK have gone out and investigated the three collection of problems that need solving when you think of computation.
Firstly, there is the computation around accounting. This is what Bitcoin and other cryptocurrencies looked to solve. Unfortunately, their capabilities only cover a small sliver of the wider, rich, financial ecosystem. Hence why IOHK have decided to build an accounting ledger that allows you to represent the types of assets and those types of transactions in the most efficient way possible. This has led them to create a domain specific language called Marlowe, and a general purpose programming language that Marlowe embeds into called Plutus. Additionally, they rigorously studied UTxO accounting models to come up with a way to issue assets within that model to be interoperable with the Ethereum-style account model. They are now getting to the point where they are starting to execute thought experiments about different types of exotic transactions, ensuring the security assumptions are there and finishing what Bitcoin started.
Secondly, you have Ethereum-style computation models. The problem is that that model at the moment does not scale. Anyone actually using this model for anything more than a toy has had to interface that with off-chain activity, meaning they have had to leave Ethereum or had to build a two layer network. IOHK have multiple research streams on how to make this model better; notably, their research and work with Runtime Verification to create the IELE Virtual Machine from the ground up for smart contracts. They have also invested in research on Semantics Based Compilation. Basically, the concept is if you take a language and you write that language in a very special way, you pay that cost one time. Then you can take a program written in that language and translate into another program written in another language that has also been written in that careful way. So, if you have K semantics for one language and K semantics for another, you can do some notion of translation between the two. If this project is successful, they will have built a universal compilation target and all one would have to do to support a new language is to write the semantics of that language. Charles notes here that there is another advantage in that if you upgrade your base layer, so for example, IELE 2.0 is released, you would only need to update semantics of IELE and nothing else in the system. Currently, there is a problem with upgrading the base layer in that all compilers must also be updated or you are stuck on the legacy version.
Finally, Charles and IOHK are looking at alternative models of computation, similar to what Enigma is doing with Intel. The IOHK research underway at Tokyo Tech is looking at multi-party computation. This is when you want to separate the transaction from the blockchain. For example, in poker, a user may like the blockchain as a payment system and to connect to other players, but they won’t care if a poker game is preserved or not. They will care if it is a fair game, if people can’t cheat, if they are playing against reasonable people, and if they get paid for their winnings at the end of the game. Putting all of this on the blockchain has clear disadvantages such as the settlement time being constrained to the settlement time of the entire network. If you have 10 minute block time, like in Bitcoin, you have to wait ten minutes for the state of the game to update and to see the next round. Therefore, the blockchain model is really bad for those types applications. And those types of applications turn out to be a large majority of the applications we tend to care about. That is why IOHK is investigating these options and looking into how these capabilities can be brought into Cardano.
So to answer the question, Charles does not provide a hard number on the languages that Cardano will support but it is evident that through the comprehensive research and workstreams at IOHK, many many languages will be functional.