Wavelet Supports AssemblyScript

Bridging 11+ Million Developers to Smart Contract Development

Liew Jia Jun
PERL.eco
4 min readAug 5, 2019

--

Wavelet can process over 31,240 payment transactions per second, highly secure and truly decentralized — all of these may be great, but what good would it be if there aren’t many dApps running in the ecosystem?

At Perlin, we believe that the key to mass adoption and Wavelet’s eventual success lies with the developer’s willingness to create and publish their dApps onto Wavelet. With a significant increase in the interest of blockchain technology, why aren’t there more smart contract developers?

StackOverflow’s survey has shown that a majority of software developers are interested in doing smart contract development. This doesn’t come as a surprise as smart contract development is ranked at the top 10 for the most sought after skill on LinkedIn’s 2019 Asia Pacific Report.

There are interest AND demand for smart contract development, yet people are shying away from it… but why?

Presently, the de-facto method for writing smart contracts has almost always been to write smart contracts in Solidity. However, not many developers have a solid enough grasp of Solidity to be able to develop production-ready smart contracts right away.

This is a HUGE barrier for developers who want to start crafting smart contracts today.

The amount of time needed to truly master Solidity is a serious impediment to fostering an ecosystem for adoption.

Rust

If you didn’t already know, we have a documentation on how to create smart contracts using Rust, as well as a tutorial on creating a decentralized chat on Wavelet.

The intermediate language that Wavelet’s smart contract engine utilizes is WebAssembly — which is a universal binary format designed for secure, fast and sand-boxed execution. Along with Rust, WebAssembly can compile many other languages as well.

Our initial decision for supporting Rust was not just for it’s safe and explicit nature — but also for the significantly greater activity and engagement of the open-source community for these already commonly used languages compared to Solidity.

Just the amount of open-source developers supporting Rust easily blows Solidity out of the water.

But honestly, these numbers alone don’t make such a big margin. We want even more developers to develop smart contracts on Wavelet. But how?

Enter AssemblyScript

After months of iterating our Rust smart contract support, we began adding official support for multi-language smart contract development. We chose AssemblyScript after Rust because of its simplicity, familiarness, binary compactness and the developer community behind the language.

AssemblyScript is a syntactical subset of TypeScript, which is a typed extension of JavaScript. If you can code using JavaScript, it won’t take long for you to learn TypeScript and AssemblyScript.

There are multiple benefits to writing smart contracts using AssemblyScript — a flat learning curve, a well-designed yet simple syntax and type system, an abundance of packages from the TypeScript ecosystem and most importantly, great community support for your language-related questions.

Credit: SlashData Global Developer Population 2019 report

According to SlashData’s Global Developer Population 2019 report, there are currently 11.7m active JavaScript (Including Coffeescript and TypeScript) developers based on an estimate of just under 19m developers.

This means that more than 61% of active developers can start building on Wavelet TODAY!

Furthermore, many existing TypeScript applications can be ported to Wavelet effortlessly.

Integrate smart contract functionality into your JavaScript applications? No problem.

Interact with the Wavelet Ledger from your JavaScript application? Easy.

Build a multiplayer MMO game on Wavelet using JavaScript? Do it.

And we are not stopping here, for all the hardcore Solidity enthusiasts out there — we will also provide WebAssembly support for Solidity on Wavelet!

Empowering developers is a core focus for the Perlin team and we’re making it easier for developers to join our ecosystem by increasing support and functionality!

external function _contract_init() { log(“hello world”) }

There, just made a smart contract that says “hello world”. It’s that easy.

#888

--

--