My name is Dieter Shirley, and I’m the co-creator of CryptoKitties and the CTO of Dapper Labs.
Our team has been working on the Flow blockchain for a couple of years now, and – like the Libra team – created a new programming language inspired by linear types for our smart contracts. We like to call this new paradigm “resource-oriented programming”, and our language, Cadence, is the first high-level resource-oriented programming language available for use.
Cadence is designed to be easy to read and write, with a familiar syntax inspired by Rust and Swift. Of course, it has Move-style resources built into it as a core concept, with a built in
<- operator for moving resources between variables (
let x <- y instead of
let x = y). It uses a strong, static type system to minimize runtime errors, and allows all methods, interfaces, and transactions to include pre- and post-conditions to enforce expected behaviour (“design by contract”). This results in a language that is easier to learn, significantly easier to audit, and ultimately much more productive than any current alternatives.
Cadence is currently an interpreted language, but I’m excited to say we are working with @sam and the rest of the Move team to find a way to compile Cadence down to Move bytecode for execution on the Move VM. (More details coming soon!)
In the meantime, you can try out Cadence today by using our web-based playground at play.onflow.org. If you act fast, you can join round 2 of the Cadence Cup, a fun, async hackathon that let’s you show off your smart contract skillz to other resource-oriented developers. This week’s challenge: Create a resource-oriented smart contract that enables groups to vote on various actions and outcomes, as per a DAO.
You can read more about Cadence (with a primer on resource-oriented programming) here.