Beyond UX design, much of the displeasure can be attributed to certain architectural fundamentals that yield material ongoing burdens, such as a) pervasive shared DLLs vs contained APPs, b) pervasive registry magic, and c) lack of simple Unix underpinnings in a Linux server world