I agree with that article to the extent that yes, some newbie programmers have a tendency to add getters and setters for every member variable, and this is bad. You shouldn't have getters and setters for every member; indeed, getters and setters don't even need to correspond to individual member variables: they correspond to
observable properties of the object, which might be represented by more than one variable internally, or might be computed from other state.
But his essential thesis in that article is that an object having any observable properties at all is just bad design -- and that's just hyperbole to sell newspapers. Use getters and setters when you need to, but don't if you don't.
If you've got a Person object,
Alan's argument says that it can't have a getAge() method, only a displayAge(DisplaySubstrate) method. That's just silly. Sells papers, though.
[ October 17, 2003: Message edited by: Ernest Friedman-Hill ]