Solidity is a statically-typed programming language designed for developing smart contracts that run on the EVM.Solidity is compiled to bytecode that is executable on the EVM. With Solidity, developers are able to write applications that implement self-enforcing business logic embodied in smart contracts, leaving a non-repudiable and authoritative record of transactions. Writing smart contracts in smart contract specific languages such as Solidity is referred to as easy (ostensibly for those who already have programming skills).
As specified by Wood it is designed around the ECMAScript syntax to make it familiar for existing web developers; unlike ECMAScript it has static typing and variadic return types. Compared to other EVM-targeting languages of the time such as Serpent and Mutan, Solidity contained a number of important differences. Complex member variables for contracts including arbitrarily hierarchical mappings and structs were supported. Contracts support inheritance, including multiple inheritance with C3 linearization. An application binary interface (ABI) facilitating multiple type-safe functions within a single contract was also introduced (and later supported by Serpent). A documentation system for specifying a user-centric description of the ramifications of a method-call was also included in the proposal, known as “Natural Language Specification”.
Let’s define, what is so special about the solidity web development. Why would you prefer to build your product within this environment?
Solidity provides Inheritance properties in contracts including multiple level inheritance properties.
Smart contracts provide a secure, easy and reliable medium for various sources which have involvement of two parties to do an agreement on something.
Contracts support complex member variables in hierarchical mapping and structures.
Multiple type-safe functions are also supported in Solidity through facilitating ABI(Application Binary Interface).