Other Specific Languages For Smart Contracts Construction
After the initial Bitcoin scripting language was introduced as a part of a novel blockchain proposal, many different solutions appeared to substitute and expand it. They can be divided into several groups according to their key properties.
The first group sticks to the same scripting ideology. The majority of its representatives are used for creating Bitcoin clones and forks. Although, some other implementations exist. The second group includes various common programing languages, like C++, Python, or GoLang, which are necessary for smart contracts construction. Developers rely on the popularity of these languages. As a rule, they are utilized in huge technological solutions, such as Hedera, Hyperledger, EOS, NEO, etc. The third group includes unique languages addressing such proposals as the Ethereum Virtual Machine (EVM) — Solidity, LLL, Vyper, and some others.
The implementation of an independently developed language gives both huge competitive advantages and requires a lot of efforts. So it’s not a surprise that only several companies decided to follow the Ethereum team's path and develop their own languages.
Cardano (Plutus, Marlowe, Simon)
The first solution we are going to talk about is Cardano. It is intended to be an open-source blockchain project for creating smart contracts. Its smart contracts are claimed to be highly developed and flexible. Backed by a significant scientific background, Cardano comes from the formal proofs to the engineering development.
This project has no whitepaper because authors prefer to produce engineering and scientific researches related to the topic, and then unite them. However, the vision paper holds information on two original languages called Plutus and Simon. It is stated that several different languages must be provided to support the functionality of different platforms.
It seems that Simon was either abandoned or replaced by another language called Marlowe. This was proved by the plans of developers to disclose Simon’s specification during the Shelley CSL release planned in Q4, 2017. However, from December 2017 to this day there is no information about this language.
In contradiction, Plutus is still active. It is permanently updated and developed. The language has strict typification. It is functional in its core and has a Haskel-like syntax.
There is another language mentioned on Cardano-related resources. It is called Marlowe. We can’t say that this language belongs exclusively to Cardano, since it is developed separately and planned as platform-independent. This language was strongly influenced by languages for developing financial contracts.
Anyway, Cardano has a huge potential and a complex development plan.
Another famous platform called Tezos also uses its own solution. In its core, it has an ability to reach meta-consensus. This means that technically Tezos tries to reach two consensus states. The first state concerns the blockchain update, while the second one is about rules that apply to this update.
Smart contracts here are written in the Michelson language. It is strictly typed, uses a memory area called stack for its operations, high level data types and primitive components. The program in Michelson acts as a sequence of operations processed to receive results. An outcome of one operation might become either the input for the next one, or a final result. The Tezos development page contains full language explanation, examples, and the list of most common mistakes.
It is very interesting to observe the evolution of internal blockchain languages in dynamics. Starting as common scripting codes, they have evolved to full-functional high-level programing products applicable in many cases. Regardless of their flaws and pessimistic predictions about the future of the blockchain environment, they will remain the evidence of the large-scale engineering and technical evolution.