Plutus is a set of functional programming tools and libraries for developers based on the Haskell programming language. It also has a testing environment for Plutus contracts based on the Plutus Playground, a web-based blockchain emulator. Marlowe has been designed for those in the finance industry, with no programming background to generate code and automate transactions using the blockchain. It has its own web-based testnet called Meadow.
The tools were announced at the inaugural PlutusFest conference in Edinburgh, Scotland, last week. Charles Hoskinson, CEO and co-founder of IOHK, sees the tools as complementary assets that will allow both developers and financial entities to develop Cardano smart contracts.
“Ontologically, Plutus is all about saying ‘How do I write software for this new paradigm where I have decentralized infrastructure, but I accept that the client has some power and the server has some power, and how do I reason about what am I giving up, who am I trusting, what does it cost to actually run this and how do I know if it’s correct or not?’” Hoskinson said at the conference. “Marlowe is about saying let’s do that, but let’s do that for financial contracts and do that in a very specialized application.”
The announcement came ahead of the full release of the decentralized Cardano blockchain in 2019, enabling companies to prepare financial smart contracts and products in advance.
“Its core language for on-chain code has been kept extremely simple to make it future-proof and so it supports verification,” Wadler said, per a press release handed out at the conference. “The core is taken directly from the work of the French logician Jean-Yves Girard and the U.S. computing researcher John C. Reynolds, who independently invented the same system.”
According to IOHK, Plutus enables a high level of code correctness, resulting in the reduction of software vulnerabilities that have led to hacks of some blockchains.
Unlike Plutus, which is a general-purpose language package that can be used within a wide range of applications, Marlowe is restricted to financial smart contracts to make the development process simple. It relies on financial knowledge rather than programming to create smart contracts that are reliable and secure, according to IOHK.
Speaking about the launch of Marlowe, professor Simon Thompson from the University of Kent said that Marlowe is an embedded domain-specific language in the Haskell programming language, adding that “as it stands, the implementation of Marlowe is the biggest Plutus contract working on the blockchain.”
Referring to the on-chain and off-chain code, Thompson notes that Marlowe has the code that runs on-chain that “ensures that contracts on the Marlowe blockchain are enforced; they only do what they should do.”