Software consists of models, which are language artifacts that represent systems in a human-friendly syntax. All language artifacts, including models, are expressed in code according to syntactic rules. Modeling languages aim to balance simplicity and expressiveness through the use of multiple syntax elements borrowed from existing notations. The goal is to improve clarity and reduce communication costs compared to code without models. As software evolves, it continuously shapes and is shaped by its users through fast feedback loops.