A programação orientada a aspectos permite separar propriedades transversais de um sistema, como sincronização e persistência, em aspectos. Isso evita que o código de tais propriedades seja entrelaçado no código de componentes funcionais. Uma linguagem de aspectos define pontos de junção e conselhos para compor aspectos com componentes. Isso melhora a manutenibilidade e reusabilidade do código.