What is Solidity?
Solidity is a primarily Ethereum programming language tool used to create machine-level code that is executable on EVM; in other words, it takes human-readable code and turns it into implementable smart contracts on blockchain platforms.
Solidity was proposed and developed starting in 2014 by core Ethereum contributors including Gavin Wood, Alex Beregszaszi, Liana Husikyan, and Yoichi Hirai as a way to simplify and enable smart contract writing applications that support the implementation of self-enforcing business logic. It is now the primary Ethereum language, and also operates on other competing private blockchains.
What does Solidity offer?
Programming languages create actions by directions called function calls. Solidity knows major two types of function calls: internal function calls and external function calls. Internal function calls do not create an actual EVM, or message call. External ones do.
Other available function calls also exist. Private function calls and state variables are only visible within the contract they are in, and not in derived contracts. Public function calls are a part of the interface that makes up the contract, and can be called internally or via external message.
Additionally, Solidity offers modifiers, which change the behavior of functions. They can be used to check conditions, override contracts based on certain properties, and set up unique parameters for certain contracts.
Contracts can also have fallback functions created within Solidity. These are valuable when a transaction doesn’t have the earning potential it will cost to execute, or if there is no other set of conditions that match the condition being presented.