The tech lead of Facebook's new cryptocurrency subsidiary explains Move, the programming language it designed specifically for Libra

Advertisement
The tech lead of Facebook's new cryptocurrency subsidiary explains Move, the programming language it designed specifically for Libra

Representations of virtual currency are displayed in front of the Libra logo in this illustration picture, June 21, 2019. REUTERS/Dado Ruvic/Illustration

Reuters

Representations of virtual currency and Libra logo illustration picture

Advertisement
  • When Facebook introduced its new cryptocurrency Libra earlier this month, it also unveiled a new programming language, called Move.
  • Move is specifically designed for blockchain transactions and building apps that work with Libra, and it has special properties that allow it to move Libra coins without the money accidentally disappearing or being duplicated.
  • Move is open source, so developers can start using and making updates to the technology.
  • Read more BI Prime stories here.

Last week, Facebook announced a brand new cryptocurrency of its own called Libra - an initiative that has already drawn the attention of Silicon Valley, government officials, and even astrologists.

Less noticed was the fact that Facebook also launched a new programming language to use with Libra, called Move. This language is specifically designed for blockchain transactions, and for developers to build apps that work with Libra. It's still in its early stages, but the idea is that the Move programming language allows apps to move Libra coins from one account to another without being misplaced or duplicated.

"One of the things that's powerful about Move is it's very expressive," Ben Maurer, tech lead for the Libra-focused Facebook subsidiary Calibra, told Business Insider. "Move can express things ranging from simple transactions like sending money to more complex transactions like how money is created and destroyed."

It's also an open source project, meaning that anyone can add improvements to the code, try it out, or download it for free. Although Libra won't be available until 2020, if users want to get started in experimenting with Move, they can visit the project on GitHub right now and learn to use it on the Libra developer website.

Advertisement

Maurer says that Libra and Move were designed alongside each other, and share a common inspiration in the form of Rust, a popular programming language originated at the Mozilla Foundation. Libra was implemented in Rust, while Move borrows some concepts from the language.

"One of the philosophies we had was to take a holistic view on what we're creating," Maurer said. "The system was designed together to make sure all the different parts worked and work in conjunction with each other."

'So, you want linear types?'

When Maurer first started working on Libra about a year ago, he ended up printing out so many academic studies for research that he broke the office printer, he says.

During this period, he realized that blockchain is specifically designed for sensitive assets like money and other financial instruments. But there aren't any programming languages designed to handle those uses, in the same way that languages like Python are designed to handle large data sets.

Maurer brought up his concerns with Facebook research scientist Sam Blackshear. As Maurer was rambling on about the problem, Blackshear broke it down: "So, you want linear types?"

Advertisement

Now, linear types are one of core features of Libra. It uses linear logic, which means a resource can be neither copied nor discarded, only moved around between the various subroutines of a program.

This linear approach is desirable for applications like Libra - you don't want money to be copied or discarded either, after all.

Still, Maurer says, there were no programming languages that specifically took this into account.

Underscoring its special purpose, Move has a special feature, known as resource values, to prevent programmers from making the mistake of accidentally copying Libra coins. Without it, it could be like pulling a $10 bill out of your pocket to give to a friend, and then pulling that same $10 bill out of your pocket again.

Move ensures that these resource values are moved exactly once, instead of copied, so coins move around without the possibility of duplication.

Advertisement

"It's dealing with moving assets around and defining how assets are stored in the blockchain," Maurer said.

Read more: 6 things we're still wondering about Libra, Facebook's new cryptocurrency coming in 2020

Move is still in its infant stages and is primarily used for Libra, but Maurer predicts that over time, developers will use it to build various applications for sending money. Blackshear has even heard tell of a chemistry teacher who wants to use Move to teach students how to balance chemical reactions.

"People have taken all sorts of different applications and explored them being on blockchain," Maurer said. "That's something where we'll start to see people experiment with different directions. That's something that will evolve over time."

{{}}