Michelson is a stack-based, low-level programming language crafted for the development of smart contracts on the Tezos blockchain. It is designed for security and precision, with a strong, static type system. While Michelson incorporates elements inspired by functional programming, such as immutability and deterministic computation, its primary architecture is stack-oriented, making it tailored for formal verification processes.
A common misconception is that you need to learn/know Michelson to build on Tezos. Not true! Code in the language of your choice using the following bridge languages which automatically compile down to Michelson: