ComponentOrientedProgramming or COP for short. Known examples are COM+, Delphi, JavaBeans and EJB. J2EE is not ComponentOriented but marketing oriented, since its components are ''anything that can live in the filesystem, as JSP files, XML files, EJB components, etc.'' An after thought after ObjectOrientedProgramming became fashionable. ''Actually, even as I agree almost entirely with the above points, we had this discussion before on wiki: ComponentBasedDevelopment (CBD) and ComponentDefinition. I proposed that components should be defined as reusable modules that present a "design time" lifecycle including interaction with an IDE.'' ---- Components are just objects that are all dressed up. Some of the finery that components get to wear include (not all component models have all of these): * APIs for introspection and the like--especially useful in languages like CeePlusPlus that don't have native introspection facilities. * Lots of interfaces that are of "development" concern (to facilitate GUI-builders and other such tools) rather than of "problem domain" concern. * Nifty ways of crossing language boundaries * Support for other domain-independent concerns (especially those useful in a distributed environment), such as transaction processing * Deployable in object formats. This isn't to say that components aren't ''useful''... though I'm not sure I'd make components their own paradigm. ''And when they get undressed they become ... NakedObjects''