# Getting started
Huff is a low-level programming language designed for developing highly optimized smart contracts that run on the Ethereum Virtual Machine (EVM). Huff does not hide the inner workings of the EVM and instead exposes its programming stack to the developer for manual manipulation.
The Aztec Protocol (opens new window) team originally created Huff to write Weierstrudel (opens new window), an on-chain elliptical curve arithmetic library that requires incredibly optimized code that neither Solidity (opens new window) nor Yul (opens new window) could provide.
While EVM experts can use Huff to write highly-efficient smart contracts for use in production, it can also serve as a way for beginners to learn more about the EVM.
If you're looking for an in-depth guide on how to write and understand Huff, check out the tutorials.