Such customers have come to expect and demand simplicity in operation as well as invisible complexity of capability. That expectation and demand feeds back to result in the requirement of still more software content of products. We are chronically in the state of having too much software to create and too little time to create it. What's worse is that the amount and complexity of software to create continues to increase while the time available to create it continues to decrease. Clearly, the operating system and the programming language must match the parameters of the product.
Wrong choices can greatly complicate the task of achieving a satisfactory product.
Wrong choices may even make creating the product impossible. Let us assume that we have an adequate understanding of the application. We may even have a sufficient understanding of the application to identify a reasonable match to operating systems, programming languages, and development tools. We still have the task of engineering the solution. Today's modest application consists of ten's of thousands of lines of executable code.