So where is OO Programming going? Is it a dead end, or is it the future of programming? I used to think the latter was obvious (witness Java, of which JamesGosling once said that being OO was just understood to be necessary -- his OOPSLA '96 keynote consisted of "Java is this and this and this, and by the way, of course it's Object Oriented"). However, the ComponentBigots have begun to say that the former is true. So which do you think is true? What directions will OO take? What interesting research is going to change the way we program? KyleBrown ----- I am very interested in how non-functional requirements such as distribution, speed, scalability etc., influence architecture. An application which needs to run on a distributed system looks quite different from one which doesn't. Attempts to separate concerns so that at least one portion of the application would look the same regardless the presence of distribution don't seem to work well. Likewise, optimization can really muddy a design over time. I think we will see more meta approaches that will attempt to parameterize systems so that changes can be made across several axes while keeping business logic invariant. AspectOrientedProgramming is one way, EJB and MTS attempt other forms of variability. On the manual end, refactoring may be a lead-in for tools which allow developers to manipulate their source at a higher level. I suspect that this will be more important than is recognized. It places more control in the hands of the developer with less upfront work or potential for lock-in. It seems that we are at a point in the industry where commercial systems that deal with these issues are more apt to be adopted than new languages out of academia or research parks. Because of proprietary interests, we may see even more fragmentation and interoperability problems. I used to think that wide-spread commercial components were the future, but now I think that we still haven't mined all of the business value that variability can produce. The recent work that JamesOdell has been doing with agent systems at GM looks very interesting also. -- MichaelFeathers ---- Ron I'm moving your discussion to UnderstandingDistributedSystems. --KyleBrown ---- Will the future of objects make it easier to do DeclarativeProgramming with them? Is ObjectOrientedProgramming already more declarative than non ObjectOriented ?