A programming paradigm that separates cross-cutting concerns (like logging, security, or transactions) from business logic by encapsulating them into aspects that can be applied across multiple parts of an application. It uses techniques like method interception to weave aspects into the main program flow.
Developed by Gregor Kiczales at Xerox PARC in the 1990s, with AspectJ being the first major implementation. The term 'aspect' refers to concerns that cut across multiple modules, like how security affects many different parts of an application.
AOP is like having invisible helpers that automatically handle chores - imagine if every time you entered a room, someone automatically turned on the lights and logged your visit without you asking! Instead of manually adding logging code to every method, AOP lets you say 'log all database operations' once and it magically happens everywhere.
Complete word intelligence in one call. Free tier — 50 lookups/day.