Solidity is a programming language for writing smart contracts on the Ethereum blockchain. It aims to make writing correct contracts easier by having syntax similar to JavaScript to leverage existing developer skills, expressing concepts clearly through classes for reuse, and making testing and formal proofing of contracts simpler. Solidity also includes features like an inbuilt documentation system and storage constructs to facilitate contract development and ensure contracts behave as intended.