Separation of concerns (SOC) is an important goal in program design. As long as calls to cross-cutting concerns such as logging, object persistence, etc. are simply put everywhere into the source code where needed this leads to a highly coupled system that is hard to change. Because every time you change a feature of these cross-cutting concerns, you may need to recompile a lot of source files and check a lot of calls for consistency. And every time you change the signature of an operation, you have to change all calls to that operation, again touching many separate source files.
Isolating these cross-cutting concerns is the goal of aspect-oriented programming.