Besides Solidity and Serpent, what are the other (experimental) contract programming languages?
Initial there were three high level languages to develop ethereum smart contracts:
- Mutan, a Golang-like language. It was deprecated in march 2015.
- LLL, a Lisp-like language. Still supported in core but hardly used.
- Serpent, a Python-like language Read the docs. However, it is no longer recommended to use.
Solidity is very successful so far, other non-Ethereum projects also use it, Counterparty for instance.
Update, there is now also Bamboo.
Languages for writing Ethereum smart-contract :
The two primary languages which are used to write Ethereum smart contracts are Serpent and Solidity.
Some key features of these languages are:
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.
Chain – Chain provides enterprise-grade blockchain infrastructure with SDKs in popular languages such as Ruby, Java, and NodeJS.
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
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.