Smart contracts are a way to decentralize the controlling logic and payment functions of applications.
You can think of a smart contract replacing a server-side (“backend“) component in a regular application.
The most popular languages for writing smart contracts on Ethereum are Solidity (inspired by C++, Python and JavaScript) and Vyper (based on Python).