OOP(Object Oriented Programming)

Application consists of abstract concepts with blueprints (classes) that can be brought into existence as an entity with a state (instantiating objects). Imperative programs deal with modifying the state of available objects (using methods to change attributes or held values in various objects).

FP(functional programming)

Information (data) is the central focus, and this data flows through transformers (functions), like water through manifold piping. Functions are typically “Stateless”, which means that they are unchanged by their inputs and behave in a very deterministic manner (idempotency). Dataflow programs consists of functions typically strung together in a directed acyclic graph (flowchart) like manner to complete application tasks.

AOP(aspect oriented programming)

AOP is aspect oriented programming and is used in cases where a functionality is required to be implemented across the platform. For eg. Logging is an aspect of the application and not only some classes or a portion of it.