What The F*** is Cadence?

Luke
3 min readMar 1, 2023

--

We take a look at what “Cadence” is in the Flow universe.

For those of you who haven’t (yet!) developed on Flow, you might not know what Cadence is. Which is sort of funny, because it’s kind of the entire backbone of Flow. So, let’s get into it.

Defining Cadence
Cadence is the name for the programming language of Flow. It is a resource-oriented language that introduces new features to smart contract programming, to help developers ensure that their code is safe, secure, clear, and approachable.

What That Actually Means
You can sort of think of Cadence to Flow as what HTML is to Web pages. Except, it’s so much more powerful than that. The point is, if you want to code on Flow, you’ll want to know Cadence. Note that I said code, not build. Thanks to a range of no code tools, you can actually build and deploy products and features on Flow without ever doing a line of code! But, back to the topic at hand.
To really stress just how powerful Cadence is, here’s a snippet from the Flow Developer Portal:

Most smart contract languages currently use a ledger-style approach to record ownership, where an asset is stored in the smart contract as an entry in a central ledger, and this ledger is the source of truth around asset ownership.

In a resource-oriented language like Cadence, resources directly tie an asset to the account that owns it by saving the resource in the account’s storage. As a result, ownership isn’t centralized in a single, central smart contract’s storage. Instead, each account owns and stores its own assets, and the assets can be transferred freely between accounts without the need for arbitration by a central smart contract.

As you can see, Cadence not only creates a more true level of “ownership”, it also creates opportunities to create powerful Smart Contracts thanks to this resource-oriented approach. In a resource-oriented ownership model, the control is in the hands of those that own keys to the account that contains the resource. This is one of the big reasons Flow stands out from the crowd of powerful Blockchain protocols.

I have no idea what any of this means, but it looks good.

When It’s Used
Anytime someone is talking about coding on Flow, they’re going to talk about Cadence. Off the bat, it’s important to note that whilst one of Flow’s main use cases has been NFTs, Cadence can do so much more than just coding for NFTs. As time goes on, I strongly suspect we’ll see more unique applications and concepts built with Cadence. To be honest — I can’t bloody wait to see it!

Where To Learn More
There’s a few key places to learn more. First off, there’s the dedicated Cadence section of the Flow Developer Portal. Or, you can take on a Cadence Boot Camp with Emerald City DAO. These free boot camps are the perfect guide to getting started coding with Cadence, even if you’ve never touched a programming language before! There’s also dedicated Cadence discussion channels in the Flow Discord. I’d also really recommend giving this article from Benjamin Ebner a read, as it dives into the advantages of Cadence vs Solidity and other Blockchain Programming Languages.

A perfect way to get started learning Cadence!

There’s so much more I could say about Cadence, but this is meant to just serve as an introductory guide. Perhaps in the future I’ll put out an article that gets a bit more into the meat and potatoes of it.

I’ll be posting a different What The F*** Article every Wednesday, covering different terms you might have heard around the Flow Ecosystem. Now, I’m going to get to my typical drinking cadence and crack open a beer this afternoon. See you in the next article!

--

--