I have always used macs in passing, but in the past year I have really been using OSX a lot and from what I have used I get the impression that Apple never catered to developers or else their whole gui system would be very different.

Has OSX ever really been a developer friendly environment? Every single actual gui OS feature I have used is terrible and skin deep.

Having a terrible gui and slapping a linux console on it is not the same as having a real visual OS. Yes having a linux console is wonderful, but it is not an excuse for how completely lacking in features the actual visual interface is. You know, the part Apple is responsible for.

What I mean by skin deep is that it works well for a consumer that isn't very computer literate really and just wants to write documents and use the internet, but if you try to do something deeper than that you basically discover that you can't or it is terrible.

Finder is awful across the board. Yes you can get a replacement, but what the hell is a gui operating system for if not looking at files in the file tree. I could go into detail about why it is awful but if you have used it than you really already know. I don't think windows 7 is the greatest os or has a perfect file explorer, but it is crazy how much better it is than the one in osx.

Outputting to multiple monitors and the management of the output is terrible. Currently my understanding is that you basically have to go into the linux console to have any control over it.(Like turning off your laptop monitor, or any kind of management of the individual monitors past which one is located on the right)

Apple seems to not give a fuck about backwards compatibility across ios and osx. If you have an older mac(not even very old really, less than 4-5 years) and you want to update the OS to the newest one the device can handle, which is an OSX version before mountain lion; for some reason the only way to do this is to call apple on the phone and read them your credit card info so they can ship it to you which will take weeks. Even though they used to be available in the app store and the physical store. Literally the day Mountain Lion came out they basically discontinued any distribution of Lion outside of this crazy calling apple method. Also new SDKs for ios break code in undocumented ways including in features that Apple provides(like the video controller). The simulator can give wildly different output than the actual devices and each iteration of the ipad/iphone can give its own different output on the same code. This can and often is App breaking stuff.

XCode is much worse than Visual Studio in too many ways to list. Even having something basic like tabs for different files is terrible, also the vi plugin for it is not good. Also imo obj-c is a pretty unpleasant language but that is trivial.

I don't love windows or microsoft at all, but apple does not cater to developers in any way. Even the way they deal with developers being in their little ecosystems is very different. Microsoft XBLIG/WP/Win 8 sign up and publishing system is no cake walk but it is orders of magnitude better than how Apple treats us.

Apple makes great hardware, beautiful amazing hardware. However their software is really awful and basically only caters to consumers, and really unsophisticated ones at that.(Note: Apple did not make linux, any features of OSX you are using from a console is really not something Apple is responsible for. Apple is responsible for the gui, xcode, itunes, ios, and any other little app they made that comes with osx)