Cat McGee
Cat McGee

Cat McGee

Move over Solidity, these are the REAL blockchain programming languages

You can start coding on web3 without learning a whole new language

Cat McGee's photo
Cat McGee

Published on Nov 21, 2021

5 min read

Web3 isn't just Ethereum. And coding on web3 isn't just Solidity. You can code on the blockchain without learning a brand new language.

Here are the top languages to know to start your web3 developer journey without Solidity:

Rust

Rust has recently taken the web3 developer scene by storm. And for good reason - it's a reliable programming language with a great DX and huge community, both within and outside of blockchain. Rust compiles to WebAssembly (WASM), making it a very attractive language for blockchains to support.

The biggest player for Rust smart contracts is Solana. SOL is the 5th largest cryptocurrency in terms of market cap, and using the scalable & environmentally friendly Proof of Stake algorithm was able to truly battle Ethereum in the NFT scene. Solana is not going anywhere.

NEAR and Polkadot also support WASM-based smart contracts, which allows the use of languages such as Rust. NEAR is a versatile blockchain making huge strides in the multichain community, especially with projects like Aurora which allow a seamless EVM deployment on a more environmentally friendly and cheaper protocol. Polkadot is multichain to its core, utilizing something called parachains to allow benefits of different types of blockchains to work together.

NEAR has been praised for its Rust documentation and onboarding experience, making it a beginner-friendly way to get started using blockchain without Solidity. There are also more and more resources popping up for building smart contracts on Solana, and I recommend looking into Buildspace to learn more.

Python

One of the biggest smart contract blockchains, Algorand, allows developers to write in the most popular programming language this decade (according to Stack Overflow) - Python.

There are two ways to write Python smart contracts on Algorand, either using the Python Algorand SDK or PyTeal which is a Python wrapper around TEAL (Transaction Execution Approval Language), essentially an assembly language.

ALGO recently hit huge all-time-highs and with their focus on being a carbon negative environment-first blockchain, they solve a lot of the problems that traditional blockchain protocols create. They are one of the most solidified players in the smart contract space, and have some of the best documentation out there.

But Algorand isn't the only option for Python developers - Tezos allows developers to write smart contracts using SmartPy, which compiles down to their contract language, Michelson. XTZ has been slowly climbing and following the trends of other blockchains, but there recently hasn't been as much hype around this protocol as others. When they were launched they were hugely successful, and their diversity of smart contract languages and SDKs has huge potential, but we will just have to see what happens with Tezos.

JavaScript

I couldn't end this post without mentioning JavaScript, Tech Twitter's favourite language. JavaScript seems to be able to do anything - including writing smart contracts.

The blockchain NEO, commonly referred to as the Chinese Ethereum, is the most versatile smart contract platform in existence currently. It allows developers to write contracts in Python, Java, C++, C#, Go, and of course JavaScript snd Typescript with NEO-ONE. As with Tezos, NEO was hugely successful when it was launched, only to slowly fade while other smart contracts look over market share. No one knows what's going to happen to NEO, but their community is one of the most technically educated communities I've seen in the crypto space. I have high hopes for it as web3 becomes more accessible to web2 developers.

I also need to give a quick nod to AssemblyScript, a TypeScript-like language that compiles down to WebAssembly. This use case makes it attractive for JavaScript developers wanting to get started on Solana or NEAR, but its community and DX aren't as strong as other WASM languages like Rust and C/C++. The language itself has quite a few known bugs, which makes it not very reliable especially for financial applications or applications that cannot be updated once deployed (i.e. smart contracts). It is however good for learning and understanding a bit more about WASM, so it's worth looking into.

Other languages

Technically, any language that compiles to WebAssembly is able to be used for writing smart contracts, like C/C++. Even Swift and Go have experimental support of WASM. The blockchain space will most likely continue to head in this direction, with more and more languages opening up support.

The main reason I wrote about Rust rather than C++, despite C++ having the larger community, is because Rust is newer and growing at a much faster rate. Many blockchains have specifically mentioned their support for Rust, and with this they have developed SDKs and documentation for it. The communities around smart contract platforms seem to be learning Rust more than any other language, and its growth in the web3 space is exponential.

Despite this, Solidity isn't going anywhere

While smart contracts are more than just Solidity, Solidity is also more than just Ethereum. The EVM opens up a multichain future for Solidity developers without having to code completely new smart contracts for a different blockchain. EVM is short for Ethereum Virtual Machine, and is a sandboxed virtual stack embedded within each Ethereum node. It's how the Ethereum smart contract protocol works - Solidity code compiles down low-level machine instructions (called opcodes) which are then executed by the EVM. You can learn more about this on the Ethereum website.

One of the best things about a multichain future is that blockchains can support each other rather than competing. There are many smart contract platforms that support deploying an EVM project onto their blockchain. We mentioned NEAR's Aurora earlier, but others such as Avalanche and Celo support this too. You can find a more exhausted list here. This means developers can write Solidity code for Ethereum but run their smart contract on multiple other blockchains.

This blog has only talked about developing smart contracts, but blockchain is so much more than that. Interacting with smart contracts is just as important, and many blockchains, even Ethereum, offer SDKs and APIs for doing so in a multitude of different languages.

Web3 is growing, and in 10 years Solidity might even be a thing of the past. We really have no idea what is going to happen in the blockchain space, but one thing we can be sure of is it will continue to be more and more versatile and accessible to get started on.

The future is multichain.

 
Share this