Speaking of the OS not as the desktop, but what traditionally an OS means: device support, memory and process management, application environment, file system and networking.
As a developer, I find OS X to be immature, undocumented, arcane and volatile. Online Core documentation is very sketchy, often no more than a listing of argument types. Googling for help results in only questions, rarely answers. Versions add new APIs as quickly as they obsolete the old standard ones, leaving everybody hopping to update, often several times per year.