@Parvo93 said:
Why is this surprising to anyone?
I haven't yet decided whether MS does these things on purpose or through sheer stupidity.
I'd say it was a valid design decision at the time, saving memory and clock cycles was deemed preferable to allowing dates before 1901 to work fully. And Microsoft, in turn, preferred implementing a kludge to deal with those early dates to skipping Lotus 123 compatibility.
Neither decision is a WTF by any standards.
@Parvo93 said:
J++/Java interoperability errors, DOS 1MB memory addressing kludge, and the Windows API in its various evil incarnations are high points that continue to baffle me. Don't get me started on IE's track record in the standards arena...
I'd say both IE's incompatibilities and Java's extensions makes perfect business sense. They're trying to maintain a monopoly after all, and you don't do that by making it easy for people to switch away from your products.
As for the Windows API it definitely suffers from backwards
compatibility, incremental development since the beginning of time, and
repeated attempts to provide an API for everything imaginable. Nearly
all of it was done for a valid reasons through informed decisions which
made business sence at the time. Microsoft may be "evil capitalists"
but they're certainly not stupid.
<font size="-1"></font>
<font size="-1"></font>
And I truly cannot see how Microsoft could be blamed for the 1 MB addressing limit in DOS. The 8086 processor has a 1 MB address space, and the PC's memory map is designed in such a way that 640 KB is the largest possible contiguous block of RAM. Those were Intel and IBM's decisions respectively.
<font size="-1">To quote Raymond Chen: "When you don't have a time machine, you have to live with your mistakes."</font>