A programming language designed to improve blockchain tech is rolling out. Learn all about what it is, how it works, and how it could change Web3 development.
New Blockchains like Aptos and Sui are using the Meta-developed Move language to create new ecosystems. These new networks are promoted as a step up in blockchain technology but what unique benefits does the Move language have for smart contract development and new applications? Let this article be your guide and high-level explainer to Move and what it could hold for the future of Web3.
What Is The Move Programming Language?
Move is a language that was originally designed to support Meta’s Diem blockchain project (rebranded from Libra) that was ultimately halted. Once the project was stopped, former members of the Diem team took matters into their own hands to bring the tech they built to the blockchain world. This includes the founders of Sui and Aptos whose names are recognizable as authors of the above whitepaper.
These two teams are bringing the new technology and lessons they learned from building Diem to Web3. The Move language is a big part of this as it creates the commands, instructions, and syntax that new blockchains like Aptos and Sui operate with – it’s also the basis for future applications that can be built on top of these chains.
What Main Benefits Does Move Provide for Web3 Developers?
Familiarity With Rust
With programming languages, many developers like to enter an environment that is similar to something they already know how to work with. Since Move was built with Rust and shares much of the same syntax and functionality, it provides an easy way to get started in smart contract and dApp development for many experienced developers.
Improved Security
Move provides some built-in security features that make it more difficult for builders to make mistakes that could lead to on-chain exploitations. Move’s inner workings make it more resistant to vulnerabilities and blockchain attacks such as Reentrancy. Reentrancy is one of the most widely used and destructive attacks that frequently target Solidity smart contracts.
Enhanced Efficacy & Adoption
Since Move was a such heavily researched and developed language from the Meta/Diem team, building on it provides the above benefits as well as a potential peace of mind knowing that blockchains and their applications were created with it. Having increased trust in these systems with less vulnerability and hacking (some of the core issues of decentralized applications) is definitely a step forward for layer 1s, DeFi, and everything in between.
What Makes Move So Unique?
Move was created to improve on previous languages for smart contract development to provide more security and more blockchain-specific benefits. The “best” programming languages should ideally be relatively easy to learn and get started, similar to other languages that devs are already familiar with, and provide the technical advantages that make building easier.
Move has many unique aspects, but here are some of the key differences:
- Defining custom resource types: With Move, resources can’t be copied or discarded, just moved between storage locations. This resource-first concept provides a huge help for programmers to write secure and efficient code that also improves the composability of assets as they can be set in their own unique categories, while also building in native scarcity and access control properties.
“A robust and elegant approach to programming with assets requires a representation that preserves these characteristics.” (Whitepaper)
- Modules: Move creates a good deal of flexibility as it takes concepts from object-oriented programming like modules. Move modules enforce data abstraction (a simplified representation of elements) and localize essential operations on resources. Modules combined with other Move protections ensure that the properties established for a module’s types can’t be corrupted by code outside the module.
“Move modules are similar to smart contracts in other blockchain languages. A module declares resource types and procedures that encode the rules for creating, destroying, and updating its declared resources.” (Whitepaper)
- Static Typing: In “statically typed” languages like Java, C, C++, and Move, developers must declare all variable types explicitly as the variables need to be known when compilation occurs, unlike more dynamic languages like Solidity. This leads to many easy-to-fix program bugs being detected during the compilation phase by a bytecode verifier instead of during execution or deployment, where bugs can be more problematic.
“No Move program can be published or executed without passing through the bytecode verifier.” (Whitepaper)
Some popular languages to create smart contracts include:
- Solidity - The most used language of Ethereum smart contracts as an object-oriented language with similarities to JavaScript, C++, and Python.
- Vyper - A Python-based programming language for smart contracts designed to be used with the EVM.
- JavaScript - JavaScript is an object-oriented language that is dynamic, lightweight, and well-known as a very old pillar of web design.
See more languages for smart contracts.
What Does Move Development Mean for Web3?
It is too early to say how the first major blockchains that utilize Move (Sui and Aptos) will do, but having the Move language as a basis for building provides serious benefits for current and potential Web3 developers. With a language that is familiar to learn with new security benefits, we can arm devs with new tools to build safe, high-performance applications running on top of what could be the next generation of layer 1 blockchains.
https://www.ankr.com/blog/what-benefits-does-the-move-language-offer-web3/
All Comments