Da tutto ciò che ho appreso su "Aspect-Oriented Programming" o "Aspect-Oriented Software Development", etichettandolo come un paradigma o una metodologia di programmazione sembra essere impreciso. Da quello che posso dire, non è una tecnica fondamentale per la programmazione.
Per chiarire cosa si intende per "paradigma" e "metodologia", fare riferimento alle seguenti definizioni del dizionario del patrimonio americano. Confrontare quanto bene o male "Programmazione orientata agli oggetti" si applica a ciascuno e quanto bene si adatta AOP.
Paradigm: A set of assumptions, concepts, values, and practices that constitutes a way of viewing reality for the community that shares them, especially in an intellectual discipline.
Methodology: A body of practices, procedures, and rules used by those who work in a discipline or engage in an inquiry; a set of working methods.
"La medicina basata sull'evidenza" soddisfa la definizione di paradigma, ma "la medicina basata sull'isterectomia" sarebbe un termine improprio perché lo spazio del problema è troppo ristretto.
Ho l'impressione che AOP possa essere erroneamente chiamato perché basato sul suffisso "programmazione orientata", AOP sta asserendo di essere sia un paradigma che una metodologia allo stesso modo di "Programmazione orientata agli oggetti".
Entrambi questi termini (paradigma e metodologia) indicano una tecnica fondamentale, in cui quello che capisco degli aspetti è una tecnologia per risolvere un ristretto ambito di problemi, forse comparabile in grandezza alla caratteristica variabile statica di Java.
Se è vero che gli aspetti risolvono una serie ristretta di problemi e AOP non è un termine improprio, perché non dovrebbero essere fornite a tutte le tecniche di programmazione il suffisso "programmazione orientata", come "programmazione orientata all'eredità", "programmazione orientata alla dipendenza" o "programmazione orientata all'ambito"?