Comment Re:An AMAZING number of flaws (Score 1) 74
The whole effort of design of software systems is ultimately the effective management of complexity. Complexity of features that provide real world value is the developers problem to manage. If "technical debt just keeps compounding" it is probably best to find a better developer.
I love scapegoating individual developers as much as the next guy, but if you take a look at the Win32 API, you'll find loads of fun "features" such as:
- Every single function that takes a string has two implementations: one that ends with the letter A (and takes its strings as ASCII) and one that ends with the letter W (and takes its strings as UCS-16). And then it has a preprocessor-define (with no suffix) that gets expanded to either one implementation or the other, based on your compiler settings.
- windows.h defines preprocessor-tokens for min() and max(), which means any C++ program that ever calls std::min() or std::max() will error out with a very strange compile-time error, if it included windows.h first; the work-around is to define NOMINMAX first to prevent windows.h from polluting the namespace.
- Modern windows is perfectly capable of arbitrary-length file-paths, but ships by default with a 260-character filepath limit anyway, "to preserve backwards compatibility with older software that expects that limitation to be enforced". To get correct behavior you have to hand-modify your registry; otherwise you find out about this limitation when you go to unzip a
These are all defects that other OS's simply don't suffer from, either because the other OS's were designed correctly from the beginning, or because the people in charge of the other OS's long ago took the hit (in short-term breakage) and fixed the problems rather than letting them linger forever to preserve backwards compatibility.
All Windows developers (good and bad) have to deal with these issues, probably forever, and every line of code they add to work around these problems has to be supported and debugged and tested as well, hence the damage compounds.