>>18
public/private is good for automated documentation systems. Users of your classes don't want to browse a fuckton of internal circuitry, they want a clean API so they can get shit done instead of looking through stuff they don't need for ages. Good, competent users who demand that complexity and side effects be documented.
I don't see a lot of objections to internal functions in modules like non-exported stuff in Haskell. Even Perl has export lists. Private methods are like that, only for classes.
It doesn't make a lot sense for classes like Point, Circle, HelloWorld though, that's why it keeps being brought up. It does have a use in real world.