I listen to the podcast java posse, on this there is often discussion about components (note components are not (clearly) objects). They lament the fact that Java does not have components, and contrast with .NET that does. Components apparently makes developing applications (not just GUI apps) easier.
I can figure from the discussion certain qualities that a component has, its something to-do with decoupling (substituting one component for another is just a matter of plumbing). It has something to-do with properties, it definitely has something to-do with events and delegates.
So to the questions:
./ can anyone explain to me what a component is. (and why java beans are not components).
./ can anyone explain how they help development.
./ can anyone explain why java does not have them if they are so useful.