Post OO
Graham posted some thoughts about operations being first-class entities instead of objects being first-class entities.
I agree with Jason in that the advantage is not very clear for a String class, but I think Graham is absolutely in the right track if we are talking about domain data. The idea of having domain data as plain objects with public data, that was discussed in the blogsphere some time algo, its a perfect match for this approach.
We should have Actions that work with an Invoice instead of Invoice methods. It decreases the coupling, its a perfect match for todays stateless components, it makes easier to design message based applications, and it works great with WebServices.