A *(term). We say that feature A is orthogonal to feature B if you don't have to care about feature A while thinking about feature B.

_(C++), for example, embodies lack of orthogonality in language features, following in that the general trend of "OO" languages: it's like a swiss army knife with all blades soldered in open position; you can do lots of things with it, but everytime you use one feature, the other ones get in the way.

At the other end of the spectrum, _(OCAML) is a language with a lot of orthogonality in features, and it's like a tool box where you can choose the right tools for the right job, and leave the other ones in the box.

_(Aspect-Oriented Programming) is a _(paradigm) that attempts to simplify software design by taking advantage of whatever orthogonality might be achieved by properly factoring a given problem set.
