Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of fraud or third party interference.
In order to build decentralized applications on Ethereum, you need to use a programming language. There are currently 8 languages you can use to program on Ethereum: Solidity, Serpent, LLL, Mutan, Clojure, Vyper, Bamboo, and Rust.
Solidity is the most popular language used for Ethereum smart contracts. It was created specifically for Ethereum and is influenced by C++, Python and JavaScript.
Solidity is a statically typed language which allows for complex user-defined types and inheritance.
Serpent is the second most popular language used on Ethereum. It was also created specifically for Ethereum and is based on Python.
Serpent is a dynamically typed language which allows for complex user-defined types.
LLL is a low-level Lisp-like language used on Ethereum. LLL was created specifically for Ethereum and is based on the Lisp programming language.
LLL is a statically typed functional programming language which allows for simple user-defined types.
Mutan is a low-level bytecode language used on Ethereum. Mutan was created specifically for Ethereum and is based on the Go programming language.
Mutan is a statically typed functional programming language which allows for simple user-defined types.
Clojure is a dialect of the Lisp programming language used on Ethereum. Clojure was created specifically for Ethereum and is based on the Java Virtual Machine (JVM).
Clojure is a dynamically typed functional programming language which allows for complex user-defined types.
Vyper is a new experimental programming language used on Ethereum. Vyper was created specifically for Ethereum and is based on the Python 3 programming language.
Vyper is a statically typed functional programming language which does not allow for inheritance or user-defined types.
Bamboo is an experimental domain-specific language used on Ethereum. Bamboo was created specifically for Ethereum and is based on the Haskell programming language.
Bamboo is a statically typed functional programming language which allows for simple user-defined types.
Rust is an experimental systems programminglanguage usedonEthereum .Rustwas notcreated specificallyforEthereum but has been gaining popularity among developers as an alternative to C++ .
Rustis afunctionalprogramminglanguage with an emphasison safety ,speed ,andconcurrency . Rust does not allowforinheritance but does allowfor complex user – defined types .