There are currently two languages that allow you to code smart contracts on Ethereum: Solidity and Vyper.
Solidity is a statically typed language, which means that variables must be declared with their type before they can be used. This can make Solidity code more difficult to read and write, but it also makes it more secure, as it is less likely to contain errors.
Vyper is a newer language designed for coding smart contracts on Ethereum. It is influenced by Python and was designed to be easier to read and write than Solidity.
Vyper is a dynamically typed language, which means that variables do not need to be declared with their type before they can be used. This makes Vyper code more concise, but it also makes it less secure, as it is more likely to contain errors.
Which language you choose to code your smart contracts in will depend on your own preferences and needs. If you are looking for a language that is easy to learn and use, then Vyper may be the best choice for you.
However, if you are looking for a language that is more secure, then Solidity may be the better choice.