- lack of cross platform compatibility- OS lockin through products or development languages (SQL Server, C#, etc)- poor security- poor stability- code bloat/ excessive functionality- lack of choice; choices are forced down your throat on install- no built in firewall or other security features- closed environment that cannot be modified- want to do everything for you I like choice and Microsoft do