Vyper's goal is to increase security and simplicity while writing smart contracts. To achieve this, the language brings some restrictions when compared with Solidity. These are listed here:
- Modifiers: Vyper does not support modifiers, because it makes it too easy to write misleading code. Modifiers encourage people to write code where the execution jumps around the file and increases complexity. The recommendation is to write these checks as asserts in functions where they are required.
- Inheritance: Contract inheritance makes code too complicated to understand, which negatively impacts auditability.
- Inline assembly: Inline assembly restricts the reader or developer to search for a variable name in order to find all instances ...