Solidity
Solidity is the most advanced programming language created for developing smart contracts on the Ethereum network. Its syntax is similar to JavaScript, but with statically typed variables and functions. It provides simple features, such as functions, loops, and several types of variables, as well as complex functions, such as assembly, encryption functions, and signature verification systems.
It's been used in many projects, especially ICOs, with great success, so it's mature enough to be used by any kind of developer interested in developing decentralized applications and secure smart contracts.
The main drawback of it is that it's harder to secure, given that it provides a more complete set of features that could lead to security issues if not audited.