History & Dialects

Diem / "core" Move introduced the language: modules, scripts, resources stored under addresses with move_to, borrow_global, and so on.

2.1 Timeline

Facebook starts the Libra blockchain project; Move is designed by a team including Sam Blackshear

Libra white paper and the paper *"Move: A Language With Programmable Resources"* published

Libra renamed Diem; the Diem Association continues development

Move Prover matures; former Diem engineers found Mysten Labs (Sui) and Aptos Labs

Diem shuts down; assets sold to Silvergate. Move lives on as open source

Aptos mainnet launches with Aptos Move (global storage, Aptos Framework)

Sui mainnet launches with Sui Move (object-centric model)

Sui introduces the Move 2024 edition (method syntax, public struct, let mut, macros, enums, labeled control flow)

Aptos releases Move 2 (enums, receiver functions, index notation, for loops, compound assignment, labels)

Aptos Move 2.2+ adds function values (closures); Movement mainnet; IOTA Rebased adopts Sui-style Move; Sui adds new Coin Registry and package-management improvements

2.2 The three families

Diem / "core" Move introduced the language: modules, scripts, resources stored under addresses with move_to, borrow_global, and so on. Transactions were often written as scripts (script { fun main(...) }).

Aptos Move keeps the Diem global-storage model, adds the Aptos Framework (0x1::coin, 0x1::account, 0x1::object, 0x1::fungible_asset), entry and #[view] functions, an Object model layered on top of global storage, parallel execution via Block-STM, and the Move 2 language upgrades. Scripts are still supported.

Sui Move removes global storage operations entirely. Everything on chain is an object with a globally unique UID, owned by an address, shared, immutable, or wrapped inside another object. Transactions are programmable transaction blocks (PTBs) that chain calls to public functions; scripts are not used.

2.3 Side-by-side summary

Objects (key + id: UID) Resources under addresses (move_to) + Objects

Owning an object / capability object, TxContext sender none (transfer::* instead)

move_to, move_from, borrow_global(_mut), exists friend / public(friend), Move 2 package visibility PTBs (chain many calls)

Entry function or script (+ multi-agent) Move 2024 edition Coin<T> / Balance<T>

Coin<T> (legacy) and Fungible Asset standard Any key + store object, Kiosk

Digital Asset standard (aptos_token_objects) #[event] + 0x1::event::emit Sui Prover (Asymptotic) Move Prover (aptos move prove)

2.4 Movement and others

Movement builds a Move-based network compatible with Aptos Move tooling (the Aptos CLI and Framework concepts transfer almost directly).

IOTA rebuilt its L1 on a fork of the Sui stack, so Sui Move knowledge transfers.

Initia uses MoveVM in an interwoven rollup ecosystem; Rooch is a Move-based Bitcoin L2; Starcoin and 0L are earlier Diem-derived chains.

When this course says "Aptos Move", the material generally applies to Movement too; when it says "Sui Move", it generally applies to IOTA.