@AC / Shouldn't MS work Properly ?
You are absolutely right. The IT industry is full of people who can go great lengths to explain why they will not clean up the mess they have created. It usually boils down to "too expensive; we need to implement new features urgently and don't care about that old stuff".
The core problem is that there is not even a consensus about the core skillset of a "computer scientist". Anybody who knows something about bit-fiddling can call himself a "computer scientist", provided that a somewhat accepted university awarded that title. There is absolutely no such thing as a Core Curriculum. As a plumber you must be able to solder, but as a "computer scientist" you don't need to know compiler theory, relational databases, operating systems, cryptographics or the like. It is fully sufficient to have done some automated number-summing in business statistics, for example and to have a uni award you the title "computer scientist".
Most "software engineers" are in this business because it is known to make good $$, as much as many girls are in the business of relaxing men.
