Some of my other computer pals dislike the structure. They say it's too simple for the user, and when you actually get into the mains structure, it's too complex. I agree, it is too complex.
Uh ? How is it more complex than Windows ? Can you name the 6 AD roles ? What the different registry hives are ? The role of the lsass.exe process ? What the SAM database is, what it does ?
What can you accomplish with Powershell ? How do you kill a runaway process that is running under the "system" user without rebooting ? Why can't administrator simply do it with the Task Manager ?
OS X and Windows, "under the hood" aren't much more friendly or complex than each other. They're different. OS X has the advantage of being Unix though, so most of it can be figured out by competent BSD, Solaris, HP-UX or even Linux folk. Windows is... well Windows. You have to know Windows to figure it out (I've done systems administration of both, though my strengths and current interest is in Unix, I was forced at one time to do the Windows stuff). Heck, I've encountered Windows systems administrators that didn't know what a registry hive was, how it worked on NT and how to unload part of it dynamically without a reboot (yes, I saved a Citrix farm node from an emergency reboot for a "stuck user" by simply unloading the user's hive... to much the astonishment of the whole Windows team... *sigh*).
Heck, I'd say Windows is more complicated. The Event Viewer and the event database are a nightmare to work with compared to flat text files for debugging. All the tools you need to work are separate downloads (back in the days, the process tools, filemon and regmon by sysinternals, powershell before Windows Server 2008) or used to be so convulted (regedit.exe vs regedt32.exe, why 2 tools, with different features for the same god damn thing! Thank god Microsoft merged those) that you needed to have used them to even know they existed. Binary databases/files galore, requiring GUIs upon GUIs to edit (forget simply deploying nice text files and automation scripts most of the time) and a retarded scheduler to anyone who's used cron and crontabs to do anything.
My programming friends say that writing non-native apps, a la Java, is too complex.
What is more complex about writing Java code on OS X than on Windows or Linux ? You install the same IDE (Eclipse, Netbeans, IntelliJ, JDeveloper) the same Oracle runtime, the commands are the same (java, javac, jar)...
Maybe your programming friends just don't quite know what they are doing...