14

Besides Solidity and Serpent, what are the other (experimental) contract programming languages?

4 Answers 4

14

Initial there were three high level languages to develop ethereum smart contracts:

Later, Solidity was introduced as the 4th language. Solidity could one day very well replace all other existing high level languages, Stephan Tual says. Read the docs.

Solidity is very successful so far, other non-Ethereum projects also use it, Counterparty for instance.


Update, there is now also Viper Vyper.


Update, there is now also Bamboo.

1
  • 2
    The link to the Solidity documentation seems to be broken, the new documentation seems to be here solidity.readthedocs.io
    – Uberswe
    Commented Sep 16, 2017 at 23:54
2

Languages for writing Ethereum smart-contract :

The two primary languages which are used to write Ethereum smart contracts are Serpent and Solidity.

Serpent is the older language which has become out of date as of September, 2017. Solidity, which is a javascript based language, has now become the recommended language for writing smart contracts. Security vulnerabilities have also been found in Serpent recently, which makes it an unattractive platform for development.

Some key features of these languages are:

Solidity – Solidity is a contract-oriented, high-level language whose syntax is similar to that of JavaScript and it is designed to target the Ethereum Virtual Machine (EVM).

Serpent – Serpent is a high-level language designed for writing Ethereum contracts. It is very similar to Python, but as of September, 2017, Solidity is the preferred language of development for Ethereum developers

Upcoming Smart contract languages

Solidity is currently the most popular language for smart contracts.

There are a few upcoming smart contract languages which can become important in the future:

Viper – Viper focuses on security and language and compiler simplicity. It has a python-like indentation scheme.

Lisk – Lasik uses javascript as a smart contract language.

Chain – Chain provides enterprise-grade blockchain infrastructure with SDKs in popular languages such as Ruby, Java, and NodeJS.

1

This is an old question, but that comes in the Google search, so here is the 2023 update. Happy to report that a lot of smart contract language research and development happened since 2016.

  • A lot of chains are adopting Rust: Arbitrum, Solana, NEAR, everything in written Cosmos SDK

  • A lot of chains are adopting WASM or eWASM-based VM. Because WebAssembly is a generic compilation target, you can write smart contracts in any language that compiles to WebAssembly (Rust, C, C++, AssemblyScript)

  • New from scratch smart contract languages include Move (Aptos blockchain), Sway (Fuel), Scrypt (Radix), Cadence (Flow). Outside Sway, all these languages are asset oriented, making them more secure. There is also the rumour is on the street that Sway EVM port might be on its way and this language is not limited to new chains.

  • There are a couple of smart contract VMs using Python as a domain-specific language where one writes smart contracts in Python, the source code is analysed and translated to a different bytecode

  • Chia went with Lisp, and I believe Zilliqa went with Lisp as well

  • Agoric uses a flavour of JavaScript - as far as I know this is only softly typed smart contract programming language

  • There are some private blockchain smart contract programming languages like Daml that focus on banking and traditional assets

In other news, Vyper and Solidity are the Ethereum smart contracts that become mainstream.

1
  • Maybe worth to mention: CosmosSDK started with Go, and thus the CosmosSDK is written entirely in Go: github.com/cosmos/cosmos-sdk. They then started to adapt Rust especially for Wasm specific app-chains and created a new SDK in rust called "cosm-rust": github.com/cosmos/cosmos-rust
    – itinance
    Commented Mar 30, 2023 at 6:38
0

The Radix language is Scrypto which is a variant of Rust. Zilliqa introduced Scilla although I think they are moving to something else.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.