I seem to have written this during my iBook's time off the 'net:
There are many things to like about Cocoa. One is its glorious lack
of minimality. I'm not sure I can really explain that remark. It
could be the influence of the C++ performance/size obsession, but
sometimes I get the feeling that OOP programmers strive for doing just
the minimum.
Or, in XP terminology, "do the simplest thing that can possibly work".
I guess this segues into another thought: XP just doesn't apply for
designing a resuable framework like Cocoa. You can't just merrily go
on a refactoring spree through a framework (unless you want your users
to shoot you when they upgrade). On the other hand, some of the XP
maxims *do* apply: you shouldn't just add features without some use
case. I guess the reason Cocoa is so comfortable is because the
framework has matured while it was NextStep and there was an
opportunity to throw lots of cruft out when it became Cocoa (dunno if
that actually happened, but if it didn't there's an astonishing lack
of historical crap in Cocoa).
Anyway, to contrive a free-software point, when looking for
inspiration in framework design, look at Cocoa. Some of its features
probably only really make sense in a somewhat dynamic language, so I
don't know if (e.g.) Gnome could reach this level of flexibility and
power (haven't looked at writing a Gnome app in a long time,
admittedly).