Solidity is the language of choice for writing smart contracts in Ethereum. A solidity smart contract is a collection of code (functions) and data (state) that resides at a specific address in the Ethereum blockchain.
Solidity is a statically typed, high-level language which is influenced by JavaScript, Python, and C++. Solidity supports inheritance, libraries, and user-defined types, and is designed for EVM.