Aspect Oriented Programming

Aspect Oriented Programming – Promising New Technology

 

Aspect Oriented Programming

Aspect Oriented Programming

The need for aspect oriented programming arose from the limitations of object oriented programming which is a more or less static method of programming. Both of these terms refer to programming paradigms, and aspect oriented programming (AOP) is a specific programming paradigm that seeks to separate cross cutting concerns which is not easy to do in object oriented programming (OOP), and thereby it serves to complement object oriented programming and expand possibilities of operation.


Various typical cross cutting concerns include logging, context-specific error handling and so on. While object oriented programming usually confronts certain pragmatic problems since developers and programmers find it difficult to maintain codes as it becomes difficult to separate modules since each class necessarily shares common and secondary relations with other classes. Therefore a minute variation in the code design could lead to a magnified change in other completely unrelated modules, since all of them are bound together and it is hard to separate these modules. Aspect oriented programming on the other hand seeks to bypass this major problem connected with object oriented programming by allowing the process of separating modules by the separation of cross cutting concerns. To do so aspect oriented programming separates cross cutting concerns into units known as aspects. Therefore, aspect oriented programming involves the restructuring of programming into cohesive but distinct parts. However despite these advantages, it must also be kept in mind that any mistake committed in expressing the crosscutting concerns could lead to a massive program failure.

The implementation of aspect oriented programming can vary based on the languages used and the conditions surrounding (that is, the environment of) the implementation. Aspect oriented programming also involves a host of new terminologies associated with this programming paradigm. The basic concepts and terminology associated includes crosscutting concerns, advice, pointcut and aspect. There are various programming languages that use aspect oriented programming including Java, .Net Framework, Python, AutoHotkey, and many other programming languages.