Here's reason #1203493945888534923 I hate Microsoft software. Their asshole behavior wastes my time. Let me cite an example.
I have a Windows service which allows Linux to communicate to Windows SQL Server via a simple XML protocol. I use ODBC to connect to SQL Server within the Windows Service. Well, Microsoft doesn't want me to use ODBC, because it is a standard. So to penalize me, they make the SQL Server ODBC driver time out after 30 seconds of inactivity, causing the server-side connection in my service to block eternally. This means that ANY QUERY TAKING LONGER THAN 30 SECONDS RESULTS IN FAILURE. And, remember, SQL-Server is a steaming pile, so there are plenty of situations where this might happen.
Now, if I use their shitty, proprietary, lock-in OLE DB API, there is no arbitrary time out limit. In fact, you can manually set this limit to whatever you want, or just disable it altogether.
And here's the clincher: despite many, many people complaining about this problem for over three years now, Microsoft still gives developers using the ODBC driver the finger, and refuses to change this ridiculous timeout behavior.
So in addition to having to deal with the most unreliable platform in existence, I also get to deal with Microsoft's penalizing me for not using their vendor lock-in APIs.
Thanks Microsoft. I'm so glad 97.5+% of my time at work is on Linux.
Wow. It feels so good to voice my opinion.